无法通过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_stockuse_config_manage_stock

无法通过Magento API更新库存可用性/库存值

事实证明,我需要通过添加参数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)
                      };