Zdravím vás,
mám takový problém mám exportModel.php což je soubor ve kterém generuji pomocí php xml soubor pro zbozi.cz a heureka.cz ale mám problém že i když funkce beru ze stejné tabulky tak když chci vypsat EAN napíše mi že chybí..... ale přitom tam doplněný je...
public static function exportHeureka($params=null, $save=true)
{
/*
$dir = App::getFilesDir().self::DIR_EXPORT.self::DIR_ZBOZI;
echo file_get_contents($dir.'zbozi.xml', NULL, NULL, 0, 90000);
die();
*/
ini_set('max_execution_time', 3600);
ini_set('memory_limit','2048M');
ob_start();
$categoryID = null;
if(isset($params['idcat']) && (int)$params['idcat']>0)
$categoryID = (int) $params['idcat'];
$idlang = isset($params['idlang']) ? $params['idlang'] : Lang::getIdLang();
//------------------------------------------
// ZISKANI DAT
$model = Module::loadModel(self::MODULE_NAME);
$const = $model->__getConstants();
$cModel = Module::loadModel(self::MODULE_NAME, 'categoryModel');
$cConst = $cModel->__getConstants();
$vModel = Module::loadModel(self::MODULE_NAME, 'variantModel');
$vpModel = Module::loadModel(self::MODULE_NAME, 'variantProfileModel');
$vpaModel = Module::loadModel(self::MODULE_NAME, 'variantParameterModel');
$vbpModel = Module::loadModel(self::MODULE_NAME, 'variantBindParametrModel');
$wheres[] = " NOT `".$const['TABLE']."`.`".$const['DELETED']."` ";
$wheres[] = " `".$const['TABLE']."`.`".$const['IDLANG']."`=".$idlang." ";
$wheres[] = " NOT `".$cConst['TABLE']."`.`".$cConst['DELETED']."` ";
if($categoryID)
{
$categoryIDs[$categoryID] = $categoryID;
foreach($cModel->getSubcategories($categoryID) as $c)
$categoryIDs[$c['ID']] = $c['ID'];
$wheres[] = " `".$const['TABLE_CB']."`.`".$const['CB_IDCAT']."` IN (".implode(',', $categoryIDs).") ";
}
$order = null;
$opt['files'] = false;
$catalogitems = $model->getCatalogItems_(1, $wheres, $order, null, $opt);
$catalogitems = $catalogitems['data'];
//print_r($catalogitems);
//------------------------------------------
// ZISKANI VSECH VYROBCU
$manModel = Module::loadModel(self::MODULE_NAME, 'manufacturerModel');
$manConst = $manModel->__getConstants();
$manufacturers = $manModel->getManufacturers();
$manufacturers = $manufacturers['data'];
//print_r($manufacturers);
//------------------------------------------
$heureka_xmlname = 'heureka'.($categoryID>0?'-c'.$categoryID:'').'.xml';
$heureka_root_tag = 'SHOP';
$heureka_item_tag = 'SHOPITEM';
$heureka_item_param_tag = 'PARAM';
$xmlOut = self::getXmlHeader();
$xmlOut.= self::startTag($heureka_root_tag,0,array(),1);
$serverUri = UrlParser::getServerUri();
$vatLower = round((float)Setting::getValue(Setting::K_VAT_LOWER),2);
$vatH = round((float)Setting::getValue(Setting::K_VAT),2);
$rootedCatsLoaded = array();
foreach($catalogitems as $row)
{
$variant = $vModel->getVariants($row['ID']);
if(count($variant)>0){
foreach($variant as $va){
if(isset($va["AVAILABILITY"]) and $va["AVAILABILITY"] > $row['AVAILABILITY']){
$row['AVAILABILITY'] = $va["AVAILABILITY"];
}
}
}
if($row['AVAILABILITY'] > 0) {
$data = array();
$data['ITEM_ID'] = $row['ID'];
$data['PRODUCTNAME'] = htmlspecialchars($row['NAME'].(strlen($row['PARTNO'])?' '.$row['PARTNO']:""));
$data['PRODUCT'] = htmlspecialchars($row['NAME'].(strlen($row['PARTNO'])?' '.$row['PARTNO']:""));
$data['DESCRIPTION'] = html_entity_decode(htmlspecialchars_decode(ROUTINE::rip_tags($row['DESCRIPTION'])),ENT_COMPAT,'UTF-8');
$data['URL'] = $serverUri.'/i'.$row['ID'].'-'.$row['URL'].'/';
if((int)$row['IDFILE']>0)
{
$args['idfile'] = (int)$row['IDFILE'];
$args['type'] = '';
$urlimg = UrlParser::encode('IMG::viewFile::'.UrlParser::encode($args));
$data['IMGURL'] = $serverUri.'/'.$urlimg;
}
switch((int)$row['VATFLAG'])
{
case 0: { $DPHCOEFF = 1.0; break; }
case 1: { $DPHCOEFF = $vatLower; break; }
case 2:
default:{ $DPHCOEFF = $vatH; }
}
$margin = $model->getCatalogItemMarginCoefficient($row['ID']);
$data['PRICE_VAT'] = round($row['MINPRICE']*$DPHCOEFF*$margin);
$data['ITEM_TYPE'] = 'new';
if((int)$row['IDMANUFACTURER']>0 && isset($manufacturers[$row['IDMANUFACTURER']]))
{
$data['MANUFACTURER'] = $manufacturers[$row['IDMANUFACTURER']]['NAME'];
}
//$data['PRODUCTNO'] = $row[];
$itemcategoriesIDs = $model->getCatalogItemCategories($row['ID']);
$rootedCatsPaths = array();
$auxMaxCount = -1;
foreach($itemcategoriesIDs as $catid)
{
if(isset($rootedCatsLoaded[$catid]))
{
$auxpath = $path = $rootedCatsLoaded[$catid];
$root = array_shift($auxpath);
$rootedCatsPaths[$root['ID']][$catid] = $path;
if(count($path)>$auxMaxCount)
{
$rootedCatsPaths[$root['ID']]['A'] = $path;
$auxMaxCount = count($path);
}
}
else
{
$auxpath = $path = $cModel->getPath($catid);
$root = array_shift($auxpath);
$rootedCatsPaths[$root['ID']][$catid] = $path;
if(count($path)>$auxMaxCount)
{
$rootedCatsPaths[$root['ID']]['A'] = $path;
$auxMaxCount = count($path);
}
$rootedCatsLoaded[$catid] = $path;
}
}
$firstRootcatid = null;
$ifc=0;
foreach($rootedCatsPaths as $rootcatid=>$catpaths)
{
if($ifc==0) $firstRootcatid = $rootcatid;
$ifc++;
$catstr = '';
$ic=0;
if(isset($catpaths['A']))
{
foreach($catpaths['A'] as $category)
{
$ic++;
$catstr .= $category['NAME'].($ic<count($catpaths['A']) ? " | " : "");
}
$data['CATEGORYTEXT'][] = $catstr;
}
}
$data['EAN'] = $row['EAN'];
$dd = null;
if($row['AVAILABILITY']==0) $dd = 1;
elseif($row['AVAILABILITY']>0) $dd = $row['AVAILABILITY'];
if($dd!==null) $data['DELIVERY_DATE'] = $dd;
$variants = $vbpModel->selectItemProfileVariantParam($row['ID']);
if(count($variants)>0){
foreach($variants as $va){
$temp_data = $data;
$temp_data['ITEM_ID'].='_V_'.$va["PARAMETRID"];
$var_var=$vpaModel->getParam($va["PARAMETRID"]);
$var_group=$vpaModel->getParam($var_var["PARENTID"]);
$xmlOut .= self::startTag($heureka_item_tag,1,array(),1);
$xmlOut .= self::getXmlRow($temp_data,null, 2);
$xmlOut .= self::getXmlRow(array('PARAM_NAME'=>$var_group["NAME"],'VAL'=>$var_var["NAME"]),$heureka_item_param_tag, 2);
$xmlOut .= self::getXmlRow(array('ITEMGROUP_ID'=>$row['ID']),null, 2);
$xmlOut .= self::endTag($heureka_item_tag, 1, 1);
}
}else{
$xmlOut .= self::getXmlRow($data, $heureka_item_tag, 2);
}
}
}
$xmlOut.= self::endTag($heureka_root_tag, 0);
if($save===true)
{
$dir = App::getFilesDir().self::DIR_EXPORT.self::DIR_HEUREKA;
File::createDir($dir);
if(file_put_contents($dir.$heureka_xmlname, $xmlOut))
{
$a_url = UrlParser::getServerUri().App::getFilesUrl().self::DIR_EXPORT.self::DIR_HEUREKA.$heureka_xmlname;
$a_tag = '<a style="color:#fff" href="'.$a_url.'" target="_blank">'.$a_url.'</a>';
$msg = 'XML Heureka.cz bylo vytvořeno. Nachází se na adrese '.$a_tag.'. ';
return array(true, $msg);
}
else
{
$msg = 'Při vytváření XML heureka.cz nastala chyba. ';
return array(false, $msg);
}
}
ob_clean();
Header::xml();
echo $xmlOut;
die();
}
To je public který gerenuje heureku.xml...
<SHOPITEM>
<ITEM_ID>3322</ITEM_ID>
<PRODUCTNAME>BESTOW II vesta se závažím 5 kg vel. L černá</PRODUCTNAME>
<PRODUCT>BESTOW II vesta se závažím 5 kg vel. L černá</PRODUCT>
<DESCRIPTION>
Vesta se zatížením je vhodná pro trénink v tělocvičně, doma, nebo při joggingu. Vesta má ve předu zapínání na sponu se stříbrnými reflexními pásky. Materiál je jednoduchý na údržbu parametry: Velikosti vesty: M, L Závaží: 5 kg Materiál: 70% nylon, 30% neopren
</DESCRIPTION>
<URL>
https://www.bellugio.cz/…vel-l-cerna/
</URL>
<IMGURL>
https://www.bellugio.cz/…TsgZcMPhXH_E.
</IMGURL>
<PRICE_VAT>762</PRICE_VAT>
<ITEM_TYPE>new</ITEM_TYPE>
<CATEGORYTEXT>Sporty | Míčové a společenské sporty</CATEGORYTEXT>
<EAN/>
<DELIVERY_DATE>3</DELIVERY_DATE>
</SHOPITEM>
Tady je výpis v xml... EAN chybí... a když se podívám do souboru tak tam se nalézá <EAN></EAN>
Nevíte nějakou radu čím to může být způsobeno?
Díky všem předem za pomoc..
S pozdravem
Dominik Korčák