You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用shopify-api-ruby调用Shopify REST API调整InventoryLevel失败求助

问题分析与解决办法

以下是调用adjust方法返回"Not Found"错误的常见原因及对应解决措施:

1. 改用InventoryLevel类方法调用adjust

通过实例调用adjust时,gem可能基于实例ID构造错误的API请求路径。建议直接使用类方法发起请求:

# 替换原实例调用代码为类方法调用
ShopifyAPI::InventoryLevel.adjust(
  inventory_item_id: inventory_item.id,
  location_id: LOCATION_ID.to_i,
  available_adjustment: 10
)

2. 强制转换ID参数为整数类型

Shopify API对ID参数类型敏感,字符串类型的ID可能导致请求匹配失败。确保location_id和inventory_item_id为整数:

LOCATION_ID = 61167763535 # 直接使用整数而非字符串
VARIANT_ID = 41932294357071

# 查询InventoryLevel时参数允许字符串,但adjust方法需传入整数
inventory_level = ShopifyAPI::InventoryLevel.all(
  inventory_item_ids: inventory_item.id.to_s,
  location_ids: LOCATION_ID.to_s
).first

3. 验证InventoryLevel实例有效性

打印实例核心属性,确认其与目标位置、库存项的关联关系正确:

puts "InventoryLevel ID: #{inventory_level.id}"
puts "关联位置ID: #{inventory_level.location_id}"
puts "关联库存项ID: #{inventory_level.inventory_item_id}"

如果输出ID与传入参数不匹配,说明all方法返回的实例并非目标位置的库存记录,需检查查询条件。

4. 确认API权限与版本

  • 确保Shopify应用已申请write_inventory权限;
  • 检查使用的API版本是否支持InventoryLevel.adjust方法(要求2021-01及以后版本),可初始化gem时指定版本:
ShopifyAPI::Base.api_version = '2024-07' # 使用最新稳定版

内容的提问来源于stack exchange,提问作者Kavachaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:23:23