Skip to main content

Temu Store Management

Temu Store Management connects a Temu seller account to Odoo. This page is the installation and configuration guide for the module you downloaded from your ECOSIRE dashboard. Everything below describes the temu_store_management module as it ships today.

Technical nametemu_store_management
Odoo versions17.0, 18.0, 19.0 (Community or Enterprise)
Current shipped version17.0 → 17.0.2.2.1, 18.0 → 18.0.2.2.1, 19.0 → 19.0.2.2.1
Price$499 USD — one-time, per Odoo version
Odoo module licenceLGPL-3
CategoryConnector
What changed in 2.2.1

Dashboard and sync endpoints now respect company boundaries.

  • Company boundaries. In a database with more than one company, the dashboard and the status and sync endpoints could reach the Temu connection, orders and sync activity of another company. They now work only with the connections of the companies you are currently working in (the company switcher), and a connection of another company is refused without returning anything about it. We recommend every multi-company installation upgrades.
  • Only Temu Managers start a sync. Starting a sync from the dashboard, the Sync buttons or the sync endpoint now requires the Temu Manager group. Temu Users keep their read access. Scheduled syncs are unaffected.

Requirements​

RequirementDetail
Odoo17.0, 18.0 or 19.0, Community or Enterprise. Self-hosted or Odoo.sh — Odoo Online (SaaS) cannot install third-party modules
Odoo appsbase, sale_management, stock, account, delivery, mail, web, product, contacts, knowledge — Odoo installs any that are missing
Python packagesrequests
Platform accountA Temu seller/partner account with API access

Install the Python packages into the same interpreter that runs Odoo:

sudo -u odoo pip install requests

Installation​

1. Download the ZIP for your Odoo version​

Sign in at ecosire.com and open your dashboard downloads, or use the ZIP you received from the Odoo App Store.

2. Extract into your addons path​

unzip temu_store_management_v19_*.zip -d /opt/odoo/addons/
ls /opt/odoo/addons/temu_store_management/__manifest__.py # sanity check

The archive contains a single top-level temu_store_management/ directory. If your ls check fails, the module folder ended up one level too deep — move it up so __manifest__.py sits directly inside temu_store_management/.

3. Restart Odoo and install​

sudo systemctl restart odoo
  1. Go to Apps and click Update Apps List (developer mode must be on).
  2. Search for Temu Store Management and click Install.
  3. Odoo pulls in the Odoo apps listed above automatically.

When the install finishes, a Temu menu appears in the main Odoo app switcher.

Licensing​

temu_store_management installs and runs standalone on Odoo 17, 18 and 19 -- there is no separate ECOSIRE dependency to install first, no key to enter and nothing to switch on afterward. Your use of the module is governed by the OPL-1 licence.

Configuration​

Connect to Temu​

Open Temu → Configuration → Settings and create a record (model temu.configuration). The connection fields are:

LabelTechnical nameRequiredValues
App Keyapp_keyYesText
App Secretapp_secretYesText
Access Tokenaccess_tokenNoText
Refresh Tokenrefresh_tokenNoText
Temu Regiontemu_regionYesSelection: US, EU
Mall Typetemu_mall_typeYesSelection: semi_managed, fully_managed

App Key and App Secret are required. Temu Region (US / EU) and Mall Type (semi_managed / fully_managed) are also required — they change both the API host and the fulfilment behaviour, so set them before the first sync.

The same record carries 7 behaviour checkboxes — sync_products, sync_orders, sync_customers, sync_inventory, auto_sync_products, auto_sync_orders and auto_sync_customers. They gate what the connector is allowed to do automatically once it is connected. Leave anything you are not ready for switched off, and turn them on one at a time.

Credentials are issued from the Temu Partner Platform — see partner.temu.com/documentation. The connector talks to openapi-b-us.temu.com/openapi/router (US) or openapi-b-eu.temu.com/openapi/router (EU), selected by Temu Region.

EU DAC7 and GPSR readiness is worked out on each product, and the US Section 321 (de-minimis) verdict on each Temu order, so there is no switch to turn them on. Earlier versions showed switches for them and for Saudi ZATCA Phase 2; those switches changed nothing and were removed in 2.2.1.

When the fields are filled in, click Test Connection. It asks Temu about your access token, which proves the credentials and the region together. The record's status moves to connected only when the platform answers successfully — do not run a first import until it does.

Public endpoint: the webhook receiver​

The module registers one publicly reachable HTTP route. It is the only endpoint on this module served without an Odoo login, so it is worth knowing exactly what it does before you expose your instance.

