Jump to content

XML generátor zbozi.cz


Heidy

Recommended Posts

o vyse zminenem modulu jsem nevedel a tak jsem si napsal jednoduchy script, ktery mi xml vytvori:

<?php
include(dirname(__FILE__).'/../config/config.inc.php'); // cesta k vasemu config souboru
$p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false); // cislo 10 je id ceskeho jazyka v databazi
$products=Product::getProductsProperties(10, $p); // cislo 10 je id ceskeho jazyka v databazi
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '

'.strtr($row['name'], "&", "&").'
'.strtr(strip_tags($row['description_short']), "&", "&").'
http://www.vasedomena.cz'.$row['link'].'
http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
echo '';
?>



Misto url adres www.vasedomena.cz si dejte vasi adresu a skript ulozte na server (napr. /xml/xml_zbozi.php jako mam ja).
Pak uz jen pri registraci na zbozi.cz predhodte jako adresu xml souboru cestu k tomuto skriptu (http://www.vasedomena.cz/xml/xml_zbozi.php)

Link to comment
Share on other sites

  • 2 weeks later...

Export pro zbozi.cz by byl. Ale potřeboval bych pro strukturované katalogy např.
"www.heureka.cz":http://www.heureka.cz výrobce jsem přidal jednoduše:

'.strtr($row['manufacturer_name'], "&", "&").'

ovšem je potřeba pro správné spárovaní je potřeba určit celou cestu ke kategorii (dle "nápovědy":http://sluzby.heureka.cz/napoveda/import/ )

Elektronika/Mobilní telefony

vypsání čísla default kategorie je jednoduché přes "id_category_default" jak ale vypíši celou cestu tedy Elektronika > Mobilní telefony. Díky za každou radu

Link to comment
Share on other sites

pro heureku

<?php
include(dirname(__FILE__).'/../config/config.inc.php');
$p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false);
$products=Product::getProductsProperties(10, $p);

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';

foreach ($products as $row) {

$kategorie=array();
$category = new Category(intval($row['id_category_default']), intval(10));
while ($category->id <> 1) {
   $kategorie[]=$category->hideCategoryPosition($category->name);
   $category = new Category(intval($category->id_parent), intval(10));
}

$img=Product::getCover($row['id_product']);
echo '

'.strtr($row['name'], "&", "&").'
'.strtr(strip_tags($row['description_short']), "&", "and").'
http://www.vasedomena.cz'.$row['link'].'
http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
'.strtr($row['manufacturer_name'], "&", "&").'
'.implode('>',array_reverse($kategorie)).'
1
';
}
echo '';
?>

Link to comment
Share on other sites

Mě to nějak nefunguje. Když dám zobrazit soubor zbozi.php, které jsem vytvořil tak u každého zboží mi to udělá chybu

Notice: Undefined index: rate in /var/www/vhosts/nosic.eu/httpdocs/classes/Product.php on line 1017

Notice: Undefined index: id_image in /var/www/vhosts/nosic.eu/httpdocs/classes/Product.php on line 1581

Notice: Trying to get property of non-object in /var/www/vhosts/nosic.eu/httpdocs/classes/Product.php on line 1583



potom

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/nosic.eu/httpdocs/classes/Product.php:1581) in /var/www/vhosts/nosic.eu/httpdocs/xml/zbozi.php on line 5



a pod tím je to zobrazené už správně.

Na řádku 1017 je $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate'])));
Na řádku 1581 je if (!$row['id_image'])
Na řádku 1583 je $row['id_image'] = Language::getIsoById($cookie->id_lang).'-default';

Ví někdo kde by mohl být problém?

Link to comment
Share on other sites

seznam.php

<?php
include(dirname(__FILE__).'/config/config.inc.php');
error_reporting(0);
$p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false); // cislo 10 je id ceskeho jazyka v databazi
$products=Product::getProductsProperties(10, $p); // cislo 10 je id ceskeho jazyka v databazi
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['name']).'
'.str_replace("&", "&",strip_tags($row['description_short'])).'
http://www.vasedomena.cz'.$row['link'].'
http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
echo '';
?>

Link to comment
Share on other sites

heureka.php

