Try the Demo

Magento Forum

   
XML για Scroutz.gr
 
ktsixit
Member
 
Total Posts:  55
Joined:  2008-08-20
 

Γεια σας,
θέλω να προβάλω τα προϊόντα μου στο scroutz.gr. Για να γίνει αυτό απαιτείται η δημιουργία ενός xml αρχείου με τα προιόντα του eshop το οποίο να μπορεί επιπλέον να ενημερώνεται καθημερινά. Τι μπορώ να κάνω γι’αυτό. Υπάρχει κάποιος ο οποιός επιχείρησε να κάνει κάτι πρόμοιο ωστε να με βοηθήσει;

 
Magento Community Magento Community
Magento Community
Magento Community
 
romfeo
Jr. Member
 
Total Posts:  14
Joined:  2007-11-14
 

There is an extension for that:

Go to http://magento-to-skroutz.com/

 
Magento Community Magento Community
Magento Community
Magento Community
 
ktsixit
Member
 
Total Posts:  55
Joined:  2008-08-20
 

Τελικά κατάφερα να φτιάξω ένα αρχείο .php το οποίο τραβάει δεδομένα απο το magento και τα μεταφέρει σε ένα αρχείο xml συμβατό με τις απαιτήσεις του skroutz. Δεν είναι κάτι το ιδιαίτερο αλλά κάνει τη δουλειά του.

Για οποιοδήποτε λοιπόν χρειαστεί κάτι παρόμοιο, μπορεί να δημιουργήσει ένα .php αρχείο όπως το παρακάτω και να ορίσει ένα cron job ωστε να εκτελείται ανα τακτά χρονικά διαστήματα (τουλάχιστον μια φορά την ημέρα). Ο κώδικας δημιουργεί ένα xml αρχείο το οποίο τοποθετεί σε ένα φάκελο με όνομα “export”, οπότε θα πρέπει να δημιουργήσετε το φάκελο αυτό.

<?php

define('SAVE_FEED_LOCATION','export/products.xml');
    
set_time_limit(0);    

    require_once 
'app/Mage.php';
        
Mage::app('default');
        
    
try{
        $handle 
fopen(SAVE_FEED_LOCATION'w');

        
$heading '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
        
$heading .= '<websitename encoding="utf8" url="http://websitename.gr" name="Website Name">'."\r\n";
        
$heading .= "\t"."<created_at>".date('Y-m-d G:i')."</created_at>"."\r\n";
        
$heading .= "\t".'<products>'."\r\n";
        
        
$feed_line $heading;
        
fwrite($handle$feed_line);
        
        
//---------------------- GET THE PRODUCTS    
        
$products Mage::getModel('catalog/product')->getCollection();
        
$products->addAttributeToFilter('status'1);//enabled
        
$products->addAttributeToFilter('visibility'4);//catalog, search
         
        
$products->addAttributeToSelect('*');

        
$prodIds=$products->getAllIds();
        
        
$product Mage::getModel('catalog/product');
        
        foreach(
$prodIds as $productId{    
            $product
->load($productId);
                    
                
$product_data = array();    
                
                
$product_data['start'"\t\t".'<product>'."\r\n";
                
//id
                
$product_data['id'"\t".'<id>'.$product->getSku().'</id>'."\r\n";    
                
//name
                
$product_data['name'"\t".'<name>'.$product->getName().'</name>'."\r\n";
                
//url
                
$url_temp "http://www.websitename.gr/".$product->getUrlPath();
                
$url_fixed str_replace("THIS_FILE_NAME.php/"""$url_temp);
                
$product_data['url'"\t".'<url>'.$url_fixed.'</url>'."\r\n";
                
                
//image
                
$product_data['image'"\t".'<image>'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage().'</image>'."\r\n";
                
                
//category
                
foreach($product->getCategoryIds() as $_categoryId){
                    $category 
Mage::getModel('catalog/category')->load($_categoryId);
                    
$product_data['category'].=$category->getName().', ';
                
}
                $product_data[
'category'"\t".'<category>'.rtrim($product_data['category'],'- ').'</category>'."\r\n";
                
                
//price                
                
$normal_price number_format($product->getPrice(), 2'.''');
                
$special_price number_format($product->getSpecialPrice(), 2'.''');
                
$price "";
                
$todayDate date('m/d/y');
                
$special_to_date $product->getSpecialToDate();
                
                
                if(
$special_price != "0.00"){
                    
if($todayDate $special_to_date)
                        $price 
$normal_price;
                    
}
                    else{ 
                        $price 
$special_price;
                    
}
                } else{
                    $price 
$normal_price;
                
}

                
                $product_data[
'price'"\t".'<price>'.$price.'</price>'."\r\n";
                
                
                
//manufacturer
                
$product_data['manufacturer'"\t".'<manufacturer>'.$product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product).'</manufacturer>'."\r\n";
                
//description
                
$product_data['description'"\t".'<description><![CDATA['.$product->getDescription().']]></description>'."\r\n";
                
                
$product_data['end''</product>';
                
                foreach(
$product_data as $k=>$val){
                    $product_data[$k] 
$val;
                
}
            

            $feed_line 
implode("\t\t"$product_data)."\r\n";
            
fwrite($handle$feed_line);
            
fflush($handle);
        
}        

        $footer 
"\t".'</products>'."\r\n";
        
$footer .= '</websitename>';
        
$feed_line $footer;
        
fwrite($handle$feed_line);    
        
fclose($handle);
        
    
}
    
catch(Exception $e){
        
die($e->getMessage());
    
}

?>

 
Magento Community Magento Community
Magento Community
Magento Community
 
panagiotisGr
Jr. Member
 
Total Posts:  16
Joined:  2009-09-29
 

Απίστευτη η βοήθεια σου φίλε μου.

ευχαριστώ πάρα πολυ και το χρειαζόμουν.

Μόνο μια ερώτηση, τι εννοείς να ορίσουμε ενα cron job. Μήπως μπορείς να μου πεις την διαδικασία αν είναι εύκολο φυσικα.

ευχαριστώ και πάλι.

 
Magento Community Magento Community
Magento Community
Magento Community
 
oschellas
Jr. Member
 
Avatar
Total Posts:  10
Joined:  2008-12-08
Greece
 

WebIt: Magento XML product feed

Αυτό το extension μπορεί να λειτουργήσει on-the-fly και μπορεί να λειτουργήσει με cached XML feeds (με cronjobs).

 Signature 

WEB-IT WebIt.bz - Internet Business Solutions

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top