2012-02-29 2 views
0

J'ai un magasin magento et j'utilise les services de www.retailtower.com pour générer les flux. Cependant, il y a un attribut personnalisé dont j'ai besoin pour pouvoir filtrer à partir de leur site web. Le code d'attribut personnalisé est appelé "is_imported"Ajouter un attribut personnalisé à un flux via php

J'ai parlé avec les gars de retailtower mais ils disent qu'ils ne peuvent pas voir cet attribut dans mes produits.

J'ai vérifié quelques emails il y a quelques mois et j'ai remarqué que pour pouvoir voir mes produits, j'ai dû installer un fichier PHP, puis l'utiliser pour importer les produits.

Ceci est le code que j'ai trouvé, comment puis-je le modifier pour ajouter un attribut personnalisé?

<?php 
set_time_limit(300); 
ini_set('memory_limit', '-1'); 
include_once 'app/Mage.php'; 
umask(0); 
Mage::app(); 


     $products = Mage::getModel('catalog/product')->getCollection(); 
    $products->addAttributeToSelect('*'); 
    $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)); 

     $visibility = array(
     Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH, 
     Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG 
     ); 
     $products->addAttributeToFilter('visibility', $visibility); 

    $products->load(); 

    $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 

         //echo "Total Count =: ".count($products); 
         //echo "<pre>"; 
         //print_r($products); 

     $collection = Mage::getResourceModel('catalog/product_collection'); 



$output = '<?xml version="1.0" encoding="utf-8"?> 
<products>'; 
if (count($collection)){ 
//echo "<pre>"; 
foreach ($products as $product){ 
    //var_dump($product->getdata());die; 
$output .= '<product>'; 
    foreach ($product->getdata() as $key=>$value) { 
     if ($key!=='stock_item') { 
     //my code start 

     $url = $product->getProductUrl(); 
     if (($key == 'url_path') || ($key =='url_key')){ 
     $value = $url; 
     $value = str_replace('/productapi.php','',$value); 
     $value = trim ($value); 
     } 

     if ($key == 'image'){ 
     $value = $baseUrl."media/catalog/product".$value; 
     //$value = str_replace('/productapi.php','',$value); 
     //$value = trim ($value); 
     } 

     if ($key == 'manufacturer'){ 
     //$value = $baseUrl."media/catalog/product".$value; 
     $value = Mage::getModel('catalog/product')->load(PRODUCT_ID); 
     $value = $value->getAttributeText('manufacturer'); 
     //$value = "kofi"; 
     //$value = str_replace('/productapi.php','',$value); 
     //$value = trim ($value); 
     } 

     //$search = array('&','<','>','"','\'','-','—',"'",'(',')','™','®','©'); 
     //$replace = array('&#38;','&lt;','&gt;','&quot;','&apos;','&#45;','&#x2015;','&#39;','&#40;','&#41;','&trade','&#174;','&copy'); 
     //$value = str_replace($search,$replace,$value); 
     /* $value = str_replace('&','',$value); 
     $value = str_replace('</br>','',$value); 
     $value = str_replace('<br/>','',$value); 
     $value = str_replace('>','',$value); 
     $value = str_replace('<','',$value);*/ 
     $value = "<![CDATA[$value]]>"; 





     $key = str_replace('"','',$key); 
     //my code end 

      $output .= '<'.$key.'>'.$value.'</'.$key.'>'; 

     } 


    } 
$categories = $product->getCategoryIds(); 
$output .= '<categories>'; 
    foreach($categories as $k => $_category_id): 
      $_category = Mage::getModel('catalog/category')->load($_category_id); 
      $cat_name = $_category->getName(); 
      $cat_url = $_category->getUrl(); 

      $cat_name = "<![CDATA[$cat_name]]>"; 
      $cat_url = "<![CDATA[$cat_url]]>"; 

      $output .= '<category>'; 
      $output .= '<name>'.$cat_name.'</name>'; 
      $output .= '<url>'.$cat_url.'</url>'; 
      $output .= '</category>';   
    endforeach; 
$output .= '</categories>'; 
$output .= '</product>'; 
$url = $product->getProductUrl(); 
//$url = str_replace('/productapi.php','',$url); 
// $url = trim ($url); 


}//endforeach; 
    $output .= ' 
    </products>'; 
}//endif; 
header ("Content-Type: text/xml; charset=ISO-8859-1"); 
print $output; 




?> 

Répondre

0

Essayez d'ajouter

$products->addAttributeToSelect('is_imported'); 

après

$products = Mage::getModel('catalog/product')->getCollection(); 
Questions connexes