我有一个实时和测试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_stock
和use_config_manage_stock
。
答案 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)
};