Export produktů do zbozi.cz, jyxo, heureka.cz a dalších

Uživatelský avatar
Příspěvky: 2
Registrován: 12 úno 2011, 16:11
PříspěvekNapsal: 07 úno 2011, 19:35
Zdravím Magenťáci,
jeslti hledáte zdarma skript pro export produktů z Magenta do vyhledávačů zboží jako je zbozi.cz, heureka.cz, jyxo.cz, srovnanicen.cz a dalsi, tak zkuste tento script. Někdo ho prodává za sms na oficiálním fóru Magenta, tak jsem se rozhodl ho pro Vás zdarma zveřejnit.

Kód: Vybrat vše
<?php
require_once 'app/Mage.php';

define('SAVE_FEED_LOCATION','media/zbozicz.xml');
set_time_limit(0);   
 
Mage::app('');


$handle = fopen(SAVE_FEED_LOCATION, 'w');                 
$heading = array('
<SHOP>');
$feed_line=implode("\t", $heading)."\r\n";
fwrite($handle, $feed_line);
      
$products = Mage::getModel('catalog/product')->setStoreId('1')->getCollection();
$products->addAttributeToFilter('status', 1);//enabled
$products->addAttributeToFilter('visibility', 4);//catalog, search
//$products->addAttributeToFilter('sku', array('4007','30572','39844'));   // testing only
$products->addAttributeToSelect('*');
$prodIds=$products->getAllIds();
   
foreach($prodIds as $productId) {
$product = Mage::getModel('catalog/product')->setStoreId('1');
$product->load($productId);
         
         
$_categories = $product->getCategoryIds();

if($product->isGrouped() && count($_categories) != 0)
{
// CURRENTLY Not supported
}        

// CONFIGURABLE PRODUCTS

elseif($product->isConfigurable())
{                    }

          // SIMPLE PRODUCTS
          elseif(count($_categories) != 0)
          {
          $product_d1['start']= '  <SHOPITEM>';
          $feed_line = implode("\t", $product_d1)."\r\n";
         
          $product_d2['title']= '    <PRODUCT>'.$product->getName().'</PRODUCT>';
          $feed_line .= implode("\t", $product_d2)."\r\n";
         
          $product_d3['link']= '    <URL>'.$product_data['url']="http://www.vasedomena.cz/index.php/".$product->getUrlPath().'</URL>';
          $feed_line .= implode("\t", $product_d3)."\r\n";
                                                                           
          $product_d11['description']= '    <DESCRIPTION>'.$product->getShortDescription().'</DESCRIPTION>';
          $feed_line .= implode("\t", $product_d11)."\r\n";
                   
        $product_d13['new']= '    <ITEM_TYPE>new</ITEM_TYPE>';
          $feed_line .= implode("\t", $product_d13)."\r\n";
                                               
/*        $product_d12['vyrobce']= '    <MANUFACTURER>Blundstone</MANUFACTURER>';
          $feed_line .= implode("\t", $product_d12)."\r\n";
*/
         
          $product_d4['cenasdani']= '    <PRICE_VAT>'.round($product->getFinalPrice(),3).'</PRICE_VAT>';
          $feed_line .= implode("\t", $product_d4)."\r\n";
         
          $product_d5['image_link']='    <IMAGEURL>'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage().'</IMAGEURL>';
          $feed_line .= implode("\t", $product_d5)."\r\n";
         
         
           $category = Mage::getModel('catalog/category')->setStoreId('2')->load($_categories[0]);
         $_category = Mage::getModel('catalog/category')->setStoreId('2')->load($category->parent_id);
         $_category2 = Mage::getModel('catalog/category')->setStoreId('2')->load($_category->parent_id);
         $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).$category->getUrlPath();
         
          $maincategory = $category->getName();
         $child2 = $_category->getName()." | ";
         
         if($_category->parent_id != 2)
         {$child1 = $_category2->getName()." | ";}
         else
         {$child1 = "";}
         
/*
         $product_d6['product_type']= '    <CATEGORYTEXT>'.$maincategory.'</CATEGORYTEXT>';   
         $feed_line .= implode("\t", $product_d6)."\r\n";
         
          $product_d7['category_full']='    <CATEGORYTEXT>'.$child1.$child2.$maincategory.'</CATEGORYTEXT>';
         $feed_line .= implode("\t", $product_d7)."\r\n";

         
         
          $product_8['category_url']='    <category_link>'.$url.'</category_link>';
          $feed_line .= implode("\t", $product_8)."\r\n";
         
*/
         
         
         
          fwrite($handle, $feed_line);
          fflush($handle);
         
         
          $heading = array('  </SHOPITEM>');
         $feed_line=implode("\t", $heading)."\r\n\n";
         fwrite($handle, $feed_line);
          }
         

      }
      
      $footer = array('<SHOP>');
      $feed_line=implode("\t", $footer)."\r\n";
      fwrite($handle, $feed_line);
      fclose($handle);
      
   


Enjoy! :) :) :)
magento-export.zip
Celý kód pro stažení
(1.34 KiB) 277 krát
Uživatelský avatar
Příspěvky: 3
Registrován: 19 lis 2010, 19:30
PříspěvekNapsal: 12 úno 2011, 14:28
Super, sice prasácky napsané, ale funguje.
Děkuju. ;)

Příspěvky: 3
Registrován: 22 dub 2011, 17:38
PříspěvekNapsal: 22 dub 2011, 17:46
můžete mrknout na novou verzi exportního modulu:
http://www.youtube.com/watch?v=znsSDBSslT8
Uživatelský avatar
Příspěvky: 2
Registrován: 18 kvě 2011, 08:38
PříspěvekNapsal: 18 kvě 2011, 08:51
TO arecuk :

Ty jsi někdo od Nostress? Pokud ano, tak v pohodě, nemusíš se skrývat, jen se ptám ;)
Já mám Nostress docela rád, nikdo jiný z ČR nedělá tolik praktických modulů pro Magento. 8-)
Alkohol ti nedá odpoveď, ale aspoň zapomeneš na otázku.

Příspěvky: 1
Registrován: 31 črc 2011, 16:26
PříspěvekNapsal: 31 črc 2011, 16:29
Magento 1.5.1, nahrál jsem do kořenového adresáře, v prohlížeči přes url adresu spustil, skript běží 15s, vygeneruje xml a pak se skript zarazí a zobrazí chybovou hlášku Warning: set_time_limit() has been disabled for security reasons in /data/web/virtuals/6790/virtual/www/export-feed.php on line 5

Kde může být problém??
Uživatelský avatar
Příspěvky: 3
Registrován: 03 pro 2010, 10:04
PříspěvekNapsal: 15 zář 2011, 08:19
To znamená, že tvůj webhoster zakázal funkci set_time_limit() a každý php script může běžet jen 15 vteřin. Za tu dobu se ale nestihnou produkty vyexportovat. Musíš napsat svému webhosterovi, ať ti funkci povolí a pokud s ebude cukat, tak odejít.
Nevidím důvod, proč zakazovat set_time_limit(), není nebezpečná. :?:
RGB is the reason!
Uživatelský avatar
Příspěvky: 2
Registrován: 12 úno 2011, 16:11
PříspěvekNapsal: 28 zář 2011, 10:47
Zakazana bude nejspis pro to, aby lidi nespousteli rozsahle skripty zatezujici server.
Tento export bude casove urcite velice narocny. Pokud mate shop s vice jak 5000 produkty, tak se exportu asi ani nedockate... :D

To arecuk: Ten vas modul pro export vubec nevypada spatne, ale ta cena neni nizka.

Zpět na Magento

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků

cron