【问题标题】:Can not update Stock Availability / Is In Stock value via Magento API无法通过 Magento API 更新 Stock Availability / Is In Stock 值
【发布时间】:2013-07-25 10:54:33
【问题描述】:

背景

我有一个实时和测试的 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

【问题讨论】:

    标签: c# .net api magento


    【解决方案1】:

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

    【讨论】:

    • 在这个愚蠢的错误上为我节省了 1 小时到 45 天的时间。
    • 很高兴它有帮助,这似乎是 Magento API 中的一种常见模式。如果您曾经看到一个带有 _specified 布尔值的属性,那么如果您正在使用它,您可能应该将其设置为 true。
    • 不适用于我使用 SOAPv1。我想我必须投入 45 天并尝试重新长出我的头发。
    • @hogan 它确实对我和 OP 有用。你能发个问题,我们可以看看...
    • @Seany84 感谢您提供帮助。我测试了不同的场景并使用$stockItemData = [ 'manage_stock'=>'1', 'use_config_manage_stock'=>'0', 'is_in_stock' => 1, 'qty' => '25',]; 让它工作注意,这是 php 语法。出于某种奇怪的原因,这里的条目顺序似乎是相关的,而且我在通话中也有错字。现在可以了。谢谢。
    猜你喜欢
    • 2014-05-28
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    相关资源
    最近更新 更多