<?php
include(dirname(__FILE__).'/config/config.inc.php');
error_reporting(0);
$p=Product::getProducts(10, 0, 0, 'id_product', 'desc', false);
$products=Product::getProductsProperties(10, $p);

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';

foreach ($products as $row) {

$kategorie=array();
$category = new Category(intval($row['id_category_default']), intval(10));
while ($category->id <> 1) {
   $kategorie[]=$category->hideCategoryPosition($category->name);
   $category = new Category(intval($category->id_parent), intval(10));
}

$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['name']).'
'.str_replace("&", "and", strip_tags($row['description_short'])).'
http://www.vasedomena.cz'.$row['link'].'
http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
'.str_replace("&", "&", $row['manufacturer_name']).'
'.implode('>',array_reverse($kategorie)).'
1
';
}
echo '';
?> 

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Ahoj, taky prikladam seznam.php pro export na zbozi.cz.

Ten muj se lisi tim, ze jsem potreboval nejak jednoduse vyloucit kategorie, ktere se neshoduji s pravidly zbozi.cz. Dale umi unquotovat ty zaquotovany znaky co prestashop uklada do db a zbozi tyto produkty nezobrazi (nektery znaky s diakritikou), jenom strip_tags nestaci. Dale koukam ze tu kazdy natvrdo dava do feedu cenu, ale tato cena je pred aplikaci slevy, muj skript zohlednuje slevy zadane na urcite obdobi a to jak slevy cenou tak slevy procentem. Take orezava titulky a popisky an pocet znaku na zbozi povoleny.

Pokud jsem pri jeho psani na neco jeste zapomnel, upozornete me prosim.

<?php

$shopUrl = 'www.domena.tld';
$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'");

echo "<?xml \"1.0\"=\"utf-8\"?>\n";
echo "\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 product p
       JOIN product_lang pl USING(id_product)
       JOIN image i USING(id_product)
       WHERE i.cover = 1 AND NOT (SELECT COUNT(*)
               FROM 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.19) . "\n";
   echo "\t19\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\n";
}

echo "\n";

?>

Link to comment
Share on other sites

Prikladam jeste exportni skript na seznamzbozi.cz

<?php

$shopUrl = 'www.domena.tld';
$langCz = 10;
$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'");

$res = MySQL_Query("
   SELECT
       c.id_category,
       c.id_parent,
       c.level_depth,
       l.name
   FROM category c
   JOIN category_lang l ON l.id_category = c.id_category AND l.id_lang = {$langCz}
   WHERE active = 1 AND level_depth > 0
   ORDER BY level_depth, id_category
");

$categories = array();
while ($row = MySQL_Fetch_Assoc($res))
{
   if ($row['level_depth'] == 1)
   {
   $categories[$row['id_category']] = $row['name'];
   }
   else
   {
   $categories[$row['id_category']] = $categories[$row['id_parent']] . " > " . $row['name'];
   }
}

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "\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,
       cp.id_category,
       m.name AS manufacturer
       FROM product p
       JOIN product_lang pl USING(id_product)
       JOIN image i USING(id_product)
   JOIN category_product cp USING(id_product)
   JOIN category c USING(id_category)
   JOIN manufacturer m USING(id_manufacturer)
       WHERE p.active = 1
       AND i.cover = 1
       AND cp.id_category > 1
       AND c.level_depth > 1
       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" . $row['id_product'] . "\n";
   echo "\t" . $categories[$row['id_category']] . "\n";
   echo "\t" . $row['manufacturer'] . "\n";
   echo "\t" . $row['name'] . "\n";
   echo "\t" . mb_substr($desc, 0, 512, 'utf-8') . "\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\thttp://" . $shopUrl . "/img/p/" .$row['id_product'] .
           "-" . $row['id_image'] . "-large.jpg\n";
   echo "\thttp://" . $shopUrl . "/" . $row['id_product'] .
           "-" . $row['link_rewrite'] . ".html\n";
   echo "\n";
}

echo "\n";

?>

Link to comment
Share on other sites

Ahoj, nedělaly jste někdo skript pro zboží.cz tak, aby se zboží rozdělilo i podle atributů? např mám produkt, u kterého mám atribut Balení 10kg a balení 20kg, nynejší script vygeneruje pouze jeden produkt, já bych chtěl generovat toto jako 2 produkty, už se s tím mořím celý den a nějak mi to nejde. Dík

