Paiements et commandes de détail
Construire un paiement de détail avec le produit, la variante, la promotion, la livraison, le contexte et le client.
Sur cette page
Connecter un paiement de détail à l'orchestration des paiements sans perdre les données nécessaires à la livraison et au support. DEUNA conserve le catalogue, la promotion, la livraison et le contexte du client sur la même commande utilisée tout au long du cycle de vie du paiement.
Contenu complet de la commande de détail#
Cet exemple inclut une variante de produit, une référence de remise au niveau de l'article, la remise correspondante à la commande, une adresse de livraison et une méthode d'expédition sélectionnée.
Commerce de détail
Variantes produit, promotion, adresse, mode de livraison et contexte de traitement pour le commerce.
itemsdiscountsshipping_addressshipping_method{
"order_type": "DEUNA_CHECKOUT",
"order": {
"order_id": "retail-93418",
"store_code": "es-online",
"currency": "EUR",
"items_total_amount": 10900,
"sub_total": 11400,
"shipping_amount": 500,
"total_tax_amount": 2152,
"total_discount": 1000,
"total_amount": 13552,
"items": [
{
"id": "shoe-runner-42-blue",
"sku": "RUNNER-BLU-42",
"upc": "8437012345678",
"name": "Runner trainers",
"description": "Everyday lightweight trainers",
"quantity": 1,
"brand": "Northline",
"category": "footwear",
"sub_category": "trainers",
"color": "navy",
"size": "42",
"taxable": true,
"image_url": "https://merchant.example.com/products/runner-blue.jpg",
"details_url": "https://merchant.example.com/products/runner-blue",
"unit_price": {
"amount": 11900,
"currency": "EUR",
"currency_symbol": "€"
},
"total_amount": {
"amount": 10900,
"original_amount": 11900,
"currency": "EUR",
"currency_symbol": "€",
"total_discount": 1000
},
"tax_amount": {
"amount": 2052,
"currency": "EUR",
"currency_symbol": "€"
},
"weight": {
"weight": 850,
"unit": "g"
},
"discounts": [
{
"amount": 1000,
"ref_idx": 0
}
]
}
],
"discounts": [
{
"amount": 1000,
"code": "WELCOME10",
"reference": "campaign-2026-welcome",
"description": "Welcome discount",
"details_url": "https://merchant.example.com/promotions/welcome10",
"free_shipping": {
"is_free_shipping": false,
"maximum_cost_allowed": 0
},
"discount_category": "coupon",
"target_type": "items",
"type": "fixed_amount"
}
],
"shipping_address": {
"first_name": "Alex",
"last_name": "Morgan",
"email": "alex@example.com",
"phone": "+34600000000",
"address1": "Calle de Alcalá 125",
"address2": "3B",
"city": "Madrid",
"zipcode": "28009",
"state_name": "Madrid",
"state_code": "MD",
"country_code": "ES",
"address_type": "home",
"is_default": true
},
"shipping_method": {
"code": "standard-48h",
"name": "Standard delivery",
"min_delivery_date": "2026-10-05",
"max_delivery_date": "2026-10-06",
"cost": 500,
"display_cost": "€5.00",
"tax_amount": 100,
"display_tax_amount": "€1.00",
"scheduler": []
},
"shipping_options": {
"type": "delivery",
"method": "standard-48h",
"carrier": "Merchant Logistics",
"price": {
"amount": 500,
"currency": "EUR"
},
"requires_shipping": true,
"details": {
"store_id": "es-online",
"store_name": "Online store",
"address": "Calle de Alcalá 125, Madrid",
"address_coordinates": {
"lat": 40.4217,
"lng": -3.6772
},
"contact": {
"name": "Customer care",
"phone": "+34910000000"
},
"additional_details": {
"address_notes": "Leave with the concierge."
}
}
},
"payer_info": {
"email": "alex@example.com"
},
"channel_type": "desktop_web",
"metadata": {
"vertical": "retail",
"fulfillment_node": "warehouse-mad-02"
},
"callback_urls": {
"on_success": "https://merchant.example.com/payments/success",
"on_pending": "https://merchant.example.com/payments/pending",
"on_reject": "https://merchant.example.com/payments/rejected",
"on_canceled": "https://merchant.example.com/payments/canceled",
"on_failed": "https://merchant.example.com/payments/failed"
}
}
}Modéliser le contexte commercial#
| Exigence | Champs de commande |
|---|---|
| Identité du produit | items[].id, sku, upc, brand, category, sub_category |
| Variante et présentation | color, size, image_url, details_url, weight |
| Promotion | discounts[] et article discounts[].ref_idx |
| Livraison | shipping_address, shipping_method, shipping_options |
| Opérations de livraison | Informations sur le magasin, l'entrepôt, le transporteur, les dates de livraison et les métadonnées du commerçant |
Liste de contrôle de production#
- Utiliser des identifiants de produits et de variantes immuables plutôt que les noms d'affichage comme clés.
- Maintenir la cohérence des références de remise entre les articles et le niveau de commande.
discountsarray. - Valider l'adresse postale, le transporteur, les dates de livraison et le coût de port avant le paiement.
- Conserver le token de commande original pour les flux de capture, de remboursement, d'annulation et de support.
- Tester les modifications des promotions, les articles en rupture de stock, la répartition de la livraison, les remboursements partiels et les scénarios de nouvelle tentative.
Continuez avec Modules de paiement, Capture et remboursementset Traiter le paiement d’une commande.