Php 使用soap api列出特定类别的产品并具有类似名称
我有一个类似名称的产品列表,比如耐克的10双鞋,锐步的10双鞋等等。因此,所有产品都将以nike、reebok和So(它们都属于一个名为shoes的类别)的名称开头。我需要使用soap API从鞋类中单独列出nike鞋Php 使用soap api列出特定类别的产品并具有类似名称,php,magento,soap,Php,Magento,Soap,我有一个类似名称的产品列表,比如耐克的10双鞋,锐步的10双鞋等等。因此,所有产品都将以nike、reebok和So(它们都属于一个名为shoes的类别)的名称开头。我需要使用soap API从鞋类中单独列出nike鞋 <?php $path="http://localhost/magento/"; try{ $proxy=new SoapClient($path.'index.php/api/soap/?wsdl=1'); $sessionId=$proxy->login('api
<?php
$path="http://localhost/magento/";
try{
$proxy=new SoapClient($path.'index.php/api/soap/?wsdl=1');
$sessionId=$proxy->login('apiuser','apikey');
echo $sessionId;
$result=$proxy->call($sessionId,'catalog_category.assignedProducts','4');
print_r($result);
}
catch (SoapFault $e)
{
$msg = "Could not connect to the site".$e->getMessage();
echo $msg."<br/>";
}
?>
我尝试了上面的方法,但它列出了该类别的所有产品,是否可以发送(或添加)其他参数,以便它单独获取nike shoes?请帮助我解决这个问题,提前谢谢您的问题的答案是不要依赖soap来提供您想要的对象,而是使用它来提供获取您想要的对象的方法。下面是如何思考的:
echo "<PRE>";
umask(0);
// MAKE SURE TO PUT THIS FILE IN THE RIGHT PLACE (MAGENTO ROOT)
require_once 'app/Mage.php';
Mage::app('admin');
$attributeSetId = '26'; // Your attribute set id (shoes)
$shoeTypeId = '1'; // The ID of the dropdown item to filter on (taken from the ids of the items you added to the shoe_type attribute
// Create a collection based on a catalog category. Load category ID 196
$products = Mage::getModel('catalog/category')->load(196)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4)
->addAttributeToFilter('attribute_set_id', $attributeSetId)
->addAttributeToFilter('type_id', 'simple')
->addAttributeToFilter('shoe_type', $shoeTypeId);
foreach ($products as $product)
{
// Write out the useful info!
var_dump($product->debug());
}
echo”“;
乌马斯克(0);
//确保将此文件放在正确的位置(MAGENTO ROOT)
需要一次“app/Mage.php”;
Mage::app('admin');
$attributeSetId='26';//您的属性集id(鞋)
$shoeTypeId='1';//要筛选的下拉项的ID(取自添加到shoe_type属性的项的ID)
//基于目录类别创建集合。加载类别ID 196
$products=Mage::getModel('catalog/category')->load(196)
->getProductCollection()
->addAttributeToSelect(“*”)
->addAttributeToFilter('状态',1)
->addAttributeToFilter('visibility',4)
->addAttributeToFilter('attribute\u set\u id',$attributeSetId)
->addAttributeToFilter('type\u id','simple')
->addAttributeToFilter('shoe_type',$shoeTypeId);
foreach($products as$product)
{
//写出有用的信息!
变量转储($product->debug());
}
不仅使用此方法的速度快了近100倍,而且您可以更清楚地使用magento的对象模型。Soap对于从服务器到服务器的对话更有用,或者如果您需要windows机器与magento linux设备对话(就像我使用同步服务一样).事实上,这就是我现在正在使用的,我听说如果我们使用API,过程会更快,这就是我问这个问题的原因。是否可以使用API来实现这一点。?