Link to comment
Share on other sites

  • 2 weeks later...

Kaspi88: Z Tveho popisu problemu nedokazu urcit co je spatne, zapni si zobrazovani chyb, neco ti to musi vypsat.
Ptal jses me v mailu na verzi, je to na 1.0.0.8, ale nevidim duvod, proc by to nejelo i na novejsi.

xy125: Tohle nedoporucuju, melo by to stejnej nazev, ve zbozi by ti za to zabanovali shop za duplicitu polozek. Jediny co me napada je pridava nazev a hodnotu toho atributu do nazvu produktu, to ti ale pak nebude sedet s nazvem v url. Radsi bych si tam ty produkty natukal vickrat nez met zrovna tohleto jako atributy.

Link to comment
Share on other sites

Verze MySQL: 5.0.32-Debian_7etch6-log

když přidám pod $res = MySQL_Query -> echo mysql_error(); tak to vypíše, že to tabulku nenalezlo..

Table '805-obchod-thule.product' doesn't exist
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/obchod-thule.cz/www/feed/zbozi.php on line 49

jinak tabulky mám s predefixem ps_ ;)

Link to comment
Share on other sites

Mno vida, tak jsis reseni nalezl sam, chybi tam prefixy, ktery ja nepouzivam :)

Dodej si nekam nahoru promennou $prefix = "ps_"; a ten select uprav nasledovne:

$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);

Link to comment
Share on other sites

  • 1 month later...

Jeste jedna zapomenuta vec ohledne exportu na zbozi, vsiml jsem si toho pozdeji ze nektery ceny nesedi.

Za radek:

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



pridejte radek:

$reduction = 0;

Link to comment
Share on other sites

  • 2 weeks later...
Prikladam jeste exportni skript na seznamzbozi.cz

<?php

$shopUrl = 'www.domena.tld';
$langCz = 10;
$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'");

$res = MySQL_Query("
   SELECT
       c.id_category,
       c.id_parent,
       c.level_depth,
       l.name
   FROM category c
   JOIN category_lang l ON l.id_category = c.id_category AND l.id_lang = {$langCz}
   WHERE active = 1 AND level_depth > 0
   ORDER BY level_depth, id_category
");

$categories = array();
while ($row = MySQL_Fetch_Assoc($res))
{
   if ($row['level_depth'] == 1)
   {
   $categories[$row['id_category']] = $row['name'];
   }
   else
   {
   $categories[$row['id_category']] = $categories[$row['id_parent']] . " > " . $row['name'];
   }
}

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "\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,
       cp.id_category,
       m.name AS manufacturer
       FROM product p
       JOIN product_lang pl USING(id_product)
       JOIN image i USING(id_product)
   JOIN category_product cp USING(id_product)
   JOIN category c USING(id_category)
   JOIN manufacturer m USING(id_manufacturer)
       WHERE p.active = 1
       AND i.cover = 1
       AND cp.id_category > 1
       AND c.level_depth > 1
       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" . $row['id_product'] . "\n";
   echo "\t" . $categories[$row['id_category']] . "\n";
   echo "\t" . $row['manufacturer'] . "\n";
   echo "\t" . $row['name'] . "\n";
   echo "\t" . mb_substr($desc, 0, 512, 'utf-8') . "\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\thttp://" . $shopUrl . "/img/p/" .$row['id_product'] .
           "-" . $row['id_image'] . "-large.jpg\n";
   echo "\thttp://" . $shopUrl . "/" . $row['id_product'] .
           "-" . $row['link_rewrite'] . ".html\n";
   echo "\n";
}

echo "\n";

?>



Prosím Tě můžeš mi poradit jak spustit tento script bez chyby? Při spuštění mi to hlásí viz. níže.
Díky předem.

Neplatný element na nejvyšší úrovni dokumentu Při zpracování prostředku
http://localhost/prestashop/xml/gen_xml_zbozicz1.ph...

Link to comment
Share on other sites

@MarekMlcoch: nepouzivas nahodou u svych tabulek prefix? jestli jo, tak zkus tusim predchazejici stranku... protoze tenhle skript co mas, tak s zadnym "PS_" nepocita.

EDIT: takze je to dokonce na tehle strance nahore...


