Retail ERP

Odoo ERP for Saudi Retail: POS, mada Payments, ZATCA E-Invoicing, and Omnichannel Inventory

Saudi retail operators managing multiple branches, online channels, and consumer payment gateways face an operations problem that spreadsheets cannot solve: real-time stock across locations, ZATCA e-invoicing per receipt, mada and STC Pay reconciliation, and Saudisation ratios per outlet — all at once.

iWesabe Editorial TeamOctober 6, 20249 min read

Saudi Arabia's retail sector is the Arab world's largest consumer market, with over SAR 720 billion in annual retail spend and a Vision 2030 target to double the tourism and entertainment economy. Retailers operating across this environment — hypermarkets, fashion chains, F&B outlets, pharmacies, and online-first brands — share a common operational challenge: the systems they started with cannot handle the regulatory and commercial complexity that comes with scale.

ZATCA's Phase 2 e-invoicing mandate requires a compliant e-invoice for every retail transaction — including POS receipts. Saudi consumers now expect mada, STC Pay, Apple Pay, Tamara, and Tabby at every checkout. Nitaqat's Saudisation quotas apply at the outlet level, not just the company level. And omnichannel inventory — a single stock pool serving walk-in, online, and click-and-collect demand — has moved from differentiator to baseline expectation. Odoo ERP connects all of these requirements in a single platform built for Saudi retail operations.

6 Retail Challenges Saudi Operators Cannot Resolve Without an ERP

Saudi retailers operating across multiple branches, formats, and channels encounter six operational gaps that compound as the business scales:

ChallengeWhat Goes Wrong Without ERPOdoo Solution
Real-time inventory across branchesStock levels differ between branch registers, Excel sheets, and the warehouse — stockouts at one outlet coexist with overstock at anotherSingle shared stock pool per SKU across all locations; transfers triggered automatically when branch stock drops below reorder point
ZATCA e-invoicing per receiptPOS receipts printed manually cannot meet Phase 2 QR code and XML requirements; e-commerce orders lack the required structured invoice dataOdoo POS and e-commerce generate ZATCA Phase 2-compliant e-invoices automatically at point of sale — QR code embedded, XML sent to FATOORA in real time
Payment gateway reconciliationmada, STC Pay, Apple Pay, Tamara, and Tabby settlements arrive in separate bank batches — matching them to daily POS totals requires hours of manual workOdoo payment journal entries per gateway type; automated bank reconciliation matches each settlement batch to the corresponding POS session
Omnichannel returnsA customer buying online and returning in-store creates a stock reversal, refund, and invoice credit note that must be manually entered across three systemsOdoo reverse transfer linked to original sale order; credit note issued automatically and inventory updated across the channel mix
Saudisation ratios per outletHRSD's Nitaqat system requires a Saudi employee ratio per establishment — retail chains operating across regions must track this at outlet level, not just head-office levelOdoo HR tracks nationality and contract type per work location; Nitaqat ratio dashboards per branch let managers act before a quarterly audit
Seasonal demand planning (Ramadan/Eid)Peak periods spike demand 3–5× above baseline for certain SKUs — manual reorder planning leads to over-purchasing in off-peak lines and stockouts in peak lines simultaneouslyOdoo forecasting uses historical POS data by SKU and location; automatic reorder rules with seasonality adjustments prepare stock 6–8 weeks before Ramadan and Eid peaks

Assess Your Retail ERP Readiness

Talk to iWesabe about Odoo retail implementation — POS, payment gateways, ZATCA, and Saudisation compliance scoped to your outlet count and channel mix.

Saudi Payment Gateway Integration: mada, STC Pay, Apple Pay, Tamara, and Tabby

Saudi consumers use multiple payment methods across a single shopping journey — tap-to-pay with mada at a physical POS, Apple Pay for the online order, and Tamara's buy-now-pay-later at checkout for larger purchases. Odoo integrates with all major Saudi payment gateways through its payment provider framework, and records each as a separate payment journal for clean reconciliation:

