id_country=Db::getInstance()->getValue('SELECT id_country FROM '._DB_PREFIX_.'country WHERE iso_code="SK"'); } else { $this->id_country=Db::getInstance()->getValue('SELECT id_country FROM '._DB_PREFIX_.'country WHERE iso_code="CZ"'); } $sql='SELECT id_zone FROM '._DB_PREFIX_.'country WHERE id_country='.$this->id_country; $this->zone= Db::getInstance()->getValue($sql); $this->doprava=Configuration::get("ZBOZI_DOPRAVAGL_ON"); if($this->doprava) { require_once(_PS_MODULE_DIR_."zbozi/classes/Doprava.php"); if(Configuration::get('PS_LOCALE_COUNTRY') == 'sk') { $id_country=Db::getInstance()->getValue('SELECT id_country FROM '._DB_PREFIX_.'country WHERE iso_code="SK"'); } else { $id_country=Db::getInstance()->getValue('SELECT id_country FROM '._DB_PREFIX_.'country WHERE iso_code="CZ"'); } $sql='SELECT id_zone FROM '._DB_PREFIX_.'country WHERE id_country='.$id_country; $zone= Db::getInstance()->getValue($sql); $this->doprava = new Doprava($zone, json_decode(Configuration::get("ZBOZI_CARRIERS"), true), Configuration::get('PS_SHIPPING_FREE_WEIGHT'), Configuration::get('PS_SHIPPING_FREE_PRICE'), $id_country, json_decode(Configuration::get('ZBOZI_CARRIERSCOD'), true), (int)Configuration::get('ZBOZI_DOPRAVACOD')); } $this->transformed=json_decode(Configuration::get('ZBOZI_TRANSFORMED'), true); $this->free_shipping_price =Configuration::get('PS_SHIPPING_FREE_PRICE'); $this->free_shipping_weight =Configuration::get('PS_SHIPPING_FREE_WEIGHT'); $this->ext_behav = (int)Configuration::get('ZBOZI_TEXT_EXT'); $cats=Configuration::get('ZBOZI_CATS_FORBIDDENgl'); if($cats && strlen($cats )) $this->cats_forbidden = explode(',', $cats); if(Configuration::get('ZBOZI_FILTERATR_'.$this->upname)) { $this->filteredAttributes = $this->getFilteredAttributes($this->upname); $this->FilterCombinations = new FilterCombinations(); } } protected function featuresFromCombination($combination, $features=null) { $retval=array(); $keys=array(); foreach($combination['attributes'] as $at) { $keys[]= $at[0]; $retval[]=array('name'=>$at[0], 'value'=>$at[1]); } if(isset($features) && is_array($features) && count($features) && count($keys)) { while(list($key,$val)=each($features)) { if(! in_array($val['name'], $keys)) $retval[]=array('name'=>$val['name'], 'value'=>$val['value']); } } return $retval; } protected function getItemGroup($product, $url, $cover, $all_images) { $itemgroup=''; foreach($product['attributes'] as $combination) { if($this->jen_skladem && $combination['quantity'] <=0) { continue; } if((float)($product['price'] + $combination['price'] > 0)) { if(Configuration::get('ZBOZI_FILTERATR_'.$this->upname)) { if($this->FilterCombinations->remap($combination, $this->filteredAttributes, $product['id_product']) !== false) { $itemgroup.=$this->createItemCombination($product, $combination, $url, $cover, $all_images); } } else $itemgroup.=$this->createItemCombination($product, $combination, $url, $cover, $all_images); } else { } } return $itemgroup; } protected function createItem($product, $url, $imgurl, $all_images) { $item= "\t\t\n"; $item.=$this->createTag('ITEM_ID', $this->unique_item_id($product['id_product'], 0)); $reference = $this->getReference($product); $item.=$this->addProductAndProductname($product, $reference, $product['ean13']); $item.=$this->createTag('DESCRIPTION', $this->prepareString($this->getDescription($product), true)); if($product['condition'] == 'used') { $item.=$this->createTag('ITEM_TYPE', 'bazar'); } $item.=$this->createTag('URL', $this->prepareString($url)); if($imgurl) { $item.=$this->createTag('IMGURL', $this->prepareString($imgurl)); } if(Configuration::get('ZBOZI_MULTIPLE_IMAGES') && $all_images) $item.=$this->additionalImages($all_images, $imgurl, 0 ); $product['price'] = $this->ConvertAndRoundPrice( $product['price']); $item.=$this->createTag('PRICE_VAT', $product['price']); $item.=$this->createTag('CATEGORYTEXT', $this->prepareString($this->getCategoryText($product['categorytext_glami']))); $item.=$this->getDoprava($product); if(isset($product['videourl']) && strlen($product['videourl'])) { $item.=$this->createTag('VIDEOURL', $product['videourl']); } $item.=$this->getDarek($product['id_product']); $item.=$this->getAccessory($product['id_product']); if(isset($product['features']) && is_array($product['features'])) { $item.=$this->addFeatures($product['features']); } $item.=$this->createTag('DELIVERY_DATE', $this->getAvailability($product)); if($product['manufacturer_name']) $item.=$this->createTag('MANUFACTURER', $this->prepareString($product['manufacturer_name'])); if($this->isValidEan($product['ean13'])) $item.=$this->createTag('EAN', $this->prepareString($product['ean13'])); if($reference && strlen($reference)) { $item.=$this->createTag('PRODUCTNO', $reference); } if(isset($product['heureka_cpc']) && strlen($product['heureka_cpc'])) $item .=$this->createTag('HEUREKA_CPC', $this->floatFromString($product['heureka_cpc'])); else if($this->cpc && $product[$this->cpc]) { // defaultne manufacturer_reference $item .=$this->createTag('HEUREKA_CPC', $this->floatFromString($product[$this->cpc])); } $item.="\t\t\n"; return $item; } protected function createItemCombination($product, $combination, $url, $imgurl, $all_images) { $item= "\t\t\n"; $item.=$this->createTag('ITEM_ID', $this->unique_item_id($product['id_product'], $combination['id_product_attribute'])); $item.=$this->createTag('ITEMGROUP_ID', $product['id_product']); $reference = $this->getReference($product, $combination); if(isset($combination['ean13']) && strlen($combination['ean13'])) $ean13=$combination['ean13']; else $ean13=$product['ean13']; $item.=$this->addProductAndProductname($product, $reference, $ean13, $combination); if($this->isValidEan($ean13)) $item.=$this->createTag('EAN', $ean13); if($reference && strlen($reference)) $item.=$this->createTag('PRODUCTNO', $reference); if(isset($this->cache[$product['id_product']][$combination['id_product_attribute']]) && $this->cache[$product['id_product']][$combination['id_product_attribute']]['date_upd'] == $product['date_upd'] && $this->cache[$product['id_product']][$combination['id_product_attribute']]['product_price'] == $product['price'] && $this->cache[$product['id_product']][$combination['id_product_attribute']]['attribute_price'] == $combination['price'] ) { $price=$this->cache[$product['id_product']][$combination['id_product_attribute']]['price']; } else { $price=Product::getPriceStatic($product['id_product'], true, $combination['id_product_attribute'],2, null, false, true, 1, false, null, null, null, $specific_price); $product['specific_price'] = $specific_price; if((float)$product['unit_price_ratio'] > 0 && $this->unitprice) { $price = Tools::ps_round(($price /$product['unit_price_ratio']), 2); } $this->cache[$product['id_product']][$combination['id_product_attribute']]['price']=$price; $this->cache[$product['id_product']][$combination['id_product_attribute']]['date_upd']=$product['date_upd']; $this->cache[$product['id_product']][$combination['id_product_attribute']]['product_price']=$product['price']; $this->cache[$product['id_product']][$combination['id_product_attribute']]['attribute_price']=$combination['price']; } $item.=$this->createTag('DESCRIPTION', $this->prepareString($this->getDescription($product), true)); if($product['condition'] == 'used') { $item.=$this->createTag('ITEM_TYPE', 'bazar'); } $url.='#'.$this->getCombinationUrl($combination['attributes']); if(isset($combination['removed']) && count($combination['removed'])) { $url.= $this->getCombinationUrl($combination['removed']); } $item.=$this->createTag('URL', $this->prepareString($url)); $imgurlc = ''; if($combination['id_image']) { $imgurlc = $this->combinationCoverUrl($all_images, $combination['id_product_attribute']); $item.=$this->createTag('IMGURL', $this->prepareString($imgurlc)); if(Configuration::get('ZBOZI_MULTIPLE_IMAGES') && $all_images) $item.= $this->additionalImages($all_images, $imgurlc, $combination['id_product_attribute']); } if($imgurlc == '' && $imgurl) { $item.=$this->createTag('IMGURL', $this->prepareString($imgurl)); } $price = $this->ConvertAndRoundPrice($price); $item.=$this->createTag('PRICE_VAT', $price); $item.=$this->createTag('CATEGORYTEXT', $this->prepareString($this->getCategoryText($product['categorytext_glami']))); $item.=$this->getDoprava($product); $item.=$this->getDarek($product['id_product']); $item.=$this->getAccessory($product['id_product']); if(isset($product['videourl']) && strlen($product['videourl'])) { $item.=$this->createTag('VIDEOURL', $product['videourl']); } $features=$this->featuresFromCombination($combination, $product['features']); if(is_array($features) && count($features)) { $item.=$this->addFeatures($features); } $item.=$this->createTag('DELIVERY_DATE', $this->getAvailability($this->mergeAvailability($combination, $product))); if($product['manufacturer_name']) $item.=$this->createTag('MANUFACTURER', $this->prepareString($product['manufacturer_name'])); if(isset($product['heureka_cpc']) && strlen($product['heureka_cpc'])) $item .=$this->createTag('HEUREKA_CPC', $this->floatFromString($product['heureka_cpc'])); else if($this->cpc && $product[$this->cpc]) // defaultne manufacturer_reference $item .=$this->createTag('HEUREKA_CPC', $this->floatFromString($product[$this->cpc]) ); $item.="\t\t\n"; return $item; } }