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

Sea*_*y84 1 .net c# api magento

背景

我有一个现场和测试Magento商店.我从Magento商店的WSDL生成一个MagentoApi C#类.

问题

我可以通过我的API类更新产品数量而不会出现任何问题.我现在正在尝试Stock Availability从API 设置字段,但它不会改变它的值.

[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);
}
Run Code Online (Sandbox Code Playgroud)

结果

从Magento商店的管理部分,产品的数量值会发生变化,但Stock Availability价值未发生变化.

我正在设置manage_stockuse_config_manage_stock按照Magento API参考指南中的说明进行操作.

Sea*_*y84 7

事实证明,我需要is_in_stock通过添加参数来指定我提供字段is_in_stock_specified=true.

所以,我的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)
                      };
Run Code Online (Sandbox Code Playgroud)