Gateway / BNPLIntegration RouteSAMA RequirementSettlement Type
mada (SPAN)Odoo POS hardware-integrated payment terminal; Odoo e-commerce via Checkout.com or PayTabs (mada-certified acquirers)SPAN network certified acquirer required; 3DS2 authentication for CNP transactionsNext-day batch settlement per merchant ID — auto-reconciled to POS session in Odoo
STC PaySTC Pay Business API integrated into Odoo payment provider; supports QR code payment at POS and payment link for onlineSAMA e-money licence; STC Pay Business merchant onboarding requiredReal-time wallet settlement — Odoo journal entry per transaction on settlement day
Apple PaySupported through any SAMA-approved payment gateway (Checkout.com, PayTabs, Moyasar) connected to Odoo e-commerce checkoutRequires merchant domain registration with Apple; processed through licensed acquirerSettled with acquirer's daily batch — reconciled to Odoo sales order on settlement date
Tamara (BNPL)Tamara merchant API connected to Odoo e-commerce and POS; customer selects 3- or 6-instalment split at checkoutSAMA consumer finance licence; Tamara merchant agreement required; retailer receives full amount upfrontFull sale amount paid to merchant within 1–2 business days; Tamara collects instalments from consumer independently
Tabby (BNPL)Tabby merchant SDK integrated into Odoo e-commerce checkout; supports 4-instalment split pay and deferred paymentSAMA consumer finance licence; Tabby merchant onboarding requiredFull sale amount transferred to merchant after consumer's first instalment confirmed; Tabby assumes credit risk

ZATCA E-Invoicing Across Every Retail Sales Channel

Phase 2 (integration phase) of ZATCA's e-invoicing mandate requires that every tax invoice — including B2C simplified invoices at POS — be cryptographically signed, QR-coded, and reported to FATOORA in real time or near-real time. For multi-channel retailers, this creates compliance obligations that differ by sales channel:

Sales ChannelInvoice TypeZATCA Phase 2 RequirementOdoo Handling
In-store POS (B2C)Simplified tax invoiceCryptographic stamp + QR code; submitted to FATOORA in batches at end of dayOdoo POS generates compliant simplified invoice at closing; batch submitted via ZATCA API integration
E-commerce (B2C)Simplified tax invoiceSystem-generated QR-coded invoice delivered to buyer; reported to FATOORA within 24 hoursOdoo e-commerce auto-generates invoice on order confirmation; customer receives it by email; FATOORA submission automated
Click-and-collectSimplified tax invoice (B2C payment at order)Invoice linked to online order; physical handover at store must reference same invoice UUIDSingle Odoo sale order covers both online payment and in-store pickup — one invoice, one UUID across both touchpoints
Wholesale / B2B supplyStandard tax invoiceFull XML invoice submitted to FATOORA in real time (within seconds of issuance); buyer's VAT number requiredOdoo invoicing generates standard ZATCA invoice with buyer VAT; real-time FATOORA clearance before PDF delivery to buyer
Returns and credit notesCredit note linked to original invoiceCredit note must reference the original invoice UUID; must be separately submitted to FATOORAOdoo generates credit note auto-linked to original invoice UUID; submitted to FATOORA as a separate debit/credit note document

Odoo Module Stack for Saudi Retail Operators

Saudi retail operators deploying Odoo typically activate seven core modules, each configured with Saudi-specific extensions rather than generic defaults:

Odoo ModuleCore FunctionSaudi Retail Configuration
Point of Sale (POS)In-store sales, receipts, shift management, cash drawersZATCA Phase 2 simplified invoice generation; mada terminal integration; Arabic interface; prayer time auto-pause for shop floor compliance
InventoryMulti-location stock, transfers, replenishment, expiry trackingBranch-level stock pools with inter-branch transfer orders; Ramadan/Eid seasonal reorder rules; lot/serial tracking for SFDA-regulated consumables (pharmacies, food retailers)
E-Commerce (Website)Online store, product catalogue, checkout, order managementZATCA-compliant e-invoice generation per order; mada/STC Pay/Apple Pay/Tamara/Tabby payment providers; Arabic product pages; click-and-collect order routing to nearest branch
Accounting & FinanceGeneral ledger, bank reconciliation, VAT reporting, financial statementsZATCA Phase 2 invoice clearance and reporting; 15% VAT per transaction; separate payment journals per gateway (mada/STC Pay/Tamara/Tabby); SOCPA chart of accounts
Sales & CRMB2B wholesale orders, customer pricing, credit limits, quotationsStandard ZATCA invoice with real-time FATOORA clearance for wholesale; tiered pricing for key accounts; credit limit enforcement for institutional buyers
HR & PayrollEmployee records, contracts, payslips, leave managementNitaqat ratio tracking per work location (branch level); GOSI contribution calculation (9.75% employer + 9.75% Saudi employee); WPS-Mudad payroll file export; Iqama validity alerts
Loyalty & Gift CardsCustomer loyalty programmes, point accumulation, redemption, gift cardsProgramme rules by spending tier (Ramadan bonus multipliers, Eid double-points events); Arabic loyalty dashboard for store associates; gift card ZATCA treatment as prepayment

