Ugrás a fő tartalomhoz

Eseményszerződések

A modulok üzleti eseményei (rendelés fizetve, készlet alacsony, szerviz-munka átvehető, …) séma-első, verziózott szerződésekből születnek. Minden eseménytípusnak JSON Schema-leírása van; a modul kódja ebből generált típusokat használ, ezért az esemény nem térhet el a sémától.

Ezekre az eseményekre épül a Vecton automatizáció (flow-k), és egyes webhookok data mezője is ezt a szerződést követi.

Név és verzió​

<modul>.<entitás>.<ige>   v<N>

Például webshop.order.status_changed v1, warehouse.stock.low v1, repair.case.ready_for_pickup v1.

Kompatibilitási szabályok:

  • Egy kiadott verzió sémája nem változik visszafelé nem kompatibilis módon: mező törlése, típusváltás vagy új kötelező mező csak új verzióban (v2) jelenhet meg.
  • Ugyanabban a verzióban legfeljebb új, nem kötelező mező jelenhet meg. A feldolgozód tehát hagyja figyelmen kívül az ismeretlen mezőket.
  • A régi és az új verzió átmenetileg együtt is élhet.

A katalógus lekérdezése​

GET https://acme.app.vecton.hu/api/automation/catalog/events
Authorization: Bearer <token>

A válasz eseménytípusonként a típust, a verziót, a modult, a címet és a leírást, az alany típusát és azonosító-mezőjét (subject, például { "type": "order", "id_field": "order_id" }), valamint a mezők listáját adja (név, típus, kötelező-e, felsorolt értékek, formátum) és a teljes JSON Schemát (schema). A ?service=webshop paraméter egy modulra szűr. Jog: tenant.<szervezet>.automation.catalog.view.

Példa: webshop.order.status_changed v1​

MezőTípusKötelezőMegjegyzés
order_idstring (uuid)igen
order_numberstringigen
webshop_idstring (uuid)igen
new_statusstringigenNEW, ROUTED, PICKING, PACKING, SHIPPED, DELIVERED, CANCELLED, COMPLETED
old_statusstring | nullnemnull, ha nem ismert
fulfillment_statusstring | nullnem
tracking_number, tracking_urlstring | nullnem
delivered_atstring (date-time) | nullnem
reasonstring | nullnema lemondás oka, csak CANCELLED-nél
created_bystring | nullnem

Modulonként​

ModulEseménytípusok (mind v1)
webshoporder.created, order.paid, order.status_changed, quote.sent, quote.accepted, quote.rejected, product.price_changed, gift_card.issued, gift_card.redeemed, discount_approval.decided, rma.status_changed, store_sale.completed, store_day.closed, register_shift.closed, store_cart.sent_to_register, store_cart.expired
warehousestock.changed, stock.low, receiving.scanned, pick_run.started, pick_run.progress, pick_run.completed, picking.short, picking.scan_rejected, packing.shortage_reported, shipping.shipped, shipping.delivered, shipping.returned, shipping.return_received, shipping.day_closed, transfer.requested, transfer.picked, transfer.dispatched, transfer.received, count_check.submitted, count_check.resolved, attendance.stamped
crmtask.created
emailmessage.received
repaircase.created, case.status_changed, case.ready_for_pickup, case.handed_over, case.overdue, internal_case.status_changed, quote.sent, quote.approved, quote.rejected
rentalbooking.created, booking.cancelled, rental.issued, rental.returned, rental.due_today, rental.overdue, contract.purchased, contract.expiring, contract.invoice_issued, contract.charge_failed, damage.reported, damage.settled, deposit.rehold_failed, asset.maintenance_due

A teljes név a modul előtagjával értendő (pl. rental.booking.created). A pontos, naprakész lista mindig a katalógus-végpont válasza; egy modul eseménye csak akkor keletkezik, ha a modul a szervezetnél be van kapcsolva.

Kapcsolat a webhookokkal​

A webhook-eseménytípusok egy része (jelenleg a webshop order.status_changed, quote.sent, quote.accepted és quote.rejected eseménye) egy szerződésre hivatkozik; ezeknél a webhook data mezője a szerződés szerinti payload. A többi webhook-esemény mezőit a GET /api/webhook/events payload_schema-ja írja le. Lásd: Webhookok.