Добавить пользовательский атрибут в канал через php - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть магазин magento, и я использую сервисы www.retailtower.com для создания каналов.Однако есть один пользовательский атрибут, который мне нужен для того, чтобы можно было отфильтровать их сайт.Пользовательский код атрибута называется «is_imported»

Я разговаривал с ребятами из retailtower, но они говорят, что они не видят этот атрибут в моих продуктах.

Я проверил несколько писем за несколько месяцев назади я заметил, что для того, чтобы они могли видеть мои продукты, мне нужно было установить PHP-файл, а затем использовать его для импорта продуктов.

Это код, который я нашел, как я могу изменить его, чтобы добавить пользовательский атрибут?

<?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;




?> 

1 Ответ

0 голосов
/ 02 марта 2012

Попробуйте добавить

$products->addAttributeToSelect('is_imported');

после

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