La création de facture échoue pour les éléments configurables lors de l’utilisation de l’API REST Adobe Commerce
La création de facture à l’aide de l’API REST Adobe Commerce échoue pour les produits configurables, où l’élément n’apparaît pas sur la facture et où les erreurs de validation ne se déclenchent pas. Pour résoudre ce problème, référencez l'ID article du produit configurable (parent) au lieu du produit simple (enfant) dans la demande de facture.
Description description
Environnement
Adobe Commerce
Problème/Symptômes
- Les factures créées via l’API n’incluent pas de produits configurables.
- Aucun message d’erreur ne s’affiche lorsque seuls des ID d’élément enfant (simples) sont utilisés.
- Inclusion des ID article parent et enfant avec une quantité nulle pour les retours parent La facture ne peut pas être créée sans produits.
- Facture de produits simple réussie.
Résolution resolution
Pour résoudre ce problème, procédez comme suit :
-
Identifiez l'ID article du produit configurable (parent) à partir de la commande en interrogeant la table
sales_order_item.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 -
Créez la facture via l’API REST en incluant uniquement l’ID d’élément du produit parent configurable dans la payload de la requête.
Remarque: n'incluez pas d'ID d'article de produit enfant (simple) et ne définissez pas la quantité sur zéro pour aucun article.
-
Soumettez la demande de création de facture à l'aide de la structure de payload suivante :
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 } ] } -
Vérifiez que la facture créée inclut des articles de ligne pour tous les produits configurables prévus.
Remarque
S'il existe plusieurs variations d'un produit configurable dans une commande, utilisez chaque ID article parent correspondant à ces variations lors de la création des factures.
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
Dans cet exemple, la payload pour facturer la variante B du SKU simple_skuB utilise l'ID article parent 232.