Jump to content

XML FEED pro zbozi.cz a TOLLFREE


cendaprnda

Recommended Posts

Ahoj všem,

chtěl bych podpořit nějakým mrzkým penízem zbozi.cz, ale ne zas nějak moc :). Chtěl bych proto změnit svůj feed pro zbozi.cz tak, aby všechny produkty byly TOLLFREE 1 a pouze pár aby bylo zpoplatněno. Celkme to funguje, nicméně feed mi vždy vyhodí chybu na uplně stejném místě

Chrome hlásí
error on line 1140 at column 17: xmlParseEntityRef: no name

Mozila pak
Chyba parsování XML: Dokument není dobře zformátován
Adresa: http://www.i-hrackarstvi.cz/zbozi_test.php
Číslo řádku 1140, sloupec 17: Blok & Blok 5 family
-----------------------^

Tato chyba se pak zobrazuje i když vymažu přidané echo, které jsem do scriptu přidal :(. Jediné kdy opět script začne fungovat je přehrání scriptem stávajícím. K editaci používám PSPAD.

Má někdo nápad proč to blbne ? Případně jak řešíte položku TOLLFREE na zbozi.cz vy ?

Script originál


<?php

$shopUrl = 'www.xxxx.cz';
$noShowCategory = "7,8,9,69,70,71,72,73,74,75,76,77,78,79";
$cfgFile = dirname(__FILE__) . '/config/settings.inc.php';
if (!file_exists($cfgFile))
{
   die('Skript musi byt umisten v rootu prestashopu v config/settings.inc.php musi byt nastaveni databaze.');
}

require_once($cfgFile);
$db = @MySQL_Connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_);
if (!$db)
{
   die('Nemohu se spojit s databazi.');
}

MySQL_Select_DB(_DB_NAME_, $db);
MySQL_Query("SET NAMES 'utf8'");
$prefix = "ps_";
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>';
?>
<?php
echo "\n\n";


$res = MySQL_Query("
       SELECT
               p.id_product,
               p.quantity,
               p.price,
               p.reduction_price,
               p.reduction_percent,
               p.reduction_from,
               p.reduction_to,
               pl.name,
               pl.description_short,
               pl.link_rewrite,
               i.id_image
       FROM {$prefix}product p
       JOIN {$prefix}product_lang pl USING(id_product)
       JOIN {$prefix}image i USING(id_product)
       WHERE i.cover = 1 AND NOT (SELECT COUNT(*)
               FROM {$prefix}category_product cp
               WHERE cp.id_product = p.id_product
                       AND cp.id_category IN($noShowCategory))
       ORDER BY p.id_product", $db); 

$currentDate = date('Y-m-d');

while ($row = MySQL_Fetch_Assoc($res))
{
   $desc = strip_tags(html_entity_decode($row['description_short'], ENT_COMPAT, 'utf-8'));

   if ($result['reduction_from'] == $result['reduction_to']
           || ($result['reduction_from'] <= $currentDate
                   && $currentDate <= $result['reduction_to']))
   {
       if ($row['reduction_price'] && $row['reduction_price'] > 0)
       {
           if ($row['reduction_price'] >= $row['price'])
           {
               $reduction = $row['price'];
           }
           else
           {
               $reduction = $row['reduction_price'];
           }
       }
       elseif ($row['reduction_percent'] && $row['reduction_percent'] > 0)
       {
           if ($row['reduction_percent'] >= 100)
           {
               $reduction = $row['price'];
           }
           else
           {
               $reduction = $row['price'] * $row['reduction_percent'] / 100;
           }
       }
   }

   echo "\n";
   echo "\t" . mb_substr($row['name'], 0, 64, 'utf-8') ."\n"; 
   echo "\t" . mb_substr($desc, 0, 512, 'utf-8') . "\n";
   echo "\thttp://" . $shopUrl . "/" . $row['id_product'] .
           "-" . $row['link_rewrite'] . ".html\n";
   echo "\tnew\n";
   echo "\t" . ($row['quantity'] > 0 ? "0" : "73") . "\n";
   echo "\thttp://" . $shopUrl . "/img/p/" .$row['id_product'] .
           "-" . $row['id_image'] . "-large.jpg\n";
   echo "\t" . round($row['price']-$reduction/1.20) . "\n";
   echo "\n";
}

echo "\n";

?>



upraveny

jen přidán řádek

echo "\t" . ($row['quantity'] = 0 ? "1" : "0") . "\n";



Vygeneruje se cca 1000 položek a pak vyhodí chybu. Protože v php umím prdlajs, tak sem chtěl využít, toho, že dodavatele mám u všeho zboží jako 0 a pomocí id_supplier (namísto quantity) bych si jen definoval zda se má zobrazovat nebo ne. Podporovat chci třeba jen 10 ks zboží.

Budu rád za každou radu, nebo nápad jak jinak vyřešit v xml parametr TOLFREE


Zdeněk

Link to comment
Share on other sites

  • 3 weeks later...

To mě mrzí, že tu není odpověď. Na Heuréce v pohodě TOLL odklikáš jak chceš, ale na podrpoře Zboží mi řekli, že si to musím nastavit v administraci e-shopu. V Prestě to ale není, takže jediné co zbývá je tak jak popisuješ. Nechce se mi platit za kliknutí na produkty, které stojí pár korun, ale je to otázka, třeba se to vyplatí z dlouhodobého hlediska. Nevím.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...