Používám tabulky s prefixem ps_.
Ten post co uvádíš jsem samozřejmě čet a aktualizoval jsem script podle něj.
Výsledek je ten, který jsem uvedl před tím.
Link to comment
Share on other sites

  • 3 weeks later...

Ahoj,
díky moc za skript, ale píše toto:

Stránku XML nelze zobrazit
Vstup XML nelze zobrazit pomocí šablony stylů . Opravte tuto chybu a klepněte na tlačítko Aktualizovat, nebo akci zopakujte později.


--------------------------------------------------------------------------------

Deklarace xml obsahuje neplatnou syntaxi. Při zpracování prostředku http://www.rcking.eu/zbozicz.php došlo k chybě. Řádek ...

<?xml "1.0"="utf-8"?>
------^


mám prestu 1.1, co s tím?

Link to comment
Share on other sites

Jo dobroš, nechám tam tedy alespoň ten první script, ten běží. Nerozumim databázím atd. (byť třeba offline sofů jsem udělal dost, třeba POKEC kdo si vzpomene :-)) ale prostě jsem to zkopíroval přesně tak jak je psáno, udělal jsem pečlivě všechny úpravy ale nejede to.. Tak jsem si říkal že líná huba holý neštěstí a optal jsem se. Každopádně i tak díky. M.

Link to comment
Share on other sites

Zkusim to jeste jednou, tentokrat vice "blbuvzdorne".

<?php

$shopUrl = 'www.domena.tld';
$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'");

echo "<?xml \"1.0\"=\"utf-8\"?>\n";
echo "\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 " . _DB_PREFIX_ . "product p
       JOIN " . _DB_PREFIX_ . "product_lang pl USING(id_product)
       JOIN " . _DB_PREFIX_ . "image i USING(id_product)
       JOIN " . _DB_PREFIX_ . "lang l USING(id_lang)
       WHERE i.cover = 1 AND l.iso_code = 'cs' AND p.active = 1 AND NOT (
               SELECT COUNT(*)
               FROM " . _DB_PREFIX_ . "category_product cp
               WHERE cp.id_product = p.id_product
                       AND cp.id_category IN($noShowCategory))
       ORDER BY p.id_product", $db);
if (!$res)
{
   die(mysql_error());
}

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

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

   $reduction = 0;
   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.19) . "\n";
   echo "\t19\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\n";
}

echo "\n";

?>

Link to comment
Share on other sites

Mam takový problém s generátorem xml pro heuréku... Nezobrazují se mi zde totiž kategorie, v xml se nachází pouze text . Neví někdo jak bych tam mohl kategorie přidat? Heuréka totiž dělá docela problémy se zařazením mého zboží dokud nebudou v xml kategorie :(

Link to comment
Share on other sites

Xml feed pro heureka.cz pro uživatele "Pepik" přikládám:

Nahradte http://www.vaseshop.cz svojí url adresou eshopu v scriptu a soubor heureka_cz_export umístětě v rootu vaší instalace a pak by měl mít xml feed odkaz např. takto: http://www.vaseshop.cz/heureka_cz_export.php . Když tě fungoval xml feed ode mě pro zboží.cz, tak by tě tento pro heureka.cz měl už fungovat taky i s výpisem kategoríí.

heureka_cz_export.php

Link to comment
Share on other sites

  • 2 weeks later...
Tak jsem zkoušel feedy od míry i od haVaje a fungujou dobře - ale bohužel jen do cca 7000 položek. Jak je toho víc, tak to prostě nejede. Věděl by někdo co s tím?


podle me mas asi problem s nastavenim limitu pameti na serveru. zkus se domluvit s webhosterem, ale obavam se, ze bohuzel nejspis tento parametr nejsi schopny ovlivnit.
Link to comment
Share on other sites

  • 1 month later...

Proboha lidi nejde to jinak? Tím myslím ten kód na export do zbozi.cz. Nedají se použít interní výpočty ceny a objekty Presty? Vždyť to třeba natvrdo bere daň jako 19procent a já mám spoustu položek s 9ti pct... Nejde to hezky objektově???

Link to comment
Share on other sites

Vzdyt tam zadna dan nemusi byt, vyhledavacum zbozi staci jen cena s dani, tzn. PRICE_VAT .
Vsechny potrebne udaje jsou v objektu $product ... vzdyt uz jsem ty skripty psal v uvodu toho tematu a vy musite furt vymyslet nove :)
$row['price'] je samozrejme cena po sleve, tzn. konecna za kterou prodavate, ne jak tady nekdo na zacatku tematu psal ze slevy to nezapocitava.

