Skip to main content

Shopee Store Management

Integrate your Shopee seller account with Odoo to manage products, orders, customers and settlements. This module connects to Shopee's Open Platform API to synchronize your catalog, import orders, push listings and stock, and track operations through an OWL 2 dashboard built directly into Odoo.

Compatibility: Odoo 17 / 18 / 19 Current version: 19.0.2.2.3 on Odoo 19 (18.0.2.2.3 on Odoo 18, 17.0.2.2.3 on Odoo 17) Price: $549 (one-time), per Odoo major version Licence: OPL-1 -- installs and runs standalone on Odoo 17, 18 and 19, with nothing to switch on afterward

2.2.3 (19.0.2.2.3) — dashboard accessibility and state pass

The dashboard now meets WCAG 2.2 AA in light, mobile and dark mode: the status colours, grey labels and the white-on-blue buttons in dark mode all failed the 4.5:1 contrast minimum and now have AA-safe text tones, and dark mode actually applies (on Odoo 19 the dashboard previously stayed light inside a dark Odoo). Loading, unavailable and no-data are now three distinct states — the tiles show a dash until a load has succeeded instead of a cheerful "100% sync health" over a failure — and the error banner and its Retry button moved under the header, where they were previously off-screen below the fold. The Order Status chart draws (it could render as an empty plot with its legend underneath), both charts show an explicit empty state, four icons that rendered as blank gaps are fixed, and the store-name chip no longer wraps one word per line on a phone. The connector logic is unchanged.

2.2.2 (19.0.2.2.2) — hardened against 36 real-world failure cases

Two shops can no longer overwrite each other's products, orders or contacts (every lookup is scoped to the shop that owns it), the sync counters and completion times are honest (stamped on a successful run only), orders keep Shopee's currency, shipping fee, discounts, payment channel and buyer handle and a cross-currency order with no exchange rate is refused, product sync reads the whole catalogue, the scheduled syncs honour each shop's Sync Frequency, the dashboard opens for every shop and names its state, and Test Connection proves the connection against Shopee's get_shop_info. Each case is covered by an automated test on the Odoo 17, 18 and 19 builds.

2.2.1 (19.0.2.2.1) — company boundaries

In a multi-company database the Shopee dashboard and sync endpoints now work only with the connections of the companies you are working in, and starting a sync is reserved for Shopee Managers. The Test Connection wizard now tests the credentials you type, customer sync no longer files a buyer twice, the scheduled inventory sync now pushes your on-hand stock to Shopee, and the Odoo 17 and 18 builds are level with Odoo 19 (including Authorize with Shopee and automatic token renewal).

Key Features​

  • Open Platform API integration, with region-specific hosts and HMAC-signed requests
  • 12 marketplace regions selectable per shop: SG, MY, TH, TW, ID, VN, PH, BR, MX, CO, CL, PL
  • Product import from Shopee, hydrated from item base info
  • Product, price, image, variant and stock export to Shopee, with per-option control
  • Barcode / GTIN preflight that blocks a malformed listing before Shopee rejects it
  • Order import, with buyers and products resolved or created from the order
  • Auto-workflow, including optional payment validation on the posted invoice
  • Settlements, refunds, returns and risk flags under a Finance menu
  • Analytics records and daily digests
  • Category, attribute, shipping-method and payment-method mapping
  • Signature-verified webhook receiver with a local pause switch
  • Multi-region enforcement: a single-region shop refuses rows for other markets
  • OWL 2 dashboard with KPIs, a Shopee-only sales trend, and an order-status chart
  • Multi-company record isolation and per-configuration access
  • Shop-scoped matching: two shops never overwrite each other's products, orders or contacts
  • Test Connection against Shopee's authenticated get_shop_info, reporting Shopee's own reason on failure

Prerequisites​

  • Odoo 17, 18, or 19 (Community or Enterprise edition)
  • Your ECOSIRE purchase for this module and your Odoo version
  • A Shopee Open Platform developer account (registered at open.shopee.com as a Registered Business Seller or Individual Seller for your own shop) with a live Seller In-house System app — its Live Partner_id and Live Key — and the shop authorized to that app

Installation​

  1. Download the module ZIP from your ECOSIRE Dashboard
  2. Extract to your Odoo addons directory:
    unzip ecosire-shopee-*.zip -d /opt/odoo/addons/
  3. Restart the Odoo service:
    sudo systemctl restart odoo
  4. Navigate to Apps, click Update Apps List
  5. Search for Shopee Store Management and click Install

Configuration​

Step 1: Obtain Shopee API credentials​

