Nexus Gateway
EnglishRomână
OpenAPI

Un meniu combo poate avea o mărime, o băutură inclusă și un extra contra cost. Meniul publicat diferențiază aceste opțiuni, astfel încât să calculezi prețul și să trimiți exact combinația configurată.

Trei tipuri de opțiuni

Tipul grupuluiSemnificațieCalculul prețului
variantDefinește configurația produsului, de exemplu mărimea sau blatul.Potrivește toate opțiunile definitorii cu o variantă publicată. Prețul, reducerea publicată și garanția acesteia înlocuiesc valorile de bază.
bundleO componentă inclusă, de exemplu băutura meniului combo.Este inclusă în prețul meniului combo. Adaugă garanția, dacă există.
extraUn adaos opțional, de exemplu un sos suplimentar.Adaugă prețul și garanția. Acesta este tipul implicit când nu este specificat.

Identifică exact o variantă publicată

  1. Colectează perechile group_id/option_id selectate din fiecare grup kind: "variant".
  2. Compară acest set, indiferent de ordine, cu fiecare set variants[].selections.
  3. Trebuie să existe exact o variantă disponibilă care corespunde. Prețul minus reducerea publicată, plus garanția ei, sunt baza acestei configurații.
  4. Respectă limitele și disponibilitatea fiecărui grup, inclusiv pentru componentele incluse și extra.
Opțiuni valide separat pot forma o combinație invalidă. O mărime mare și un anumit blat pot exista fără să existe și combinația lor. Nu inventa variante și nu însuma prețurile opțiunilor definitorii.

Pentru un produs fără variante, folosește prețul de bază minus reducerea publicată, plus garanția. Un pachet fix poate avea o variantă cu selecții goale; acea variantă furnizează valorile de bază. Componentele fixe implicite sunt deja reprezentate în meniul publicat, inclusiv garanțiile lor. Nu inventa linii suplimentare de comandă pentru ele.

Exemplu calculat: două meniuri burger mari

Meniul demonstrativ oferă meniuri normale și mari. Clientul alege varianta mare, apă și sos suplimentar pentru fiecare dintre cele două meniuri, cu livrare.

Varianta mare3.000 bani
Apă · inclusă, cu garanție50 bani
Sos suplimentar200 bani
Ambalaj100 bani
Per meniu × 23.350 × 2 = 6.700
Livrare · o singură dată per comandă700 bani
Total comandă7.400 bani 74,00 RON
order-delivery.json
{
  "external_order_id": "shop-1002",
  "menu_revision": "example-menu-1",
  "currency": "RON",
  "fulfillment": "delivery",
  "customer": {
    "name": "Example Customer",
    "phone": "0700000000"
  },
  "address": {
    "city": "Iași",
    "street": "Example Street 10",
    "details": "Apartment 2, ring the bell"
  },
  "payment": {
    "method": "cash_on_fulfillment"
  },
  "items": [
    {
      "product_id": "burger-meal",
      "quantity": 2,
      "modifiers": [
        {
          "group_id": "size",
          "option_id": "large"
        },
        {
          "group_id": "drink",
          "option_id": "water"
        },
        {
          "group_id": "meal-extras",
          "option_id": "sauce"
        }
      ]
    }
  ],
  "total": 7400
}

Descarcă order-delivery.json ↓

Trimite opțiunile, fără identități calculate

Trimite toate opțiunile selectate în items[].modifiers, inclusiv variantele, componentele incluse și extra. Fiecare pereche poate apărea o singură dată pe linie și se aplică o dată fiecărei unități de pe acea linie. Pentru două meniuri cu opțiuni diferite, folosește două linii cu cantitatea unu.

Nu trimite variant_id sau prețuri pe linia de comandă. Gateway-ul identifică singur varianta exactă și verifică totalul; câmpurile necunoscute sunt respinse. Ghidul coșului include o funcție testată care aplică toate aceste reguli.

Când o combinație nu mai este disponibilă

variant_unavailable, modifier_unavailable și modifier_selection_invalid necesită revizuirea meniului/coșului. Citește din nou meniul, elimină opțiunile indisponibile și cere confirmarea clientului. Dacă trimiterea inițială a expirat, recupereaz-o mai întâi folosind corpul salvat; nu înlocui opțiunile fără confirmare.

Nexus GatewayAPI pentru comenzi website · v1.0.0

Tastează pentru a căuta în ghidurile de integrare.