Magento 1.6.0 API 产品更新在使用数字 SKU 时不起作用

标签 magento

我的产品都使用数字SKU,但在使用API​​ 进行产品更新时似乎会出现问题。

根据 API doc ,您可以使用产品 ID 或 SKU。

参数:

  • 混合产品 - 产品 ID 或 Sku
  • array productData - 属性值数组
  • 混合 storeView - 商店 View ID 或代码(可选)

但完全数字化的 SKU 似乎不起作用。 我确信某处有一些代码可以检查该值是否为数字,并假设我必须提供产品 ID。

我还在某处读到您可以传入第 4 个参数来指定您使用的是 sku,但这也不起作用。

$proxy->call($sessionId, 'product.update', array('123456', array('name'=>'Updated name1'), null, 'sku') );

有人知道如何让它工作吗?

最佳答案

简短的回答是某处有一个错误阻止了 product.update 的最后一个参数被正确设置(或者 Varien 可能还没有实现它),这也给方法带来了问题产品信息

一个快速的解决方法(如果您不介意丢失通过 ID 更新的选项)就是在 Product API update() 方法中设置 $identifierType ):

app/code/core/Mage/Catalog/Model/Product/Api.php l.198

public function update($productId, $productData, $store = null, $identifierType = 'sku')

最后在 app/code/core/Mage/Catalog/Helper/Product.php 的 l.427 方法 getProduct() 的 if ($idBySku) 条件下加载产品

$productId = $idBySku;
$product->load($productId);

这有点胡扯。我会寻找一个更好的解决方法作为覆盖;否则,也许其他人可以发布更好的解决方案。

关于Magento 1.6.0 API 产品更新在使用数字 SKU 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7835571/

相关文章:

Magento - 如何通过 order/customer_id 获取电子邮件地址

php - Magento : getAttributeText doesn't work

Magento:订单状态的观察者已完成

magento - 打开系统配置时首先显示默认的自定义模块部分

php - magento 设置属性的值

java - 使用Java访问Magento API : Procedure ххх not present

Magento 增加了前端的图像尺寸

php - Magento 2 注册回调 URL/网络书,例如添加到购物车,无需在 Magento 中更改代码

Magento 密码重置不起作用

php - Magento 在家里显示的产品超过限制