The order pipeline

The steps that run in a fixed order on every order status change.

1One event, many steps

On every order status change the connector walks its steps in a fixed order, asking one question at each: is this order's status in this step's list? If it is, the step runs; if not, it is silently skipped.

The order is fixed no matter how you arrange the lists.

2First: stock

  1. Deduct stock — if the status is in the deduct list.
  2. Restore stock — if it is in the restore list.

3Then: selling

  1. Create the sales order.
  2. Approve the sales order.
  3. Create the stock picking.
  4. Validate the stock picking.

4Then: invoicing

  1. Create the invoice.
  2. Post the invoice.
  3. Send the invoice to ZATCA — automatically after posting, on Odoo 19.3+ with the switch on.
  4. Pay the invoice.

5Then: cancelling

  1. Cancel the invoice or create a credit note.
  2. Send the credit note to ZATCA.
  3. Pay the credit note.
  4. Cancel the sales order.
  5. Cancel the stock picking.

6The order of your lists matters

Because the steps run in this order within the same event, an order can go from nothing to a paid invoice in one moment if its status is in every list. Equally, putting a status in "pay" without putting it in "post" makes paying fail every time.

7A failed step does not stop the rest

Each step is protected on its own. If creating the invoice fails, the connector still tries to post and pay it — both also fail, and the order appears on three different error screens. Fix the first error in the chain; the rest usually clear with it.

8One order at a time

The connector prevents the same order being processed twice at once. If two events for one order arrive back to back, the first is processed and the second is told a run is already in progress. This is deliberate and protects you from duplicate invoices.

Salla Odoo ConnectorProduct overview, features and pricing
↑↓to navigate
Need help?