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

时间:2013-07-25 10:54:34

标签: c# .net api magento

背景

我有一个实时和测试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值未发生变化。

我按照here in the Magento API reference guide提供的说明设置了manage_stockuse_config_manage_stock

1 个答案:

答案 0 :(得分: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)
                      };