The full, screen-by-screen procedure is in Connect to Shopee — step by step on the installation page, rewritten from the shipped build and Shopee's current Open Platform guides on 17 September 2026. In outline:

  1. Register at Shopee Open Platform (Log In → Sign up), then in Console → App Management → App List apply as a Shopee Seller (Registered Business or Individual). Shopee approves seller accounts in about 3 working days.
  2. Console → Create App, App Type Seller In-house System. Then select the app and click Go Live; after Shopee's review (about 24 hours) the app's App Key section shows the Live Partner_id and Live Key.
  3. Edit the app and set the Live Redirect URL Domain to your Odoo host's domain — it must match the /shopee/callback address Odoo hands to Shopee when you authorize.

That is everything on the Shopee side: the shop itself is authorized from Odoo in Step 2.

Step 2: Connect in Odoo​

  1. Navigate to Shopee → Configuration → Settings and click New
  2. As an Odoo administrator enter the Partner ID (Live Partner_id) and Partner Key (Live Key); assign the Odoo Company. Leave Shop ID, Access Token and Refresh Token empty — the authorization fills them
  3. Select the Region the shop sells in (e.g. Thailand, Malaysia, Singapore)
  4. Save and click Authorize with Shopee in the header. Sign in on Shopee's page with the shop account, confirm the verification code, choose the authorization period and confirm. Shopee returns the browser to Odoo, which stores the tokens, the shop id and the shop name and shows Shopee shop connected. Back on the form, Authorized is ticked and the button reads Re-authorize
  5. Click Test Connection. Connected means Shopee accepts the token. The scheduled action shopee: Refresh Access Tokens renews the 4-hour token every 3 hours from now on; if a message ever says Shopee rejected the refresh token, the seller's authorization period ended — click Re-authorize
  6. Create one configuration per shop if you run several. If a shop serves more than one region, switch on Multi-Region before adding rows for the second market — a single-region configuration refuses them
Upgrading from 19.0.2.1.3 or earlier, or from an Odoo 17 or 18 build before 2.2.1

Those builds stored a token that had to be obtained outside Odoo and could not be renewed. After upgrading to 19.0.2.2.0 or later (2.2.1 on Odoo 17 and 18), open each configuration and click Authorize with Shopee once; from then on the token renews itself.

Step 3: Configure Sync Settings​

On the configuration record, switch on only the areas you are ready for — Sync Products, Sync Orders, Sync Customers, Sync Inventory — and turn them on one at a time. The Auto Sync flags decide which configurations the scheduled actions pick up; the module ships seven scheduled actions (access-token renewal every 3 hours, products hourly, orders every 30 minutes, inventory every 15 minutes, customers every 6 hours, plus a daily connection test and log cleanup).

Then set up the mappings under Shopee → Configuration → Master Data, so imported data lands on the right Odoo records:

  • Category mapping — Shopee categories to Odoo product categories
  • Product attributes and terms — Shopee attributes to Odoo variant attributes
  • Shipping methods — Shopee logistics channels to Odoo carriers
  • Payment methods and gateways — Shopee payment methods to Odoo journals
  • Order status mapping — Shopee order states to the module's order states

Initial Sync​

  1. Go to Shopee → Operations → Import Wizard
  2. Select the data types to import (Products, Customers, Orders)
  3. Set the date range for historical orders
  4. Start the import and monitor progress in the sync log
  5. Review the mapping records and re-run if anything landed on the wrong Odoo record

Run a small import first — restrict it by date or to a handful of products — and check the results before letting the scheduled actions take over.

To push the other way, use Shopee → Operations → Export Wizard. Run Barcode Preflight on your products first: the export refuses to push a product whose barcode is not a structurally valid GTIN, because Shopee rejects a malformed barcode at listing time and the failure is much harder to read from the far side.

Dashboard​

The OWL 2 dashboard provides:

  • KPI tiles — revenue, orders, customers, products, average order value and sync health, each with a period-over-period delta
  • Sales trend — a line chart counting Shopee orders only, formatted in the record's own currency
  • Order status breakdown — a doughnut chart across order states
  • Period filters — today, 7 / 30 / 90 days, year, or a custom range
  • Activity feed — recent sync log entries, with drill-downs
  • Status footer — queue jobs, errors, out-of-stock and sync rate

Troubleshooting​

IssueSolution
Connection failedVerify the Partner ID and Partner Key, check network connectivity, then click Authorize with Shopee again
Shopee rejected the refresh tokenThe seller's authorization period ended or the app was revoked in Seller Centre. Click Re-authorize on the configuration
Sync not runningCheck Odoo scheduled actions (cron jobs) are enabled, and that the configuration's Auto Sync flag for that lane is on
'ShopeeAPI' object has no attribute 'get_products'An Odoo 19 build older than 19.0.2.1.1. Upgrade the module.
Duplicate productsReview product mapping settings and matching rules
Orders not importingVerify order status filters and date range settings
Export skips a productIts barcode has not passed Barcode Preflight, or is not a valid GTIN
Rows rejected for another regionThe configuration is single-region. Switch on Multi-Region first.
Webhook deliveries are refusedThe webhook record is paused, or its Delivery URL does not exactly match the Push URL registered in the Shopee console

Support​