← Live feed

Warehouse management system with ZATCA Phase 2 invoicing for 2 Salla stores

Contract
HOURLY / PART_TIME
Client
Saudi Arabia
Live feed
Upwork

xml, postgresql, mysql, django-framework, laravel-framework, inventory-management, web-programming, api-integration, data-processing, cryptography

Preferred qualifications

  • Experience: Expert
I need a warehouse management system (WMS) for one warehouse that takes orders from two Salla stores (retail and wholesale), plus phone and walk-in orders, tracks stock, and issues ZATCA Phase 2 simplified tax invoices for every order. HOW DATA COMES IN (FIRST RELEASE) • Salla orders: imported from Salla's orders export (Excel), at least daily. Re-importing the same file must never duplicate orders or deduct stock twice. • Salla products: imported from Salla's products export (Excel) to keep the product list and SKUs current. • Stock vouchers: inbound and outbound vouchers (سند وارد / سند صادر) imported from xls/xlsx files exported by our ERP. Inbound adds stock, outbound deducts, and a voucher already imported is refused. • Price list: the ERP's VAT-exclusive price list, imported from Excel, used to price phone and walk-in orders (price + 15% VAT). • A live Salla API/webhook link is a later phase. Please build the import as a separate layer so the API can replace it without reworking stock or invoicing. CORE FUNCTIONS • Stock ledger: every movement (receipt, sale, return, adjustment, kit assembly) recorded with user, time, reason and source document. Stock on hand is the sum of the ledger. • Orders: imported Salla orders and manually created phone/walk-in orders, with items selected by hand, on one screen. • Returns: barcode scan, item back to stock (or written off with a reason), and a credit note referencing the original invoice. • Kits: assembling a kit moves stock from its components; selling a kit deducts the right quantities. • Commissions: monthly commission per salesperson, from percentage tiers plus fixed amounts on selected products. The rules will be provided. • Reports: sales and VAT per period (matching invoices and credit notes), stock card per product, returns and shipping reports, Excel export. INVOICING (ZATCA PHASE 2, SIMPLIFIED B2C INVOICES) • Each sale gets exactly one tax invoice, from this system only. Salla's VAT setting stays off. • Salla prices include 15% VAT. The VAT is taken out of the amount actually paid AFTER discounts: taxable amount = amount paid ÷ 1.15. Taxable amount + VAT must always equal the amount paid. • Discounts (coupons and special offers), shipping and cash-on-delivery fees are handled correctly. Charges appear as their own lines, and the lines add up to the invoice total. • Money is computed in exact decimals, never floating point. Rounding is half-up to 2 places, once per document. • UBL 2.1 XML, cryptographic stamp (ECDSA + CSID), QR code with all 9 TLV tags, UUID, invoice counter and hash chain. The counter cannot be reset or run in parallel. • Simplified invoices and credit notes are reported to ZATCA within 24 hours. Failures are queued and retried, never dropped. • The issue date and time come from the server clock at the moment of issue, not from the Salla order date, and users can't change them. • Issued invoices can't be edited or deleted. Corrections are made only by credit or debit note. • Onboarding follows ZATCA's steps (OTP, compliance CSID, compliance checks, production CSID), tested in the simulation environment first. • A printed invoice layout will be provided as a reference. USERS AND INTERFACE • Three users: warehouse custodian, admin, owner. Login is required on every screen. Role-based permissions aren't needed in the first release, but the design should allow them to be added later. • Arabic interface first (right to left), usable on desktop browsers with a barcode scanner. • Audit log of who created, changed or cancelled what, and when. TECHNICAL AND OWNERSHIP • You propose the technology stack, with your reasons. • Source code, hosting, domain and ZATCA certificates sit in company-owned accounts. Signing keys are never in the code or repository. • Daily backups with a tested restore. A restored or test copy must not be able to issue live invoices. • One-time payment, no subscription for the system or the e-invoicing module. • Development uses ZATCA simulation credentials only. Production credentials are set up by us at go-live. MILESTONES AND ACCEPTANCE • Milestone 1 - Core: Excel imports, stock ledger, orders, returns, manual orders. - Accepted when test files import correctly, re-imports create no duplicates, duplicate vouchers are refused, and stock cards balance. • Milestone 2 - ZATCA: invoice XML, signing, QR, reporting, credit notes. - Accepted when ZATCA's compliance checks pass in the simulation environment for invoices and credit notes. - Test orders with a coupon, a special offer, shipping and a cash-on-delivery fee must all produce invoices where taxable amount + VAT = amount paid. • Milestone 3 - Handover: commissions, reports, deployment documentation, and a one-month parallel run against our current figures. PLEASE INCLUDE IN YOUR BID • ZATCA Phase 2 projects you've delivered, ideally one we can check. • Any Salla integration experience. • Your proposed stack. • A fixed price and timeline per milestone.
Open job

AI proposal draft

Generate a short cover letter to copy into the offer. Says you are interested and ready to work.

Sign in to generate an AI proposal draft.

Log in