Paiements et commandes QSR
Construire les flux de paiement et de commande QSR avec le contexte de menu, de modification, de localisation et de livraison.
Sur cette page
Construire des expériences QSR rapides sans séparer le paiement de la commande, pour que vos équipes de cuisine et d'exploitation puissent les utiliser. DEUNA conserve les modifications, le mode de service, le magasin, le calendrier et les instructions du client liés au cycle de vie du paiement.
Payload de commande QSR complet#
Les montants utilisent des unités monétaires mineures. Cet exemple modélise une collecte prévue avec deux articles personnalisés et suffisamment de contexte pour concilier le paiement avec la commande du restaurant.
Restauration rapide
Menu, options, mode de service, lieu, horaire et instructions client dans une seule commande de restaurant.
itemsshipping_optionsscheduled_atuser_instructions{
"order_type": "DEUNA_CHECKOUT",
"order": {
"order_id": "qsr-2048",
"store_code": "mad-gran-via-01",
"currency": "EUR",
"items_total_amount": 2890,
"sub_total": 2890,
"total_tax_amount": 286,
"total_amount": 3176,
"items": [
{
"id": "meal-smash-01",
"sku": "SMASH-COMBO",
"name": "Smash burger combo",
"description": "Burger, fries, and drink",
"options": "medium; no onions; sparkling water",
"quantity": 1,
"category": "combos",
"taxable": true,
"unit_price": {
"amount": 1890,
"currency": "EUR",
"currency_symbol": "€"
},
"total_amount": {
"amount": 1890,
"original_amount": 1890,
"currency": "EUR",
"currency_symbol": "€",
"total_discount": 0
},
"tax_amount": {
"amount": 172,
"currency": "EUR",
"currency_symbol": "€"
}
},
{
"id": "side-wings-06",
"sku": "WINGS-6",
"name": "Six hot wings",
"options": "chipotle sauce",
"quantity": 1,
"category": "sides",
"taxable": true,
"unit_price": {
"amount": 1000,
"currency": "EUR",
"currency_symbol": "€"
},
"total_amount": {
"amount": 1000,
"original_amount": 1000,
"currency": "EUR",
"currency_symbol": "€",
"total_discount": 0
},
"tax_amount": {
"amount": 114,
"currency": "EUR",
"currency_symbol": "€"
}
}
],
"shipping_options": {
"type": "pickup",
"method": "counter",
"requires_shipping": false,
"details": {
"store_id": "mad-gran-via-01",
"store_name": "Gran Vía",
"address": "Calle Gran Vía 42, Madrid",
"address_coordinates": {
"lat": 40.4201,
"lng": -3.7058
},
"contact": {
"name": "Gran Vía team",
"phone": "+34910000000"
},
"additional_details": {
"pickup_time": "2026-10-03T18:30:00Z",
"stock_location": "Front counter"
}
}
},
"scheduled_at": "2026-10-03T18:30:00Z",
"user_instructions": "Label the order for Alex. Include napkins.",
"payer_info": {
"email": "alex@example.com",
"external_registration_date": "2024-02-10T12:00:00Z"
},
"channel_type": "mobile_app_ios",
"metadata": {
"vertical": "qsr",
"service_mode": "pickup",
"loyalty_member_id": "LOY-88201"
},
"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 |
|---|---|
| Menu et modifications | items[].id, sku, options, quantity, category |
| Collecte ou livraison | shipping_options.type, method, details.store_id |
| Calendrier | scheduled_at, shipping_options.details.additional_details.pickup_time |
| Notes de cuisine ou de transfert | user_instructions |
| Fidélité et mode de service | Clés nommées à l'intérieur metadata |
Liste de contrôle de production#
- Maintenir les montants des articles, des taxes, des remises, de la livraison et du total cohérents.
- Envoyer le magasin qui prépare ou livre la commande.
- Utiliser un horodatage ISO 8601 et le fuseau horaire du commerçant correct pour les commandes prévues.
- Confirmer l'état de paiement final via des webhooks vérifiés avant de libérer la commande pour la livraison.
- Tester les scénarios de collecte, de livraison, de modification, de coupon, de refus, de reprise et de délai d'attente.
Vérifier ensuite Traiter le paiement d’une commande et le le flux de paiement et les statuts.