Erişim Ürünler / Kategori / Magento API ile php Bilgisi Özellik

3 Cevap magento

Harici bir şablon içine Magento ürünlerini çekmek gerekiyor. Tüm ürünler verilerini (açıklama, başlık, nitelikleri, kategoriler, resim, vb) almak gerekiyor.

Ve kategori, Özelliğe göre filtre ve aynı zamanda adını aramak gerekiyor.

Bu çağrılar Magento üzerinde yüklemek aynı sunucudan yapılacaktır. Bunu yapmanın en iyi yolu nedir?

Linux ve hem php kullanarak olacak pencereler (2 ayrı siteler).


Magento API ve kullanarak denedi Php erişmek ancak Sabun bu henüz işe almak mümkün olmamıştır. Ben olsun tüm her zaman bu bir hatadır.

Ölümcül hata: yakalanmamış SoapFault istisna: [WSDL] SABUN-HATA: WSDL Ayrıştırma: 'http://mymagento.com/cart/index.php/api/?wsdl' dan yüklenemedi: sonunda Ekstra içerik Lütfen belge ....

3 Cevap

Burada ürün almak için kullanılan temel kod. Biz mesaj panolarında bulunan bazı örnekler ile Laizer cevabı kodu fileli. Bizim için çok iyi çalıştı.

Aşağıda örnekte Kategori ID 11 ile filtreleme Not.

require_once("app/Mage.php");
Mage::app();


$category = new Mage_Catalog_Model_Category();
$category->getAllChildren(11);

$products = Mage::getModel('catalog/product')->getCollection();
        $products->addAttributeToFilter('status', 1);//enabled
        $products->addCategoryFilter($category);
        $products->addAttributeToSelect('*');
        $prodIds=$products->getAllIds();


        $product = Mage::getModel('catalog/product');
        $count=1;
        foreach($prodIds as $productId)
        {


            echo "$count <br>";
            $product->load($productId);

            $product_data = array();
            $product_data['sku']=$product->getSku();
            $product_data['title']=$product->getName();
            $product_data['description']=$product->getDescription();
            $product_data['link']=$product->getProductUrl();
            $product_data['image_link']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage();
            $product_data['price']=$product->getPrice();
            $product_data['brand']=$product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
            $product_data['product_type']='';

            //get the product categories
                    foreach($product->getCategoryIds() as $_categoryId){
            $category = Mage::getModel('catalog/category')->load($_categoryId);
            $product_data['product_type'].=$category->getName().', ';
            }
            $product_data['product_type']=rtrim($product_data['product_type'],', ');





echo "<pre>";
            var_dump($product_data);

            //echo 'Loop end: '.memory_get_usage(false).'<br>';
            //flush();
            $count++;
        }

Gitmek için en kolay yol PHP komut Magento ortamı kadar yük ve yerli Magento çağrıları kullanmaktır.

Aşağıdaki kod ile çevreyi yükleyebilirsiniz:

require_once("path_to_magento/app/Mage.php");
Mage::app();

Bundan sonra, sadece bir Magento. Php yaptığınız ya. Phtml dosyası gibi, yerli tüm yöntemleri kullanabilirsiniz. Örneğin, bir ürün koleksiyonu almak ve sadece aktif ürünler için filtre:

$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('status', 1); 

Magento kod tabanı için referans almaktadır: http://docs.magentocommerce.com/

Örneğin Mage_CatalogInventory_Model_Stock_Item_Api Sınıf kullanabilirsiniz.