<?php
include(dirname(__FILE__).'/../config/config.inc.php');
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false);
$products=Product::getProductsProperties(3, $p);

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';

foreach ($products as $row) {
if ($row['active']==1) {
$img=Product::getCover($row['id_product']);
echo '

'.htmlspecialchars($row['name']).'
'.htmlspecialchars(strip_tags($row['description_short'])).'
http://www.vasedomena.cz'.$row['link'].'
http://www.vasedomena.cz/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
}
echo '';
?>

Link to comment
Share on other sites

  • 2 weeks later...

Zdravim, s těmito XML generátory jsem nováček, takže jsem se chtěl zeptat, zda když jsem dal PHP soubory pro zbozi.cz a seznamzbozi.cz (s upravou pro prefixy a cesty) do kořenovýho adresáře na mym webu, tak se tam ty produkty zobrazej okamžitě?? nebo je tam nějaká prodleva (ptam se proto, že se mi u skriptu na zbozi.cz neobjevilo všechno zboží) a skript pro seznamzbozi mi piše tuto chybu

"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL" (nevim proč, když parametr mysql_fetch_assoc() je i v tom prvnim skriptu, kterej se alespon zobrazi...)

jinak hostuju na www.ikramecek.cz

(nazvy souboru jsou
zbozicz.php
seznamzbozi.php)

Díky moc všem


PS - jednodušší verze pro heureku mi funguje normalně a i vypis ma "pěknej" (http://www.ikramecek.cz/heureka.php), u zbozicz.php je ten vypis znaku dost divokej.., čim to???

PS2 (ještě přikladam soubory, ktery jsem použil)

seznamzbozi.php

zbozicz.php

Link to comment
Share on other sites

  • 3 months later...

Ahoj, při generaci xml pro zbozi.cz se špatně generuje URL výrobku, tenhle script používám

<?php
$shopUrl = 'http://abito.cz';      // adresa shopu včetně http://
include(dirname(__FILE__).'/../config/config.inc.php'); // cesta ke config souboru
error_reporting(0);
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false); // ceština je v databázi zapsaná pod číslem 3
$products=Product::getProductsProperties(3, $p); // ceština je v databázi zapsaná pod číslem 3

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['name']).'
'.str_replace("&", "&",strip_tags($row['description_short'])).'
'.$shopUrl.''.$row['link'].'
'.$shopUrl.'/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
echo '';
?>



A v xml se URL u všech výrobků zobrazuje takhle.

http://abito.cz_PS_BASE_URL_/22-luxusni-dvoubarevne-saty.html



Nevíte kde se tam bere to _PS_BASE_URL_ ?

Link to comment
Share on other sites

od října přechází zbozi.cz na nový druh služby vyhledávání zboží a váže se k tomu i změna struktury feedu. já osobně nemám znalosti, abych si generování feedu přizpůsobil, chtěl bych se tedy zeptat, jestli se tomu budete někdo věnovat. díky.

nová struktura feedu zbozi.cz
http://napoveda.seznam.cz/cz/rozsireni-xml-feedu-platne-od-102009.html

Link to comment
Share on other sites

mail jsem četl "pořádně", ale kdyby to náhodou někdo jen tak přelétl, tak doplňuji ještě "navazující" větu.

...potom bude stále fungovat starý formát. Implementací nového formátu ovšem zvýšíte pravděpodobnost správného spárování svých nabídek do databáze výrobků.

Link to comment
Share on other sites

  • 2 weeks later...

Tak jsem to vyřešil takhle ,hlavně zato nenadávejte
pokud to udělá někdo líp prosím.

'. round($row['price']/1.19).'
'.($row['price']*1).'



výsledek je

41932
49899



hodí se pro hledej ceny

