Skip to main content

Takealot Store Management

The ECOSIRE Takealot Store Management module connects your Takealot seller account to Odoo. Takealot is South Africa's largest online retailer. The module talks to the official Takealot Seller API to manage your offers, import your sales, and reconcile your settlement statements.

Compatibility: Odoo 17 / 18 / 19 (Community or Enterprise) Current shipped version: 17.017.0.2.1.9, 18.018.0.2.1.9, 19.019.0.2.1.9 Price: $499 USD (one-time, per Odoo version) License: One ECOSIRE licence per Odoo major version — a licence issued for Odoo 17 will not activate on 18 or 19

Installing for the first time?

This page is the overview. The step-by-step download, licence-activation and configuration guide lives at Takealot Store Management — installation & configuration.

What this module does

  • Offers — list, count and update your Takealot offers; create new offers against an existing Takealot PLID; stock counts and stock-health statistics
  • Sales & orders — scheduled import of your Takealot sales orders into Odoo, with customer records derived from order data, plus per-order customer invoices
  • Returns — import seller returns and their detail, and raise or update a return dispute (the seller-side action the Seller API supports)
  • Finance — import settlement statements and attach the statement document; settlements post a balanced journal entry with per-fee-type expense lines and the VAT contained in them
  • Catalogue — Takealot PLID lookup, Add-a-Product categories, category attribute expansion, brand search
  • Webhooks — register, list, test and delete webhook subscriptions against the real /webhooks resource
  • Reports — request an async report task, poll its status, and download the result
  • Operations — queue-based async processing, scheduled polling, an OWL dashboard, and multi-company record rules

What this module does not do

The Takealot Seller API is, in Takealot's own words, "the initial phase of the Seller API". Some things you may expect from other marketplace connectors are not possible, because the platform exposes no endpoint for them. This module does not fake them:

  • No shipment or order-status push. Fulfilment status flows from Takealot to Odoo. There is no seller-side endpoint to mark an order shipped, cancel it, or set its status on Takealot.
  • No returns approve/reject. Returns are handled through the dispute flow, not an approve/reject call.
  • No stock-quantity write endpoint. Stock is a property of an offer, updated through the offer, not a separate inventory API.
  • No payouts or adjustments endpoints. Statement documents and their downloadable files are what the API exposes; line-level amounts come from the statement file.
  • No brand-request or product-submission endpoint. New products go through Takealot's own Add-a-Product / loadsheet flows in the Seller Portal.

Prerequisites

  • Odoo 17, 18, or 19 (Community or Enterprise)
  • An active ECOSIRE licence for this module and your Odoo major version
  • A Takealot seller account with Seller API access enabled
  • An API key generated from the Takealot Seller Portal (API Integration → Seller API → Authentication). Only the account owner can generate one, and there is one key per account.

Quick start

  1. Download the ZIP for your Odoo version from your ECOSIRE dashboard.
  2. Extract it into your Odoo addons directory and restart Odoo.
  3. Apps → Update Apps List, search for Takealot Store Management, install.
  4. Activate your ECOSIRE licence at Settings → ECOSIRE.COM.
  5. In Takealot Store Management → Configuration, create a configuration, paste your API key, and click Test Connection.
  6. Run the initial import from Operations, then let the scheduled actions take over.

Full detail — including how to obtain a licence, the scheduled-action list, and troubleshooting — is in the installation & configuration guide.

What's new in 2.1.5–2.1.9

  • 2.1.8: VAT-inclusive pricing is one dropdown. Set a price-included 15% Takealot Sales Tax (plus an optional zero-rated/exempt tax) on the connection and imported orders invoice at the Takealot listing price — R249 stays R249. Per-product ZA VAT flags are on the product form's Takealot tab.
  • 2.1.8: administrators see every menu. Manager and Administrator now include the Finance, Operations and Analytics roles, so Payouts, Settlements, VAT201, DC Inbound and Analytics appear without extra user setup. Upgrading repairs existing databases.
  • 2.1.8: dashboard accuracy. The chart tooltip uses your company currency instead of a hardcoded $, the Customers card counts buyers in the selected period, and the mislabelled "Return Rate" is now Cancellation Rate. Reconcile on a payout with no captured lines says so instead of reporting success.
  • Date-filtered imports now use the dates you choose. Order and customer imports always send the Seller API's required start and end dates, while refund and payout imports honour the Operations wizard's full date range.
  • Warehouses and imported orders now line up. Import Locations creates or updates the seller's merchant warehouses, Takealot distribution centres found in the offer feed appear as locations ready for you to map, and draft imported orders inherit the instance's Default Warehouse. Confirmed orders are never rewritten.
  • Stock import works across both Takealot stock families. The connector reads stock held at Takealot distribution centres and lead-time stock held at merchant warehouses, aggregates locations mapped to the same Odoo warehouse, and creates imported products as stockable products.
  • Returns and finance dates accept the formats Takealot actually sends. Epoch seconds or milliseconds, ISO timestamps and date-only values are parsed consistently for returns, statements and payouts, so real rows are no longer dropped or treated as outside the chosen window.
  • Empty and failed runs are explicit. A seller with no returns is distinguished from a failed request, missing financial permissions produce a clear error, archived ZAR is reactivated instead of duplicated, and Operations reports created, updated and failed counts.
Version availability

All three builds — Odoo 17, 18 and 19 — ship 2.1.9, which includes every fix above.

API details

FieldValue
Auth methodStatic API key in the Authorization header, formatted Key <api_key> (not Bearer)
Base endpointhttps://seller-api.takealot.com/v2
Offers/offers, /offers/count, /offers/offer/{identifier}, /offers/stock_counts
Sales & orders/sales, /sales/summary, /sales/orders, /sales/orders/{order_id}/customer_invoices
Returns/returns, /return/{seller_return_id}/details
Finance/financial/statements, /financial/statement/download/{financial_document_id}
Webhooks/webhooks, /webhooks/{webhook_id}, /webhooks/test
Rate limitingPer-endpoint throttling; HTTP 429 with a Retry-After header
Paginationpage_number + page_size (max 100)
MarketplaceSouth Africa only — ZAR, country ZA
Official docsseller-api.takealot.com/api-docs

Dashboard

The built-in OWL dashboard provides:

  • KPI cards — Revenue, Orders, Customers, Products, Average Order Value and Sync Health, each with a period-over-period delta
  • Sales trend line chart with date filtering, and an order-status doughnut chart
  • Period filters — Today, 7 days, 30 days, 90 days, Year, or a custom range
  • Activity feed of recent sync log entries, and quick actions for Products, Orders, Customers, Queue, Logs and Settings
  • Status footer — queue jobs, errors, out-of-stock and sync rate
  • Auto-refresh, with dark-mode support

Troubleshooting

IssueSolution
Connection failedVerify the API key and that Seller API access is enabled. The header must be Authorization: Key <api_key>Bearer will return 401.
401 UnauthorizedRegenerate the API key in the Seller Portal. Only the account owner can do this, and regenerating invalidates the previous key.
HTTP 429You are being throttled. The module honours Retry-After; if it persists, lengthen your sync intervals.
Sync not runningCheck that the Odoo scheduled actions for this module are active.
Orders not importingVerify the date range and filters on the import. Orders arrive as flat order-item rows and are grouped per order.
Duplicate productsReview the PLID/SKU mapping — a Takealot PLID is an integer, the SKU is your own string.
Settlement shows no amountsLine-level amounts live in the statement file, which is attached to the record — the JSON listing returns document metadata only.
Licence not activeCheck the key at Settings → ECOSIRE.COM, and confirm it was issued for the Odoo major version you are running.

Support