如何解决Shopify REST API调用中inventory_item_id‘期望Float为ID’错误
解决Azure Logic App调用Shopify Inventory API的类型错误问题
问题分析
你遇到的错误"inventory_item_id": "expected Float to be a id",核心原因是Azure Logic App将inventory_item_id的值以Double(浮点)类型发送给Shopify API,但Shopify的Inventory Levels API期望该字段为整数类型的ID(或字符串格式的整数)。
Postman测试正常是因为Postman默认会把这类大数字作为整数处理并发送,而Logic App在JSON序列化时自动将其转为了浮点类型,导致Shopify API无法识别为合法ID。
解决方案
你可以通过以下两种方式修复:
1. 强制将inventory_item_id转为整数类型
在Logic App的请求体配置中,不要直接填写数字40978570519510,而是使用Logic App的表达式将其转为整数:
int('40978570519510')
这样Logic App会以整数类型序列化该字段,符合Shopify API的要求。
2. 将inventory_item_id以字符串形式发送
修改请求体中的inventory_item_id为字符串格式,Shopify API会自动解析字符串形式的ID:
{ "available": 89, "inventory_item_id": "40978570519510", "location_id": 70811973482 }
额外注意
你请求中使用的API版本是2023-01,但最初提到的目标版本是2023-04,虽然这不是当前错误的原因,但建议保持API版本一致,避免潜在的兼容性问题。
内容的提问来源于stack exchange,提问作者Junius
相关产品推荐
相关产品推荐

