使用Adobe Commerce REST API时,为可配置项目创建发票失败
对于可配置产品,使用Adobe Commerce REST API创建发票失败,其中项目未出现在发票上,并且不会触发验证错误。 要解决此问题,请在发票请求中引用可配置(父)产品的项目ID,而不是简单(子)产品。
描述 description
环境
Adobe Commerce
问题/症状
- 通过API创建的发票不包括可配置产品。
- 仅使用子(简单)项目ID时不会显示错误消息。
- 如果包含父项和子项的ID的数量为零,则父项返回如果没有产品,则无法创建发票。
- 简单产品发票成功。
解决方法 resolution
要解决此问题,请执行以下步骤:
-
通过查询
sales_order_item表,从订单中标识可配置(父)产品的项目ID。code language-none select item_id, sku, product_type from sales_order_item; 208 simple_skuA configurable 211 simple_skuA simple 214 simple_skuB configurable 217 simple_skuB simple 220 simple_skuC simple 223 simple_skuD simple -
通过在请求有效负荷中仅包含可配置父产品的项目ID,通过REST API创建发票。
注意:不要包含子(简单)产品项目ID,并且不要将任何项目的数量设置为零。
-
使用以下有效负荷结构提交发票创建请求:
code language-none curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ https://<store_url>/rest/V1/order/<order_id>/invoice { "items": [ { "order_item_id": 208, "qty": 1 }, { "order_item_id": 220, "qty": 1 }, { "order_item_id": 223, "qty": 1 } ] } -
验证创建的发票是否包含所有预期可配置产品的行项目。
注释
如果订单中存在可配置产品的多个变体,则在创建发票时,请使用与这些变体对应的每个相关父物料ID。
select item_id, sku, product_type from sales_order_item;
226 simple_skuA configurable
229 simple_skuA simple
232 simple_skuB configurable
235 simple_skuB simple
在此示例中,SKU simple_skuB的发票变体B的有效负载使用父项ID 232。
experience-cloud-kcs-help-kbarticles