Magento - 使用自定义属性检索特定产品的详细信息

时间:2013-09-16 10:59:46

标签: php magento magento-1.7

我是Magento的初学者。我有这样的要求。

当某个用户在单独的网页中输入“商品代码”(这是商店中每件商品的自定义属性)时,应该从我的magento商店中检索该商品的相关信息。基本上,我想要项目所属的商店,(商店 - 自定义产品属性,下拉菜单。)&该项目的图片网址。

* item_code - 自定义属性(varchar)

* shop - 下拉菜单(选项 - abc,def,ghi,jkl)

我用肥皂v1来做这件事。

以下电源线工作正常。

但我不知道这是最好的方法。

&安培;当我获得产品详细信息时,使用“catalog_product.info”它会将商店值作为数字给出(126)但是我想得到它的实际名称。

有没有办法直接检索自定义下拉菜单值? ?

这是我的电话。

<?php


 $client = new SoapClient('http://myhost/index.php/api/soap/?wsdl');
 $session = $client->login('test', 'test1234');

 //get the specific product id using item_code
 $filters = array (
  'item_code' => array('like'=>'Mo-20105%')
 );

 $products = $client->call($session, 'product.list', array($filters) );

 //print_r($products);

 // using product id get all the attribute details of the product
 $result = $client->call($session, 'catalog_product.info', $products[0]['product_id'] );
 //var_dump($result);

 // using product id get the image url
 $img = $client->call($session, 'catalog_product_attribute_media.list', $products[0]   ['product_id'] );
 //var_dump($img);


// match the product 's shop value ( get from the web service ) with option values & get the correct shop name.
if( $result['shop'] == 129 ){ $shop = "abc" ; }
else if ( $result['shop'] == 126 ){ $shop = " def" ; }
else if ( $result['shop'] == 128 ){ $shop = " ghi" ; }
else if ( $result['shop'] == 126 ){ $shop = " jkl " ; }

echo $shop;
echo '</br>';
echo '<img src = '.$img[0]['url'].'  />'; 

谢谢

1 个答案:

答案 0 :(得分:0)

您在api通话结果中获得的商店下拉值,即该特定商品的选择框的选项值。要首先获取特定选项的名称,您需要找出下拉属性的属性ID。因此,您需要使用以下api,它将恢复具有名称和ID的产品的所有属性列表。

http://www.magentocommerce.com/api/soap/catalog/catalogProductAttribute/product_attribute.list.html

然后,您可以使用以下api获取该属性的所有选项,其中包含id和name选项。

http://www.magentocommerce.com/api/soap/catalog/catalogProductAttribute/product_attribute.options.htm