Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
magento soap api v2 catalogProductInfo不工作_Magento_Soap_Magento 1.7 - Fatal编程技术网

magento soap api v2 catalogProductInfo不工作

magento soap api v2 catalogProductInfo不工作,magento,soap,magento-1.7,Magento,Soap,Magento 1.7,当我调用api函数时,如下所示 我得到以下错误。我确信所有传递的变量都设置正确,因为其他MagentoAPI函数工作正常 产品不存在 错误:发生内部错误 我假设这是调用语法的错误。我找不到使用sku而不是产品id调用catalogProductInfo的合适示例。 文档向我表明我的呼叫是正确的 任何关于我做错了什么的想法都将受到高度赞赏。我想你的电话可能会遇到可选参数的问题catalogProductInfo()可以接受五个参数,其中第一个参数是sessionId;所有其他参数都被传递到方法M

当我调用api函数时,如下所示

我得到以下错误。我确信所有传递的变量都设置正确,因为其他MagentoAPI函数工作正常

产品不存在 错误:发生内部错误

我假设这是调用语法的错误。我找不到使用sku而不是产品id调用catalogProductInfo的合适示例。 文档向我表明我的呼叫是正确的


任何关于我做错了什么的想法都将受到高度赞赏。

我想你的电话可能会遇到可选参数的问题
catalogProductInfo()
可以接受五个参数,其中第一个参数是
sessionId
;所有其他参数都被传递到方法
Mage\u Catalog\u Model\u Product\u Api\u V2::info()
,该方法将这些参数如下所示:

公共函数信息($productId,$store=null,$attributes=null,$identifierType=null)

如您所见,只有
$productId
是必需的,其他参数是可选的。但是,如果要将
$identifierType
参数传递给该方法,则必须同时传递所有其他参数。因此,在本例中,您省略了一个
$store
$attributes
参数,该方法将
sku
作为
$attributes
参数。这就产生了你的错误

因此,要么传递缺少的参数,要么忽略
$identifierType
参数。Magento可以从
$productId
的输入猜出您传递的标识符类型(产品ID或sku)。
info()
方法调用
\u getProduct()
方法,该方法依次调用
Mage::helper('catalog/product')->getProduct($productId,$this->\u getStoreId($store),$identifierType)
。在此方法中,Magento猜测您的
$productId
参数:

if ($identifierType === null) {
        if (is_string($productId) && !preg_match("/^[+-]?[1-9][0-9]*$|^0$/", $productId)) {
            $expectedIdType = 'sku';
        }
    }

尝试提交空格作为SKU的最后一个字符。 e、 g.如果SKU是
“1234”
提交
“1234”


如果您提交的sku仅包含数字,则有时会出现此问题。

您遗漏了4。帕拉姆

功能是smth。像这样:

public catalogProductReturnEntity catalogProductInfo(
string sessionId,
string product,
string storeView,
**catalogProductRequestAttributes attributes,**
string productIdentifierType)

作为“属性”,您通过了“sku”。

谢谢!最后我做了
$result=$client->catalogProductInfo($session,$id.“”)如您所建议。现在,当我使用时,购物车显示为空。我猜我的购物车id需要通过smtg?不知道为什么要通过
$id.“”
?而且:您的API调用是针对目录的,而不是针对购物车的,您不应该将这8个小时的搜索混为一谈,最终找到了这个答案。我想拥抱你