EndpointMethodAuthPurpose
/temu/webhookPOSTpublic (no Odoo session)Receives inbound Temu event deliveries

This receiver currently rejects every delivery, on purpose. ECOSIRE's platform contract for Temu does not pin an inbound delivery-signature scheme, which means a payload arriving at /temu/webhook cannot be proven to have come from Temu rather than from anyone else who can reach your instance. Rather than trust an unsigned payload, signature verification fails closed: the endpoint answers HTTP 403 with {"status": "rejected", "message": "signature verification failed"} and processes nothing from the request.

What that means for you in practice:

  • You do not need to register this URL with Temu. Pointing Temu at it will produce nothing but 403s.
  • Your data still syncs. Product, order, customer and inventory syncing on this connector is driven by the scheduled actions below, which poll the Temu API on your behalf. Real-time push is not how this connector stays current.
  • The route is safe to leave exposed. It reads the request body and headers, finds no verifying webhook record, logs the rejection with the caller's IP, and returns. Nothing is written and no record is created.
  • The temu.webhook records under the connector's menu (name, topic, delivery URL, secret, delivery and failure counters) exist so the receive path is ready the day a signed Temu delivery scheme is available. They do not enable inbound push today.

The module's remaining routes — /temu/api/status, /temu/api/sync and /temu/dashboard/data — are internal JSON-RPC endpoints used by the module's own screens. They require a logged-in Odoo user and are not part of your external setup.

Scheduled actions​

The module installs 6 scheduled actions (Settings → Technical → Scheduled Actions):

Scheduled actionRuns everyEnabled on install
temu: Sync Products1 hoursYes
temu: Sync Orders30 minutesYes
temu: Sync Customers6 hoursYes
temu: Sync Inventory15 minutesYes
temu: Test Connection1 daysYes
temu: Cleanup Old Logs1 daysYes

Intervals above are the shipped defaults. Adjust them to your volume — but be aware that the platform, not Odoo, sets the API rate limits, and shortening a sync interval is the usual cause of throttling errors in the logs.

Using the module​

The Temu menu is laid out as:

  • Temu → Dashboard
  • Temu → Products
  • Temu → Orders
  • Temu → Customers
  • Temu → Operations — Import Wizard, Mapping Wizard, Test Connection, API Console (managers), Logs, Reports
  • Temu → Configuration — Settings
  • Temu → Premium (v19.0.2) — Orders (Shadow), Products (Shadow), Product Images, Customers (Masked), Collections, Locations / FCs, Carriers, Returns, Refunds, Risk / Fraud, Settlements, Analytics, Workflow, Auto-Workflow Rules, Daily Digests

A normal first run is:

  1. Test Connection until the instance reads connected.
  2. Review the mapping records (categories, order statuses, payment and shipping methods) so imported data lands on the right Odoo records.
  3. Run a small import first — restrict it by date or by a handful of products — and check the results before letting the scheduled actions take over.
  4. Watch the Logs view during the first full sync. Every sync writes a log line; failures are recorded there rather than raised at the user.

Module-specific notes​

  • Temu Region and Mall Type are both required and change behaviour, not just labels: the region selects the API host, and semi_managed vs fully_managed determines whether you or Temu own fulfilment. Set them before the first sync.
  • The Premium menu groups the shadow records (orders, products, customers), returns, refunds, risk, settlements and analytics.

Troubleshooting​

Syncing​

SymptomCause and fix
Test Connection failsRe-check every required field in the table above. Most failures are a mistyped secret, a Temu Region that does not match the tenant your shop is on (US and EU are separate tenants), or credentials created for the sandbox while the connector points at production (or vice-versa). On versions before 2.2.1 the test failed on every US and EU shop; update first.
Nothing syncs even though the connection is fineThe scheduled actions are disabled at the Odoo level, or Odoo's cron worker is not running. Check Settings → Technical → Scheduled Actions and that --max-cron-threads is greater than zero.
Sync starts then stops part-wayRead the Logs view for that run. Rate limiting and rejected field values are the two common causes; both are logged with the platform's own error text.
Records import but map to the wrong Odoo valuesFix the mapping records under the module's configuration, then re-run the import.
Duplicated products or customersRun the initial import once. If a first attempt half-finished, check the existing records before re-running rather than importing on top.

Version history​

Odoo versionVersion you download today
17.017.0.2.2.1
18.018.0.2.2.1
19.019.0.2.2.1

ECOSIRE module versions are <odoo major>.<module major>.<minor>.<patch>, so 19.0.2.0.3 is the Odoo 19 build of module version 2.0.3. Your installed version is shown in Apps.

Support​