E-Commerce & Omnichannel Storefronts
Build custom online storefronts (Next.js, Nuxt, React, Shopify, WooCommerce) powered by real-time inventory and pricing from your Tracepos warehouse branches.
Omnichannel Architecture
When integrating an online storefront with physical retail stores, the biggest challenges are:
- Preventing Out-of-Stock Overselling: An in-store customer buys the last item 5 seconds before an online buyer checks out.
- Unified Customer Balances: Loyalty points, store credits, and order history must sync between online accounts and brick-and-mortar stores.
- Automated Order Dispatch: Online orders should immediately populate fulfillment queues and delivery dispatch screens.
+---------------------------+ +---------------------------+
| Online Storefront | | In-Store Retail Counters |
| (Next.js / Shopify / Woo)| | (Tracepos Cashier Lanes) |
+---------------------------+ +---------------------------+
\ /
\ /
v v
+-----------------------------------------------------+
| Tracepos Central Warehouse Engine |
| - Atomic Inventory Stock Decrement |
| - Real-Time Webhook Event Broadcast |
| - Automatic Sales Invoicing & Ledger Records |
+-----------------------------------------------------+
|
v
+-----------------------------------------------------+
| Webhook Listener: Updates E-Commerce Webhook |
| "product.updated" -> Updates Shopify/Storefront |
+-----------------------------------------------------+
4-Step Omnichannel Flow
1. Fetch Live Products for Online Display
Retrieve items that belong to the active fulfillment warehouse:
curl -X GET "https://app.tracepos.net/api/v1/public/products?limit=50" \
-H "X-Tracepos-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Tracepos-Secret-Key: YOUR_SECRET_KEY" \
-H "Accept: application/json"
Filter products by category_id or search term to render category and product detail pages.
2. Verify Stock Before Checkout
Before charging the customer's card, verify stock availability:
curl -X GET "https://app.tracepos.net/api/v1/public/products/prod_123" \
-H "X-Tracepos-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Tracepos-Secret-Key: YOUR_SECRET_KEY"
Verify that current_stock >= requested_quantity.
3. Create or Match Customer
Find the customer by phone/email or create a new profile:
curl -X POST "https://app.tracepos.net/api/v1/public/customers" \
-H "X-Tracepos-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Tracepos-Secret-Key: YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Chidinma Okafor",
"email": "[email protected]",
"phone": "+2348012345678",
"address": "Lekki Phase 1, Lagos"
}'
4. Commit Order & Process Online Payment
Once online payment is confirmed (e.g. via Paystack or Stripe), push the sale to Tracepos:
curl -X POST "https://app.tracepos.net/api/v1/public/sales" \
-H "X-Tracepos-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Tracepos-Secret-Key: YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "cust_chidinma_id",
"order_date": "2026-09-30",
"invoice_number": "WEB-ORD-88192",
"product_items": [
{
"xid": "prod_123",
"quantity": 1,
"unit_price": 45000.00
}
],
"subtotal": 45000.00,
"shipping": 2500.00,
"total": 47500.00,
"all_payments": [
{
"amount": 47500.00,
"payment_mode_id": "ONLINE_PAYSTACK",
"reference": "pstk_ref_9928172910"
}
]
}'
Real-Time Inventory Sync via Webhooks
Configure a webhook listener for product.updated and sales.created. When an in-store cashier completes a sale, Tracepos emits an event containing the new current_stock. Your storefront updates its cache immediately, preventing overselling.
