1

バックグラウンド

ライブおよびテストの 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

4

1 に答える 1

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)
                      };
于 2013-10-05T01:58:57.020 に答える