Povinné elementy jsou:
ID - unikátní ID výrobku v rámci Vašeho obchodu
PRODUCT - jméno výrobku, zboží, služby
URL - URL stránky s detaily a nabídkou zboží
PRICE - cena zboží bez DPH
PRICE_VAT - cena zboží s DPH
CATEGORYTEXT - kategorie, ve které máte výrobek zařazen. (pokud nemáte výrobky zařazeny do kategorií a jste specializovaný obchod, uváďejte Vaši specializaci)

Neuvedete-li nějaký z těctho elementů, Váš výrobek nebude zařazen do databáze. Pokud ovšem uvedete nějaký element navíc, i ten, jež není v DTD, nic se neděje.

Link to comment
Share on other sites

Zdravím Vás nevěděl by někdo proč tento script nefunguje na stránce ve zdrojovém kódu se objeví jen
<?xml "1.0"="utf-8"?>


a dál nic nevíte kde by mohla být chyba

<?php

$shopUrl = 'www...........cz';
$langCz = 3;
$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'");

$res = MySQL_Query("
   SELECT
       c.id_category,
       c.id_parent,
       c.level_depth,
       l.name
   FROM category c
   JOIN category_lang l ON l.id_category = c.id_category AND l.id_lang = {$langCz}
   WHERE active = 1 AND level_depth > 0
   ORDER BY level_depth, id_category
");

$categories = array();
while ($row = MySQL_Fetch_Assoc($res))
{
   if ($row['level_depth'] == 1)
   {
   $categories[$row['id_category']] = $row['name'];
   }
   else
   {
   $categories[$row['id_category']] = $categories[$row['id_parent']] . " > " . $row['name'];
   }
}

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "\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,
       cp.id_category,
       m.name AS manufacturer
       FROM product p
       JOIN product_lang pl USING(id_product)
       JOIN image i USING(id_product)
   JOIN category_product cp USING(id_product)
   JOIN category c USING(id_category)
   JOIN manufacturer m USING(id_manufacturer)
       WHERE p.active = 1
       AND i.cover = 1
       AND cp.id_category > 1
       AND c.level_depth > 1
       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" . $row['id_product'] . "\n";
   echo "\t" . $categories[$row['id_category']] . "\n";
   echo "\t" . $row['manufacturer'] . "\n";
   echo "\t" . $row['name'] . "\n";
   echo "\t" . mb_substr($desc, 0, 512, 'utf-8') . "\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\thttp://" . $shopUrl . "/img/p/" .$row['id_product'] .
           "-" . $row['id_image'] . "-large.jpg\n";
   echo "\thttp://" . $shopUrl . "/" . $row['id_product'] .
           "-" . $row['link_rewrite'] . ".html\n";
   echo "\n";
}

echo "\n";

?>

Link to comment
Share on other sites

Možná se to bude někomu hodit pro generováníl xml jsou tam pole která lze využít "jinak" pro některé specifické xml šablony na některých servrech.Fantazii se meze nekladou

<?php
$shopUrl = 'http://www...........cz';  
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/init.php'); 
error_reporting(0);
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false);
$products=Product::getProductsProperties(3, $p);

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>

Název vašeho obchodu
www........cz/';

foreach ($products as $row) {

$kategorie=array();
$category = new Category(intval($row['id_category_default']), intval(3));
while ($category->id <> 1) {
   $kategorie[]=$category->hideCategoryPosition($category->name);
   $category = new Category(intval($category->id_parent), intval(3));
}

$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['supplier_name']).'
'.str_replace("&", "&", $row['manufacturer_name']).'
'.str_replace("&", "and", strip_tags($row['name'])).'
'.str_replace("&", "and", strip_tags($row['description_short'])).'
'.str_replace("&", "and", strip_tags($row['description'])).'
'.implode('>',array_reverse($kategorie)).'
'.$row['link'].'
http://www.......com/img/p/'.$row['id_product'].'-'.$img['id_image'].'-home.jpg
'.$row['tax_rate'].'
'.($row['price']*1).'
'.($row['reduction_price']*1).'
'.($row['wholesale_price']*1).'
'.($row['quantity']*1).'
'.$row['reduction_percent'].'
'.$row['reduction_from'].'
'.$row['reduction_to'].'
'.$row['on_sale'].'
'.$row['available_now'].'
'.$row['available_later'].'
'.$row['supplier_reference'].'
'.$row['reference'].'
'. round($row['ean13']) .'
';
}
echo '';
?> 

