无法通过Magento API更新库存可用性/库存值
本文关键字:可用性 库存值 更新 API Magento | 更新日期: 2023-09-27 18:24:57
背景
我有一个现场测试Magento商店。我从Magento存储的WSDL生成了一个MagentoApi C#类。
问题
我可以通过我的API课程更新产品数量而不会出现任何问题。我现在正在尝试从API设置Stock Availability
字段,但它不会更改其值。
代码
[Test]
public void UpdateIsInStockField()
{
MagentoStoreConfig storeConfig = GetTestMagentoStore();
var magentoApiRepo = new MagentoApiRepository(storeConfig);
catalogInventoryStockItemEntity magentoProduct = magentoApiRepo.GetProductFromSku(new[] { "SKU-123456" });
var productUpdated = new catalogInventoryStockItemUpdateEntity
{
is_in_stock = 0,
manage_stock = 0,
use_config_manage_stock = 0,
qty = new Random().Next(50, 100).ToString(CultureInfo.InvariantCulture)
};
magentoApiRepo.UpdateStockQuantity(magentoProduct.product_id, productUpdated);
}
结果
在Magento商店的管理部分,产品的数量值发生了变化,但Stock Availability
值没有变化。
我正在根据Magento API参考指南中的说明设置manage_stock
和use_config_manage_stock
。
事实证明,我需要通过添加参数is_in_stock_specified=true
来指定我正在提供is_in_stock
字段。
因此,我的API调用如下:
var productUpdated = new catalogInventoryStockItemUpdateEntity
{
is_in_stock_specified = true,
is_in_stock = 0,
manage_stock = 0,
use_config_manage_stock = 0,
qty = new Random().Next(50, 100).ToString(CultureInfo.InvariantCulture)
};