order_cancelled

Fired when an order is cancelled.

When:

sourceCause
greenleazeCancelled by a GreenLeaze admin.
shopA shop cancellation request was validated, or a booking already pushed to the shop was cancelled (isBooking: true; source is shop whatever the cancellation origin).
scoringCancelled automatically after a manual-validation rejection on an active order.
customerReserved, not emitted today.

Shop destinations always get this payload, whatever the cause.

source here is the cancellation origin, not the order origin used by the other events. See the filtering caveat.

FieldTypeDescription
idstringGreenLeaze order id.
source"shop" | "customer" | "greenleaze" | "scoring"Cancellation origin.
transactionIdstring | null
cartIdstring | null
cartSecureKeystring | null
isBookingbooleantrue when a booking is cancelled.
externalOrderIdstring | nullShop-side order id. Set only for a cancelled booking.
shop.idstring
customer.emailstring | null
customer.phonestring | null
customer.firstNamestring | null
customer.lastNamestring | null
cancelledByUser | nullWho cancelled. null for automatic cancellations.
productsline[]Every order line, services included: { id, combinationId, quantity } with the shop's product and variant ids (null when the line has no shop product, e.g. a service).
{
  "id": "5b0f7c1e-2d7a-4a59-9d6b-3c1f0e0c9a11",
  "source": "greenleaze",
  "transactionId": "GLZ-8F3K2",
  "cartId": "cart_abc123",
  "cartSecureKey": "key_xyz789",
  "isBooking": false,
  "externalOrderId": null,
  "shop": { "id": "0d6e…" },
  "customer": {
    "email": "[email protected]",
    "phone": "+33612345678",
    "firstName": "Jean",
    "lastName": "Dupont"
  },
  "cancelledBy": {
    "id": "7f20…",
    "displayName": "Ops",
    "email": "[email protected]",  // If GreenLeaze has cancelled the order, you will receive the email of the operator on our side, in case of any problem, please prefer contacting [email protected] 
  },
  "products": [{ "id": "8812", "combinationId": "8812-2", "quantity": 1 }]
}