public
|
mixed
|
getRelistRule (
$id )
Исходный код метода:
return $this->openbay->ebay->call('item/getAutomationRule', array('id' => $id));
|
public
|
mixed
|
importItems (
$data )
Исходный код метода:
$this->openbay->ebay->log('Starting item import');
$this->load->model('catalog/product');
//check for ebay import img table
$res = $this->db->query("SHOW TABLES LIKE '".DB_PREFIX."ebay_image_import'");
if($res->num_rows == 0) {
$this->db->query("
CREATE TABLE IF NOT EXISTS `".DB_PREFIX."ebay_image_import` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image_original` text NOT NULL,
`image_new` text NOT NULL,
`name` text NOT NULL,
`product_id` int(11) NOT NULL,
`imgcount` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
");
}
if ($this->openbay->addonLoad('openstock')) {
$openstock = true;
$this->load->model('openstock/openstock');
}else{
$openstock = false;
$this->openbay->ebay->log('Openstock module not found');
}
$categories = array();
$data['data'] = unserialize(gzuncompress(stripslashes(base64_decode(strtr($data['data'], '-_,', '+/=')))));
$newData = base64_decode($data['data']);
$options = json_decode($data['options'], 1);
unset($data['data']);
$this->openbay->ebay->log('Decoded data');
$newData1 = unserialize($newData);
unset($newData);
$this->openbay->ebay->log('Data unserialized');
if ($options['cat'] == 1) {
$itemCountLoop = 0;
foreach($newData1 as $item) {
$itemCountLoop++;
$this->openbay->ebay->log('Processing item: '.$itemCountLoop);
$parts = explode(':', $item['CategoryName']);
//skip the first category as they are likely to be selling in that
if(isset($parts[1])) {
if(!isset($categories[$parts[0]][$parts[1]])) {
if(!empty($parts[1])) {
$categories[$parts[0]][$parts[1]] = array();
}
}
}
if(isset($parts[2])) {
if(!isset($categories[$parts[0]][$parts[1]][$parts[2]])) {
if(!empty($parts[2])) {
$categories[$parts[0]][$parts[1]][$parts[2]] = array();
}
}
}
if(isset($parts[3])) {
if(!isset($categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]])) {
if(!empty($parts[3])) {
$categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]] = array();
}
}
}
if(isset($parts[4])) {
if(!isset($categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]][$parts[4]])) {
if(!empty($parts[4])) {
$categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]][$parts[4]] = array();
}
}
}
if(isset($parts[5])) {
if(!isset($categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]][$parts[4]][$parts[5]])) {
if(!empty($parts[5])) {
$categories[$parts[0]][$parts[1]][$parts[2]][$parts[3]][$parts[4]][$parts[5]] = array();
}
}
}
}
$catLink = array();
foreach($categories as $key1=>$cat1) {
foreach($cat1 as $key2=>$cat2) {
//final cat, add to array as node
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category`, `" . DB_PREFIX . "category_description` WHERE `" . DB_PREFIX . "category`.`parent_id` = '0' AND `" . DB_PREFIX . "category_description`.`name` = '".$this->db->escape($key2)."' LIMIT 1");
if($qry->num_rows != 0) {
$id1 = $qry->row['category_id'];
}else{
$this->db->query("INSERT INTO `" . DB_PREFIX . "category` SET `parent_id` = '0', `status` = '1', `top` = '1'");
$id1 = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_description` SET `name` = '".$this->db->escape($key2)."', `language_id` = '".(int)$this->config->get('config_language_id')."', `category_id` = '".$this->db->escape($id1)."'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_to_store` SET `category_id` = '".$this->db->escape($id1)."', `store_id` = '0'");
}
if(!empty($cat2)) {
foreach($cat2 as $key3=>$cat3) {
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category`, `" . DB_PREFIX . "category_description` WHERE `" . DB_PREFIX . "category`.`parent_id` = '".$this->db->escape($id1)."' AND `" . DB_PREFIX . "category_description`.`name` = '".$this->db->escape($key3)."' LIMIT 1");
if($qry->num_rows != 0) {
$id2 = $qry->row['category_id'];
}else{
$this->db->query("INSERT INTO `" . DB_PREFIX . "category` SET `parent_id` = '".$this->db->escape($id1)."', `status` = '1', `top` = '1'");
$id2 = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_description` SET `name` = '".$this->db->escape($key3)."', `language_id` = '".(int)$this->config->get('config_language_id')."', `category_id` = '".$this->db->escape($id2)."'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_to_store` SET `category_id` = '".$this->db->escape($id2)."', `store_id` = '0'");
}
if(!empty($cat3)) {
foreach($cat3 as $key4=>$cat4) {
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category`, `" . DB_PREFIX . "category_description` WHERE `" . DB_PREFIX . "category`.`parent_id` = '".$this->db->escape($id3)."' AND `" . DB_PREFIX . "category_description`.`name` = '".$this->db->escape($key4)."' LIMIT 1");
if($qry->num_rows != 0) {
$id3 = $qry->row['category_id'];
}else{
$this->db->query("INSERT INTO `" . DB_PREFIX . "category` SET `parent_id` = '".$this->db->escape($id2)."', `status` = '1', `top` = '1'");
$id3 = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_description` SET `name` = '".$this->db->escape($key4)."', `language_id` = '".(int)$this->config->get('config_language_id')."', `category_id` = '".$this->db->escape($id3)."'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_to_store` SET `category_id` = '".$this->db->escape($id3)."', `store_id` = '0'");
}
if(!empty($cat4)) {
foreach($cat4 as $key5=>$cat5) {
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category`, `" . DB_PREFIX . "category_description` WHERE `" . DB_PREFIX . "category`.`parent_id` = '".$this->db->escape($id4)."' AND `" . DB_PREFIX . "category_description`.`name` = '".$this->db->escape($key5)."' LIMIT 1");
if($qry->num_rows != 0) {
$id4 = $qry->row['category_id'];
}else{
$this->db->query("INSERT INTO `" . DB_PREFIX . "category` SET `parent_id` = '".$this->db->escape($id3)."', `status` = '1', `top` = '1'");
$id4 = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_description` SET `name` = '".$this->db->escape($key5)."', `language_id` = '".(int)$this->config->get('config_language_id')."', `category_id` = '".$this->db->escape($id4)."'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "category_to_store` SET `category_id` = '".$this->db->escape($id4)."', `store_id` = '0'");
}
$catLink[$key1.':'.$key2.':'.$key3.':'.$key4.':'.$key5] = $id4;
}
}else{
$catLink[$key1.':'.$key2.':'.$key3.':'.$key4] = $id3;
}
}
}else{
$catLink[$key1.':'.$key2.':'.$key3] = $id2;
}
}
}else{
$catLink[$key1.':'.$key2] = $id1;
}
}
}
$this->openbay->ebay->log('Categories done');
} else {
$this->openbay->ebay->log('Categories set not to be created');
}
$imgCount = 0;
$current = $this->openbay->ebay->getLiveListingArray();
foreach($newData1 as $item) {
if(!in_array($item['ItemID'], $current)) {
$this->openbay->ebay->log('New item being created: '.$item['ItemID']);
//get the manufacturer id
$manufacturer_id = 0;
if(!empty($item['Brand'])) {
$manufacturer_id = $this->manufacturerExists($item['Brand']);
}
//get the length class id
$length_class_id = 1;
if (isset($item['advanced']['package']['size']['width_unit']) && !empty($item['advanced']['package']['size']['width_unit'])) {
$length_class_id = $this->lengthClassExists($item['advanced']['package']['size']['width_unit']);
}
//get the weight class id
$weight_class_id = 1;
if (isset($item['advanced']['package']['weight']['major_unit']) && !empty($item['advanced']['package']['weight']['major_unit'])) {
$weight_class_id = $this->weightClassExists($item['advanced']['package']['weight']['major_unit']);
}
$tax = $this->config->get('tax');
$net_price = $item['priceGross'] / (($tax / 100) + 1);
//openstock variant check
$osSql = '';
if(!empty($item['variation']) && $openstock == true) {
$osSql = "`has_option` = '1',";
}
//package weight
if (isset($item['advanced']['package']['weight']['major'])) {
$weight = $item['advanced']['package']['weight']['major'].'.'.$item['advanced']['package']['weight']['minor'];
} else {
$weight = 0;
}
//package length
if (isset($item['advanced']['package']['size']['length'])) {
$length = $item['advanced']['package']['size']['length'];;
} else {
$length = 0;
}
//package width
if (isset($item['advanced']['package']['size']['width'])) {
$width = $item['advanced']['package']['size']['width'];;
} else {
$width = 0;
}
//package height
if (isset($item['advanced']['package']['size']['height'])) {
$height = $item['advanced']['package']['size']['height'];;
} else {
$height = 0;
}
$this->db->query("
INSERT INTO `" . DB_PREFIX . "product` SET
`quantity` = '".$this->db->escape($item['Quantity'])."',
`manufacturer_id` = '".$this->db->escape($manufacturer_id)."',
`stock_status_id` = '6',
`price` = '".$this->db->escape($net_price)."',
`tax_class_id` = '9',
`location` = '".$this->db->escape(isset($item['note']) ? $item['note'] : '')."',
`mpn` = '".$this->db->escape(isset($item['advanced']['brand']['mpn']) ? $item['advanced']['brand']['mpn'] : '')."',
`sku` = '".$this->db->escape(isset($item['SKU']) ? $item['SKU'] : '')."',
`model` = '".$this->db->escape(isset($item['SKU']) ? $item['SKU'] : '')."',
`isbn` = '".$this->db->escape(isset($item['advanced']['isbn']) ? $item['advanced']['isbn'] : '')."',
`ean` = '".$this->db->escape(isset($item['advanced']['ean']) ? $item['advanced']['ean'] : '')."',
`upc` = '".$this->db->escape(isset($item['advanced']['upc']) ? $item['advanced']['upc'] : '')."',
`weight` = '".(double)$weight."',
`weight_class_id` = '".$this->db->escape($weight_class_id)."',
`length` = '".(double)$length."',
`width` = '".(double)$width."',
`height` = '".(double)$height."',
`length_class_id` = '".$this->db->escape($length_class_id)."',
`subtract` = '1',
`minimum` = '1',
`status` = '1',
".$osSql."
`date_available` = 'now()',
`date_added` = 'now()',
`date_modified` = 'now()'
");
$product_id = $this->db->getLastId();
$this->openbay->ebay->log('Product insert done');
//Insert product description
$originalDescription = $item['Description'];
if(!empty($originalDescription)) {
if ( false !== ($item['Description'] = gzuncompress($originalDescription))) {
$item['Description'] = html_entity_decode($item['Description']);
}else{
$this->openbay->ebay->log('Description could not be decompressed, output below');
$this->openbay->ebay->log($originalDescription);
$item['Description'] = '';
}
}
$sql = " INSERT INTO `" . DB_PREFIX . "product_description` SET
`product_id` = '".(int)$product_id."',
`language_id` = '".(int)$this->config->get('config_language_id')."',
`name` = '".$this->db->escape(htmlspecialchars(base64_decode($item['Title']), ENT_COMPAT, 'UTF-8'))."',
`description` = '".$this->db->escape(htmlspecialchars(utf8_encode($item['Description']), ENT_COMPAT, 'UTF-8'))."'";
$this->db->query($sql);
$this->openbay->ebay->log('Product description done');
//Insert product store link
$this->db->query("INSERT INTO `" . DB_PREFIX . "product_to_store` SET `product_id` = '".(int)$product_id."', `store_id` = '0'");
$this->openbay->ebay->log('Store link done');
//Create any attributes from eBay for the item
if(!empty($item['specs'])) {
//check the main group exists, if not create
$groupId = $this->attributeGroupExists(base64_decode($item['CategoryNameSingle']));
foreach($item['specs'] as $spec) {
//check if the attribute exists in the group, if not create
$attrId = $this->attributeExists($groupId, base64_decode($spec['name']));
//insert the attribute value into the product attribute table
$this->attributeAdd($product_id, $attrId, base64_decode($spec['value']));
}
}
//Create the product variants for OpenStock
$variant = 0;
if(!empty($item['variation'])) {
$variant = 1;
if($openstock == true) {
$this->openbay->ebay->log('OpenStock Loaded');
$this->createVariants($product_id, $item);
}
$this->openbay->ebay->log('Variants done');
}
//insert store to eBay item link
$this->openbay->ebay->createLink($product_id, $item['ItemID'], $variant);
//Insert product/category link
if ($options['cat'] == 1) {
$this->createCategoryLink($product_id, $catLink[$item['CategoryName']]);
}
//images
$imgCount = 0;
if(is_array($item['pictures'])) {
foreach($item['pictures'] as $img) {
if(!empty($img)) {
$name = rand(500000, 1000000000);
$this->addImage($img, DIR_IMAGE.'data/'.$name.'.jpg', $name.'.jpg', $product_id, $imgCount);
$imgCount++;
}
}
}
$this->openbay->ebay->log('Product import completed.');
}else{
$this->openbay->ebay->log($item['ItemID'].' exists already');
}
}
$this->openbay->ebay->log('Product data import done');
$this->openbay->ebay->getImages();
|
public
|
mixed
|
getDisplayProducts (
)
Исходный код метода:
$data = array();
$data['search_keyword'] = $this->config->get('ebaydisplay_module_keywords');
$data['seller_id'] = $this->config->get('ebaydisplay_module_username');
$data['limit'] = $this->config->get('ebaydisplay_module_limit');
$data['sort'] = $this->config->get('ebaydisplay_module_sort');
$data['search_desc'] = $this->config->get('ebaydisplay_module_description');
$data['site_id'] = $this->config->get('ebaydisplay_module_site');
return $this->openbay->ebay->call('item/searchListingsForDisplay', $data);
|
private
|
mixed
|
createVariants (
$product_id, $data )
Исходный код метода:
foreach($data['variation']['vars'] as $variant) {
$vars = array();
$s = '';
foreach($variant['opt'] as $k_opt => $v_opt) {
$name = base64_decode($k_opt);
$value = $v_opt;
$option = $this->getOption($name);
$opt = $this->getOptionValue($value, $option['id']);
//lookup product option rel table, insert if needed
$product_option_id = $this->getProductOption($product_id, $option['id']);
$product_option_value_id = $this->getProductOptionValue($product_id, $option['id'], $opt['id'], $product_option_id);
$this->openbay->ebay->log('Option data: '.serialize($option));
$s = $option['sort'];
$vars[$s] = $product_option_value_id;
}
//$this->openbay->ebay->log('Unsorted: '.serialize($vars));
//sort the array to the natural sort order
ksort($vars);
//$this->openbay->ebay->log('Sorted: '.serialize($vars));
//remove the key from the array to pass to implode
$vars2 = array();
foreach($vars as $k=>$v)
{
$vars2[] = $v;
}
//implode the values
$vars = implode(':', $vars2);
//$this->openbay->ebay->log('Vars: '.$vars);
//create the variant
$this->createProductVariant(array('var' => $vars, 'price' => $variant['price'], 'stock' => $variant['qty'], 'product_id' => $product_id, 'sku' => $variant['sku']));
}
$this->updateVariantListing($product_id, $data['ItemID']);
//$this->openbay->ebay->log('Item variant stuff done..');
|
private
|
mixed
|
getOption (
$name )
Исходный код метода:
$qry = $this->db->query("
SELECT *
FROM
`" . DB_PREFIX . "option` `o`
LEFT JOIN `" . DB_PREFIX . "option_description` `od` ON (`od`.`option_id` = `o`.`option_id`)
WHERE
`od`.`name` = '".$this->db->escape($name)."'
LIMIT 1");
if($qry->num_rows) {
$this->openbay->ebay->log('Option found: "'.$name.' / '.$qry->row['option_id'].'" with sort order of "'.$qry->row['sort_order'].'"');
return array('id' => (int)$qry->row['option_id'], 'sort' => (int)$qry->row['sort_order']);
}else{
return $this->createOption($name);
}
|
private
|
mixed
|
createOption (
$name )
Исходный код метода:
$this->db->query("INSERT INTO `" . DB_PREFIX . "option` SET `type` = 'select', `sort_order` = IFNULL((select `sort` FROM (SELECT (MAX(`sort_order`)+1) AS `sort` FROM `" . DB_PREFIX . "option`) AS `i`),0)");
$option_id = $this->db->getLastId();
$qry_sort = $this->db->query("SELECT * FROM `" . DB_PREFIX . "option` WHERE `option_id` = '".$option_id."' LIMIT 1");
$this->db->query("INSERT INTO `" . DB_PREFIX . "option_description` SET `language_id` = '".(int)$this->config->get('config_language_id')."', `name` = '".$this->db->escape($name)."', `option_id` = '".$this->db->escape($option_id)."'");
$this->openbay->ebay->log('No option found, creating: "'.$name.' / '.$option_id.'" with sort order of "'.$qry_sort->row['sort_order'].'"');
return array('id' => (int)$option_id, 'sort' => (int)$qry_sort->row['sort_order']);
|
private
|
mixed
|
getOptionValue (
$name, $option_id )
Исходный код метода:
$qry = $this->db->query("
SELECT *
FROM
`" . DB_PREFIX . "option_value` ov
LEFT JOIN `" . DB_PREFIX . "option_value_description` `ovd` ON (`ovd`.`option_value_id` = `ov`.`option_value_id`)
WHERE
`ovd`.`name` = '".$this->db->escape($name)."'
AND
`ovd`.`option_id` = '".(int)$option_id."'
LIMIT 1");
if($qry->num_rows) {
//$this->openbay->ebay->log('Option value found: "'.$name.'"');
return array('id' => (int)$qry->row['option_value_id'], 'sort' => (int)$qry->row['sort_order']);
}else{
//$this->openbay->ebay->log('No option value found, creating "'.$name.'"');
return $this->createOptionValue($name, $option_id);
}
|
private
|
mixed
|
createOptionValue (
$name, $option_id )
Исходный код метода:
$this->db->query("INSERT INTO `" . DB_PREFIX . "option_value` SET `option_id` = '".$this->db->escape($option_id)."', `sort_order` = IFNULL((select `sort` FROM (SELECT (MAX(`sort_order`)+1) AS `sort` FROM `" . DB_PREFIX . "option_value`) AS `i`),0)");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "option_value_description` SET `language_id` = '".(int)$this->config->get('config_language_id')."', `name` = '".$this->db->escape($name)."', `option_id` = '".$this->db->escape($option_id)."', `option_value_id` = '".$id."'");
return array('id' => (int)$id);
|
private
|
mixed
|
getProductOption (
$product_id, $option_id )
Исходный код метода:
$qry = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option WHERE product_id = '" . (int)$product_id . "' AND option_id = '" . (int)$option_id . "' LIMIT 1");
if($qry->num_rows) {
return $qry->row['product_option_id'];
}else{
$this->db->query("INSERT INTO " . DB_PREFIX . "product_option SET product_id = '" . (int)$product_id . "', option_id = '" . (int)$option_id . "', required = '1'");
return $this->db->getLastId();
}
|
private
|
mixed
|
getProductOptionValue (
$product_id, $option_id, $option_value_id, $product_option_id )
Исходный код метода:
$qry = $this->db->query("
SELECT *
FROM `" . DB_PREFIX . "product_option_value`
WHERE `product_id` = '" . (int)$product_id . "'
AND `option_id` = '" . (int)$option_id . "'
AND `product_option_id` = '".(int)$product_option_id."'
AND `option_value_id` = '".(int)$option_value_id."'
LIMIT 1
");
if($qry->num_rows) {
return $qry->row['product_option_value_id'];
}else{
$this->db->query("
INSERT INTO " . DB_PREFIX . "product_option_value
SET
product_option_id = '" . (int)$product_option_id . "',
product_id = '" . (int)$product_id . "',
option_id = '".(int)$option_id."',
option_value_id = '".(int)$option_value_id."'
");
return $this->db->getLastId();
}
|
private
|
mixed
|
createProductVariant (
$data )
Исходный код метода:
$this->db->query("
INSERT INTO `" . DB_PREFIX . "product_option_relation`
SET
`product_id` = '".$this->db->escape($data['product_id'])."',
`var` = '".$this->db->escape($data['var'])."',
`stock` = '".$this->db->escape($data['stock'])."',
`sku` = '".$this->db->escape($data['sku'])."',
`active` = '1',
`subtract` = '1',
`price` = '".$this->db->escape($data['price'])."'
");
return array('id' => $this->db->getLastId());
|
private
|
mixed
|
updateVariantListing (
$product_id, $item_id )
Исходный код метода:
$varData = array();
$variants = $this->model_openstock_openstock->getProductOptionStocks($product_id);
$groups = $this->model_catalog_product->getProductOptions($product_id);
$varData['groups'] = array();
$varData['related'] = array();
foreach($groups as $grp) {
$t_tmp = array();
foreach($grp['option_value'] as $grp_node) {
$t_tmp[$grp_node['option_value_id']] = $grp_node['name'];
$varData['related'][$grp_node['product_option_value_id']] = $grp['name'];
}
$varData['groups'][] = array('name' => $grp['name'], 'child' => $t_tmp);
}
$v = 0;
foreach($variants as $option) {
if($v == 0) {
//create a php version of the option element array to use on server side
$varData['option_list'] = base64_encode(serialize($option['opts']));
}
$varData['opt'][$v]['sku'] = $option['var'];
$varData['opt'][$v]['qty'] = $option['stock'];
$varData['opt'][$v]['price'] = number_format($option['price'], 2);
$varData['opt'][$v]['active'] = 0;
if($option['active'] == 1) { $varData['opt'][$v]['active'] = 1; }
$v++;
}
$varData['groups'] = base64_encode(serialize($varData['groups']));
$varData['related'] = base64_encode(serialize($varData['related']));
$varData['id'] = $item_id;
//send to the api to process
$this->openbay->ebay->callNoResponse('item/reviseVariants', $varData);
|
private
|
mixed
|
attributeGroupExists (
$name )
Исходный код метода:
$this->openbay->ebay->log('Checking attribute group: '.$name);
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "attribute_group_description` WHERE `name` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."' AND `language_id` = '".(int)$this->config->get('config_language_id')."' LIMIT 1");
if($qry->num_rows) {
$this->openbay->ebay->log('Group exists');
return $qry->row['attribute_group_id'];
}else{
$this->openbay->ebay->log('New group');
$qry2 = $this->db->query("SELECT `sort_order` FROM `" . DB_PREFIX . "attribute_group` ORDER BY `sort_order` DESC LIMIT 1");
if($qry2->num_rows) {
$sort = $qry2->row['sort_order'] + 1;
}else{
$sort = 0;
}
$this->db->query("INSERT INTO `" . DB_PREFIX . "attribute_group` SET `sort_order` = '" . (int)$sort . "'");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "attribute_group_description` SET `attribute_group_id` = '" . (int)$id . "', `language_id` = '".(int)$this->config->get('config_language_id')."', `name` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'");
return $id;
}
|
private
|
mixed
|
attributeExists (
$groupId, $name )
Исходный код метода:
$this->openbay->ebay->log('Checking attribute: '.$name);
$qry = $this->db->query("
SELECT * FROM
`" . DB_PREFIX . "attribute_description` `ad`,
`" . DB_PREFIX . "attribute` `a`
WHERE `ad`.`name` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'
AND `ad`.`language_id` = '".(int)$this->config->get('config_language_id')."'
AND `a`.`attribute_id` = `ad`.`attribute_id`
AND `a`.`attribute_group_id` = '".$this->db->escape($groupId)."'
LIMIT 1
");
if($qry->num_rows) {
$this->openbay->ebay->log('Attribute exists');
return $qry->row['attribute_id'];
}else{
$this->openbay->ebay->log('New attribute');
$qry2 = $this->db->query("SELECT `sort_order` FROM `" . DB_PREFIX . "attribute` ORDER BY `sort_order` DESC LIMIT 1");
if($qry2->num_rows) {
$sort = $qry2->row['sort_order'] + 1;
}else{
$sort = 0;
}
$this->db->query("INSERT INTO `" . DB_PREFIX . "attribute` SET `sort_order` = '" . (int)$sort . "', `attribute_group_id` = '" . (int)$groupId . "'");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "attribute_description` SET `attribute_id` = '" . (int)$id . "', `language_id` = '".(int)$this->config->get('config_language_id')."', `name` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'");
return (int)$id;
}
|
private
|
mixed
|
attributeAdd (
$product_id, $attrId, $name )
Исходный код метода:
$this->openbay->ebay->log('Adding product attribute');
$sql = $this->db->query("SELECT * FROM `" . DB_PREFIX . "product_attribute` WHERE `product_id` = '".(int)$product_id."' AND `attribute_id` = '".(int)$attrId."' AND `language_id` = '".(int)$this->config->get('config_language_id')."'");
if($sql->num_rows == 0) {
$this->db->query("INSERT INTO `" . DB_PREFIX . "product_attribute` SET `product_id` = '".(int)$product_id."', `attribute_id` = '".(int)$attrId."', `text` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."', `language_id` = '".(int)$this->config->get('config_language_id')."'");
}
|
private
|
mixed
|
createCategoryLink (
$product_id, $category_id )
Исходный код метода:
$this->db->query("INSERT INTO `" . DB_PREFIX . "product_to_category` SET `product_id` = '".(int)$product_id."', `category_id` = '".(int)$category_id."'");
|
private
|
mixed
|
manufacturerExists (
$name )
Исходный код метода:
$this->openbay->ebay->log('Checking manufacturer: '.$name);
$qry = $this->db->query("SELECT * FROM `" . DB_PREFIX . "manufacturer` WHERE LCASE(`name`) = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."' LIMIT 1");
if($qry->num_rows) {
$this->openbay->ebay->log('Manufacturer exists');
return $qry->row['manufacturer_id'];
}else{
$this->openbay->ebay->log('New manufacturer');
$qry2 = $this->db->query("SELECT `sort_order` FROM `" . DB_PREFIX . "manufacturer` ORDER BY `sort_order` DESC LIMIT 1");
if($qry2->num_rows) {
$sort = $qry2->row['sort_order'] + 1;
}else{
$sort = 0;
}
$this->db->query("INSERT INTO `" . DB_PREFIX . "manufacturer` SET `sort_order` = '" . (int)$sort . "', `name` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "manufacturer_to_store` SET `manufacturer_id` = '" . (int)$id . "', `store_id` = '0'");
return $id;
}
|
private
|
mixed
|
weightClassExists (
$name )
Исходный код метода:
$this->openbay->ebay->log('Checking weight class: '.$name);
$qry = $this->db->query("SELECT `weight_class_id` FROM `" . DB_PREFIX . "weight_class_description` WHERE LCASE(`title`) = '".$this->db->escape(strtolower($name))."' LIMIT 1");
if($qry->num_rows) {
$this->openbay->ebay->log('Checking weight class exists');
return $qry->row['weight_class_id'];
}else{
$this->openbay->ebay->log('New weight class');
$this->db->query("INSERT INTO `" . DB_PREFIX . "weight_class` SET `value` = '1'");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "weight_class_description` SET `language_id` = '".(int)$this->config->get('config_language_id')."', `weight_class_id` = '" . (int)$id . "', `title` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."', `unit` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'");
return $id;
}
|
private
|
mixed
|
lengthClassExists (
$name )
Исходный код метода:
$this->openbay->ebay->log('Checking length class: '.$name);
$qry = $this->db->query("SELECT `length_class_id` FROM `" . DB_PREFIX . "length_class_description` WHERE LCASE(`title`) = '".$this->db->escape(strtolower($name))."' LIMIT 1");
if($qry->num_rows) {
$this->openbay->ebay->log('Checking length class exists');
return $qry->row['length_class_id'];
}else{
$this->openbay->ebay->log('New length class');
$this->db->query("INSERT INTO `" . DB_PREFIX . "length_class` SET `value` = '1'");
$id = $this->db->getLastId();
$this->db->query("INSERT INTO `" . DB_PREFIX . "length_class_description` SET `language_id` = '".(int)$this->config->get('config_language_id')."', `length_class_id` = '" . (int)$id . "', `title` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."', `unit` = '".$this->db->escape(htmlspecialchars($name, ENT_COMPAT))."'");
return $id;
}
|
private
|
mixed
|
addImage (
$orig, $new, $name, $product_id, $imgCount )
Исходный код метода:
$orig = str_replace(' ', '%20',$orig);
$this->db->query("
INSERT INTO `" . DB_PREFIX . "ebay_image_import` SET
`image_original` = '".$this->db->escape($orig)."',
`image_new` = '".$this->db->escape($new)."',
`name` = '".$this->db->escape($name)."',
`product_id` = '".(int)$product_id."',
`imgcount` = '".(int)$imgCount."'
");
|
public
|
mixed
|
resize (
$filename, $width, $height, $type = "" )
Исходный код метода:
if (!file_exists(DIR_IMAGE . 'data/' . md5($filename).'.jpg')) {
copy($filename, DIR_IMAGE . 'data/' . md5($filename).'.jpg');
}
$old_image = DIR_IMAGE . 'data/' . md5($filename).'.jpg';
$new_image = 'cache/ebaydisplay/' . md5($filename) . '-' . $width . 'x' . $height . $type .'.jpg';
if (!file_exists(DIR_IMAGE . $new_image)) {
$path = '';
$directories = explode('/', dirname(str_replace('../', '', $new_image)));
foreach ($directories as $directory) {
$path = $path . '/' . $directory;
if (!file_exists(DIR_IMAGE . $path)) {
@mkdir(DIR_IMAGE . $path, 0777);
}
}
list($width_orig, $height_orig) = getimagesize($filename);
if ($width_orig != $width || $height_orig != $height) {
$image = new Image($old_image);
$image->resize($width, $height, $type);
$image->save(DIR_IMAGE . $new_image);
} else {
copy($filename, DIR_IMAGE . $new_image);
}
}
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
return $this->config->get('config_ssl') . 'image/' . $new_image;
} else {
return $this->config->get('config_url') . 'image/' . $new_image;
}
|