问题描述
在Magento的1.5,访问从C#的catalogProductInfo API调用像这样的作品与非数字的SKU:
In Magento 1.5, accessing the catalogProductInfo API call from C# like this works with non-numeric SKUs:
catalogProductRequestAttributes fetchattrib = new catalogProductRequestAttributes();
fetchattrib.attributes = new string[] { "name", "description", "and_so_on"};
fetchattrib.additional_attributes = new string[] { "custom_attribs_go_here"};
string storeView = null;
string productIdentifierType = null;
catalogProductReturnEntity ret = m_magentoClient.catalogProductInfo(
sessionId, sku, storeView, fetchattrib, productIdentifierType);
但随着数字的SKU我得到'商品不存在的错误。结果
想必这是因为Magento的不能告诉你是否传递一个的product_id或SKU。设置productIdentifierType为SKU应该解决这个问题,在理论上,根据所有文件我能找到的:
But with numeric SKUs I get 'Product not exists' errors.
Presumably this is because Magento cannot tell whether you are passing it a product_id or an SKU. Setting the productIdentifierType to 'sku' should fix that, in theory, according to all the documentation I can find:
...
string productIdentifierType = "sku";
...
但它不解决它。结果
在事实上,它似乎使情况变得更糟,Magento的然后停止寻找非数字的SKU。结果
所以想必SKU
是不正确的值通过。
任何人有什么想法?
推荐答案
简短的回答是这有什么地方防止 product.update
的最后一个参数被设置正确的错误(或者瓦瑞恩还没有付诸实施),这也带来一个问题的方法 product.info
。
Short answer is that there's a bug somewhere preventing the last param of product.update
from being set properly (or maybe Varien haven't yet implemented it), which also presents a problem for the method product.info
.
一个快速的解决方法(如果你不介意失去了选择按ID更新)只是到商品API中设置的 $ identifierType
更新()
法):
A quick workaround (if you don't mind losing the option to update by ID) is just to set the $identifierType
in the Product API update()
method ):
在应用程序/代码/核心/法师/目录/型号/产品/ Api.php
L.198
public function update($productId, $productData, $store = null, $identifierType = 'sku')
和最后加载应用左右/代码/核心/法师/目录的l.427方法getProduct()的if($ idBySku)条件内的产品/Helper/Product.php
And finally load the product within the if ($idBySku) condition of the method getProduct() around l.427 of app/code/core/Mage/Catalog/Helper/Product.php
$productId = $idBySku;
$product->load($productId);
这是一个有点忽悠的。我要看看一个更好的解决办法作为一个覆盖;否则,也许别人可以发表一个更好的解决方案。
It's a bit of a fudge. I'll have a look for a better workaround as an override; otherwise, maybe someone else can post a better solution.
这篇关于Magento的1.5,数字的SKU和productIdentifierType的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!