iWesabe: Odoo Retail ERP Implementation in Saudi Arabia

200+
ERP implementations across Saudi Arabia and the Gulf
14+
years of Odoo implementation experience
3
consecutive Odoo partner awards (MENA & KSA)
100%
ZATCA Phase 2 certified retail go-lives

iWesabe has implemented Odoo ERP for Saudi retail operators across fashion, F&B, pharmacy, and specialty retail — each with ZATCA Phase 2 compliance, Saudi payment gateway configuration, and Nitaqat tracking built into the go-live scope. With 200+ ERP implementations across Saudi Arabia and the Gulf over 14+ years, and recognition as Odoo's Best Partner MENA 2023, Highest Revenue KSA 2022/2023, and Top Revenue Achiever KSA 2023/2024, iWesabe is the implementation partner that understands Saudi retail compliance at the operational level — not just the ERP level.

See Odoo Retail ERP in Action

Book a demo with iWesabe to see how Odoo handles POS, mada/STC Pay/Tamara payments, ZATCA e-invoicing, and omnichannel inventory — configured for Saudi retail operations.

Talk to a Saudi Retail ERP Expert

WhatsApp

Frequently Asked Questions

Does Odoo POS meet ZATCA Phase 2 e-invoicing requirements for Saudi retail?
Yes — Odoo POS, when configured with a ZATCA-certified integration, generates compliant simplified tax invoices at point of sale. Each receipt is cryptographically stamped, QR-coded, and submitted to FATOORA at day-end in a compliant batch. iWesabe handles the ZATCA onboarding (CSID provisioning and device registration) as part of the retail ERP implementation scope.
Can Odoo integrate with mada payment terminals in Saudi retail stores?
Yes — Odoo POS supports hardware-integrated payment terminals for mada (SPAN network). The terminal connects to the POS session directly, and the settled amount is automatically posted to the mada payment journal in Odoo. For e-commerce, mada acceptance is available through certified acquirers (Checkout.com, PayTabs, Moyasar) connected to the Odoo payment provider framework.
How does Odoo handle Saudisation (Nitaqat) compliance for retail chains with multiple branches?
Odoo HR tracks employee nationality and contract type per work location — meaning each branch has its own Saudi headcount ratio visible in the system. Managers can view Nitaqat compliance at branch level, regional level, or company level. The system flags branches approaching non-compliance before a quarterly audit, enabling targeted hiring or transfer decisions before the threshold is breached.
Can Odoo manage omnichannel inventory — the same stock pool serving in-store, online, and click-and-collect demand?
Yes — Odoo's inventory model uses a single stock pool per SKU per location, with rules that determine which demand channel draws from which warehouse or branch. Online orders can be routed to the nearest in-stock branch or a central fulfilment warehouse. Click-and-collect orders reserve stock at the pickup branch at order confirmation, preventing the same unit from being sold twice across channels.
What is the typical implementation timeline for Odoo retail ERP in Saudi Arabia?
A single-format retail operator (one branch type, one sales channel) typically goes live in 10–14 weeks with POS, inventory, accounting, ZATCA integration, and one payment gateway. Multi-format retailers (in-store + e-commerce + wholesale) with 10+ branches require 16–24 weeks to configure channel-specific rules, integrate all payment gateways, and complete ZATCA onboarding for each POS device. Ramadan and Eid peak periods are treated as implementation blackout windows — go-live is scheduled well outside these periods.
Does Odoo support Tamara and Tabby BNPL at POS, or only online?
Tamara and Tabby currently offer in-store QR-code-based BNPL through their merchant apps, which can operate alongside an Odoo POS session. The POS records the sale and Tamara/Tabby handles the consumer instalment flow independently. For the Odoo POS journal, a dedicated BNPL payment method is configured so the settlement is correctly posted to the appropriate liability account — separate from mada and STC Pay journals. Full native POS SDK integration is available for the e-commerce channel.
iWesabe Editorial Team

iWesabe Editorial Team

Practitioner insights on Odoo ERP, ZATCA compliance, and Saudi enterprise digital operations — written by iWesabe's consulting, finance, and engineering teams.

About iWesabe

Related Articles