Link to comment
Share on other sites

diky moc za tudle sablonu, konecne co mi funguje po PS 1.2.2 jenom zkusil jste to nekdo uz po zbozi.cz? zkusil sem si ji upravit ale nejak mi neslape jak by mela, sablona sebehne, zbozi se nacte, ale dle vypisu feedu v admin zbozi.cz to hlasi chybu...

Link to comment
Share on other sites

  • 3 weeks later...

Procházel jsem jednotlivé scripty na feed,po zadání cesty jejich umístění vypíšou,zdá se,vše v pohodě,jen místo nějakých klasických českých písmen jsou entity;(í,é,š,č) v popiscích. tabs/Adminproduct.php jsem vložil encoding raw.scripty jsou v utf-8.zkoušeno i ve win 1250.Výsledek stejný.Nevíte někdo,v čem je zakopanej pes?Dík za každou radu. Verze 1.1.0.5
ještě bych doplnil,že popisky FO,BO,i ve výpisu zdrojového kodu jsou bez entit,jen v feedu entity..
VYŘEŠENO: encoding "raw" jsem,blbec,vložil až po zadání popisků.po opětovném uložení stránky produktu je to OK

Link to comment
Share on other sites

  • 2 weeks later...

Nejak se toho na mne vyrojilo moc a ja diky supportu svemu skriptu nestiham svou praci.

Nabizim tedy od ted support pouze placeny, instalace skriptu pro ty mene zdatne je take mozna. Upravy dle Vasich pozadavku nejsou problem. Pokud jste ochotni za muj cas zaplatit, nevahejte mne kontaktovat, pokud ne, nekontaktujte me prosim primo a vyuzijte tuto diskuzi, dekuji.

Link to comment
Share on other sites

XML exporty zabudovane primo v adminu
-------------------------------------------
Vetsina zverejnenych skriptu pro xml exporty jsou spatne pouzitelne ci navic chybne.
My jsme vytvorili prehlednou spravu 16 XML exportu zbozi v administraci + export pro prodejce (velkoobchodni odberatele) i s parametry zbozi.
Vyexportuji se pouze produkty, ktere jsou v danou chvili v obchode nastaveny jako aktivni.
Jednim kliknutim vygenerujete vsechny XML exporty.
K dispozici na http://www.broucek-a-beruska.cz/moduly-prestashop/

Link to comment
Share on other sites

Ahoj.

Dovolim si poprosit nekoho zdatnejsiho: xml feed pro Heureku (dle postu #54) mi hazi chybu: Chyba parsování XML: Dokument není dobře zformátován. Adresa: ... Číslo řádku 160, sloupec 24: Spa & Wellness.

Kdyz "Spa & Wellness" je skutecne muj nazev kategorie - coz je asi ten problem. Prosim, poradi nekdo co s tim? Diky.

Link to comment
Share on other sites

Uz jsem o zmene na "and" uvazoval - asi by se technicky nic nestalo, friendly url se stejne i ted generuje jako "...domena.cz/spa-wellness/46-osvezujici-koupelova-sul...". Ale je to prece jenom takovej terminus technikus (a trochu klicove slovo), pouziva to dodavatel atd. Ale nerad bych, abych narazil na tenhle problem ampersandu jeste nekde jinde v budoucnosti... snad to nikde jinde nehrozi... (?), potkal jsem to jen ted u generovani xml feedu.

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
Ahoj, při generaci xml pro zbozi.cz se špatně generuje URL výrobku, tenhle script používám

<?php
$shopUrl = 'http://abito.cz';      // adresa shopu včetně http://
include(dirname(__FILE__).'/../config/config.inc.php'); // cesta ke config souboru
error_reporting(0);
$p=Product::getProducts(3, 0, 0, 'id_product', 'desc', false); // ceština je v databázi zapsaná pod číslem 3
$products=Product::getProductsProperties(3, $p); // ceština je v databázi zapsaná pod číslem 3

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
';
foreach ($products as $row) {
$img=Product::getCover($row['id_product']);
echo '

'.str_replace("&", "&", $row['name']).'
'.str_replace("&", "&",strip_tags($row['description_short'])).'
'.$shopUrl.''.$row['link'].'
'.$shopUrl.'/img/p/'.$row['id_product'].'-'.$img['id_image'].'.jpg
'.($row['price']*1).'
0
';
}
echo '';
?>



A v xml se URL u všech výrobků zobrazuje takhle.

http://abito.cz_PS_BASE_URL_/22-luxusni-dvoubarevne-saty.html



Nevíte kde se tam bere to _PS_BASE_URL_ ?



Kdyby ti to ještě nešlo, tak mi napiš na mail, nebo PM, mě to také dělalo a zatím to funguje (presta verze 1.2.5.0) http://www.wifi-lan.cz/katalogy/zbozi.php
Link to comment
Share on other sites

Dobrý den, dneska jsem zjistil, že mám špatné ceny na zbozi.cz

viz. např. http://tvojenaradi.cz/benzinove-rozbrusovacky-a-benzinove-dmychadlo-vysavac/245-makita-dpc7331-benzinova-rozbruskovacka.html cena 24990 kč.

a na zboží.cz je cena 24456 kč.

To samé je i u ostatního zboží.

používám :

<?php

$shopUrl = 'www.tvojenaradi.cz';
$noShowCategory = "7,8,9,69,70,71,72,73,74,75,76,77,78,79";
$prefix = “ps_”;
$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'");

echo "<?xml \"1.0\"=\"utf-8\"?>\n";
echo "\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 ps_product p
       JOIN ps_product_lang pl USING(id_product)
       JOIN ps_image i USING(id_product)
       WHERE i.cover = 1 AND NOT (SELECT COUNT(*)
               FROM ps_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.19) . "\n";
   echo "\t19\n";
   echo "\t" . round($row['price']*1.19-$reduction) . "\n";
   echo "\n";
}

