Salla stores grow fast, and growth brings the same question: orders live in Salla, stock in an Excel file and invoices in a third system. Connecting Salla with Odoo means an order is entered once, and stock, the invoice and the journal entry all follow from it without re-keying.
What usually syncs
- New orders and their status, from receipt to delivery or cancellation.
- Products, their variants (sizes, colours) and SKUs.
- Available quantities, from Odoo warehouses to the store.
- Customers and shipping addresses.
- Payments collected through payment gateways, so accounting can reconcile them.
- Returns and refunds.
Decide first: which system owns each piece of data?
The most important decision in any integration isn't technical. Each type of data needs one system that is the source of truth. In most stores, quantities and cost live in Odoo, while descriptions, images and promotions live in Salla. When the same field is edited in both systems, the numbers start drifting within days.
How the integration works
Salla provides an API and webhooks that fire when an order is created or its status changes. The connector receives these events, creates the sales order in Odoo, then pushes updated quantities back to the store. You can build a dedicated connector or use a ready-made one; either way, it must log every failed operation and retry it instead of losing an order silently.
A pre-launch checklist
- Align product codes (SKUs) between Salla and Odoo before the first sync.
- Decide which warehouse feeds the store if you have more than one.
- Map each payment method to an account, including gateway fees.
- Set up tax in Odoo so the order's invoice meets ZATCA Phase 2 e-invoicing requirements.
- Run a full order through: creation, payment, shipping, return and refund.
- Name the person who reviews the error log daily in the first weeks.
Common mistakes
The most common: duplicate products under different codes, adjusting quantities by hand in Salla after go-live, and ignoring returns until stock differences appear at month-end. All of these are solved by a clear decision before the integration, not by extra code after it.
At MUNSAQ every integration starts with a session where we set the source of truth for each data type and write the test scenarios, then we build the connector and hand it over with a clear error log.