echo "\n";

?> 



stačí přepsat jen to DPH? Radši se předem ptám než to zkoním. Před změnou dph to fungovalo dobře, aspoň jsem nezaregistroval žádné chyby.

Děkuji.

Link to comment
Share on other sites

cena bez dph je 20825 kč v eshopu

Nákupní cena: 0 Kč Cena za kterou nakupujete zboží
Maloobchodní cena: 20825 Kč * Cena za kterou chcete prodávat tento produkt
Daň 20%
Maloobchodní cena s daní: 24990 Kč
Ekologická daň: Kč (je již započtena v ceně)
Snížit množství Kč NEBO %
platné od do

Pro neomezenou platnost ponechte obě data stejná.
Zobrazit u zboží titulek "Výprodej!"
Koncová maloobchodní cena: 24990.00 Kč

Link to comment
Share on other sites

Hmmm, tak jsem dal porovnat tvůj a můj kod a bylo tam spousty nesrovnalostí, tenhle kod je s prefixem "ps_" tak si ho kdyžtak vymaž, pokud ho nepoužíváš a zkus generovat xml...

<?php

$shopUrl = 'tvujshop.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 "\t20\n";
   echo "\t" . round($row['price']*1.20-$reduction) . "\n";
   echo "\n";
}

echo "\n";

?>

Link to comment
Share on other sites

Tak jsem na to koukal, zase ta cena nesedí,

v eshopu např. poslední vložené zboží

Makita DCS7901-60 Motorová pila za 19990 Kč.

a zbozi.php pro tuto motorovou pilu generuje toto :

Makita DCS7901-60 Motorová pila

−

http://www.tvojenaradi.cz/269-makita-dcs7901-60-motorova-pila.html

new
0
http://www.tvojenaradi.cz/img/p/269-317-large.jpg
16387
20
19664

−

Makita DCS7901-60 Motorová pila
−

- Profesionální řetězová pila s motorem o výkonu 6,3 koňských sil
- Snadná údržba a čištění díky hladkému povrchu výlisků
- integrovaná brzda řetězu s řetězové kolo instalováno na vnější straně - digitální systém zapalování
- lepší tlumení vibrací ocelovými pružinami
- Snadný přístup k motoru
- Automatické mazání
- Karburátor se vstřikováním paliva

−

http://www.tvojenaradi.cz/269-makita-dcs7901-60-motorova-pila.html

new
0
http://www.tvojenaradi.cz/img/p/269-317-large.jpg
16387
20
19664



takže cena 19664 Kč.


Prosím znova o radu, proč a co s tím. Děkuji

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...