Shopee Store Management
This is the installation and configuration guide for Shopee Store Management, the module you downloaded from your ECOSIRE dashboard. Everything on this page describes the shopee_store_management module exactly as it ships today — the facts below were read out of the released build, not from a roadmap.
| Technical name | shopee_store_management |
| Odoo versions | 17.0, 18.0, 19.0 (Community or Enterprise) |
| Current shipped version | 17.0 → 17.0.2.0.2, 18.0 → 18.0.2.0.2, 19.0 → 19.0.2.1.3 |
| Price | $549 USD — one-time, per Odoo version |
| Odoo module licence | 19.0 → OPL-1, 17.0 / 18.0 → LGPL-3 |
| Licence key | 19.0 → not required, 17.0 / 18.0 → required |
| Category | Connector |
From 19.0.2.1.0 the Odoo 19 build no longer depends on ecosire_license_client and contains no
activation check: you install the ZIP and the module works. Your rights are governed by the OPL-1
licence it ships under, and support and updates still follow your purchase.
The Odoo 17 and 18 builds are still on the earlier packaging: they require the free licence client module and an activation key. Everything in Activate your licence applies to those two versions only.
Upgrading an Odoo 19 database from a 2.0.x build? You may uninstall ecosire_license_client
afterwards, unless another ECOSIRE module in the same database still needs it.
Each Odoo major version is a separate product: your purchase entitles you to the download for the Odoo version you bought, and on Odoo 17 and 18 a licence issued for one major version will not activate on another. Buy the version you actually run, and if you later upgrade Odoo you need the build for the new version.
Requirements
| Requirement | Detail |
|---|---|
| Odoo | 17.0, 18.0 or 19.0, Community or Enterprise. Self-hosted or Odoo.sh — Odoo Online (SaaS) cannot install third-party modules |
| Odoo apps | base, sale_management, stock, account, delivery, mail, web, product, contacts — Odoo installs any that are missing |
| ECOSIRE dependency | Odoo 17 / 18: ecosire_license_client — a separate free download, not bundled in this ZIP. See step 3. Odoo 19: none |
| Python packages | requests |
| Platform account | A Shopee account with API access |
| Licence | Your purchase for this module and your Odoo version. On Odoo 19 no key is entered in Odoo |
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. You will only be offered the file matching your purchase's Odoo version — that is expected, see the warning above.
2. Extract into your addons path
unzip shopee_store_management_v19_*.zip -d /opt/odoo/addons/
ls /opt/odoo/addons/shopee_store_management/__manifest__.py # sanity check
The module must end up as a single top-level shopee_store_management/ directory with __manifest__.py directly inside it. If your ls check fails, the folder landed one level too deep or too shallow — move it so the path above resolves.
3. Install the ECOSIRE licence client (Odoo 17 and 18)
Skip this step on Odoo 19 — that build has no ECOSIRE dependency.
On Odoo 17 and 18, shopee_store_management declares ecosire_license_client as a hard dependency, so Odoo will refuse to install this module until the licence client is present in your addons path. The licence client is a separate, free module and is not bundled in this ZIP. Download it from your ECOSIRE dashboard alongside the connector and extract it the same way:
unzip ecosire_license_client_v18_*.zip -d /opt/odoo/addons/
The licence client is distributed separately from the connector archives. If you cannot see it in your downloads, email info@ecosire.com with your licence key and we will send it to you — do not try to install the Odoo 17 or 18 connector without it, because Odoo will simply refuse.
4. Restart Odoo and install
sudo systemctl restart odoo
- Go to Apps and click Update Apps List (developer mode must be on).
- Search for Shopee Store Management and click Install.
- Odoo pulls in the Odoo apps listed above automatically — plus
ecosire_license_clienton Odoo 17 and 18.
When the install finishes, a Shopee menu appears in the main Odoo app switcher.
Activate your licence (Odoo 17 and 18)
Odoo 19 does not use a licence key; skip this whole section.
How to obtain a licence key
The steps below activate a key you already hold. This is how you get one in the first place.
- Create an ECOSIRE account at ecosire.com, using the email address you want the licence issued to. Your keys and your downloads both live in that account's dashboard.
- Buy the module — either directly on ecosire.com, or from the Odoo App Store.
- Bought on ecosire.com? The key is issued to your dashboard automatically once the order completes. Nothing else to do.
- Bought on the Odoo App Store? Send us proof of purchase: email
info@ecosire.comfrom the same address as your ecosire.com account, with the Odoo sales-order slip or order reference (the purchase receipt Odoo emails you at checkout). The App Store does not tell ECOSIRE who bought what, so this is how we match your purchase to your account. - We issue the key to your dashboard, next to the ZIP for your Odoo version, in the form
ECO-XXXX-XXXX-XXXX.
The key is issued against the Odoo major version you bought — see the warning at the top of this page. Tell us which version you run when you send proof of purchase, so we issue the right one.
Before you activate
Set your instance's public URL first. The licence is bound to the domain derived from web.base.url, so activating with a placeholder value binds the licence to the wrong host:
- Turn on developer mode.
- Settings → Technical → System Parameters, find
web.base.url. - Set it to the real HTTPS URL your users browse to, e.g.
https://erp.example.com.
Activate
- Go to Settings → ECOSIRE.COM → Activate License.
- Paste your licence key.
- Choose Shopee Store Management in the module dropdown (it lists the installed ECOSIRE modules).
- Click Activate.
Settings → ECOSIRE.COM → License Status then shows, per module, the licence state, last-verified time, Odoo version, module version, support expiry, and whether an offline token is cached.
What the client sends
Activation and validation are HTTPS JSON calls to https://api.ecosire.com/api. Every request carries the same five fields:
{
"key": "ECO-XXXX-XXXX-XXXX-XXXX",
"module_name": "shopee_store_management",
"domain": "erp.example.com",
"hw_fingerprint": "<sha256 of this installation's hardware/db identity>",
"odoo_version": "18.0"
}
| Endpoint | Used for |
|---|---|
POST /api/licenses/activate | First-time activation — binds the licence to this domain |
POST /api/licenses/validate | Ongoing verification |
POST /api/licenses/issue-token | Fetches the signed offline token used for the grace period |
POST /api/licenses/deactivate-self | Releases this domain so the key can move to another database |
The base URL is overridable through the ecosire.license.api_url system parameter. You do not need to change it.
Activation slots, and moving between databases
Each licence carries its own activation limit, and new licences default to a single domain. Some licences are issued with more. Do not assume a number — check Settings → ECOSIRE.COM → License Status, or the licence detail page in your ECOSIRE portal, for the limit on yours. Re-activating on a domain that is already bound is a no-op success, not a second slot.
- To move a live licence to a different database, use Deactivate on the activation screen first; that releases the domain server-side so you can activate elsewhere.
- Ten failed activation attempts within one hour trips a client-side rate limiter. Wait up to 60 minutes, or contact support — do not keep retrying a key you are unsure about.
Staying licensed after activation
A daily scheduled action, ECOSIRE License: Background Re-verification, re-checks the licence out of the request path, refreshes the cached offline token, and keeps the last-known-good timestamp fresh. Because of that, a transient network problem or a worker restart does not lock you out. Verification results are cached for five minutes, so a licence change can take a few minutes to show up.
If you see a hard rejection instead — LICENSE_NOT_FOUND, LICENSE_INACTIVE, LICENSE_EXPIRED, MODULE_MISMATCH, VERSION_MISMATCH or NOT_ACTIVATED_ON_DOMAIN — the grace period is deliberately not granted; fix the underlying problem. See Troubleshooting.
Configuration
Connect to Shopee — step by step
This section was rewritten on 17 September 2026 from a fresh installation
of the current Odoo 19 build (19.0.2.1.3) and from Shopee Open Platform's
own Developer account registration, App management and Authorization and
Authentication guides as they read on that date (last updated by Shopee on
10 September, 24 April and 23 July 2026 respectively). It has two halves:
what you do on Shopee Open Platform, then what you do in Odoo.
Shopee issues an access token that lasts 4 hours and a refresh token
that lasts 30 days, and expects the connected system to renew the access
token before it expires. The 19.0.2.1.3 build stores the pair you obtain in
Half A but does not yet renew it on its own, and it has no button to run the
shop authorization from Odoo. Automatic renewal and an Authorize with
Shopee button are in the next update. Until it reaches you, do Half A once
to connect the shop, then write to info@ecosire.com:
integration support is included with your purchase and we keep the shop's
token current for you at no charge.
Half A — Shopee Open Platform
Shopee's developer console is Shopee Open Platform:
https://open.shopee.com (Brazil: open.shopee.com.br; mainland China:
open.shopee.cn). The Console link at the top of that site opens the App
List.
A1. Register a developer account. On the Open Platform homepage select Log In → Sign up, enter an email (it cannot be changed later), confirm the verification code and set a password. Then open Console → App Management → App List and choose your account type:
| You are | Choose | Note |
|---|---|---|
| A company selling on Shopee, connecting your own shop | Shopee Seller → Registered Business Seller | You are redirected to log in with your Seller Centre account to verify it, then fill the seller identification form (Key Account Manager email may be left blank) |
| An individual selling on Shopee | Shopee Seller → Individual Seller | Same flow; identification documents required |
| A software vendor serving other sellers | Third-party Partner Platform (ISV) | Business documents and a live product URL required |
Shopee processes seller applications in 3 working days (7 in Indonesia) and ISV applications in 10. Approval arrives by email. Shopee also applies per-market eligibility rules to seller accounts — for example Thailand currently requires a Mall or Managed seller, Malaysia a Mall, registered business or recently active seller — so check the Eligibility Criteria table on Shopee's registration page for your market before applying.
A2. Create the app. Once approved, open Console → Create App. Under Basic Information set the App Type to Seller In-house System (the type a seller uses for its own shop; it has every v2 API including chat), the App Name, a description and a logo. Creating the app gives you a Test Partner ID and Test Key — those work only in Shopee's sandbox, not against your live shop.
A3. Go live. Select the app in the App List and click Go Live, fill in the Go Live form (it includes a declaration of the IT assets and IP addresses your Odoo server calls Shopee from), and submit. Shopee reviews it in about 24 hours. Once the app is Online, the App Key section of the app shows the Live Partner_id and Live Key — the pair the Odoo form needs.
A4. Set the Redirect URL Domain. Edit the app and fill the Live
Redirect URL Domain (and, if you will use the sandbox, the Test Redirect
URL Domain) with the domain of your Odoo instance — for example
erp.example.com. Shopee validates the redirect address in every
authorization link against this domain. If the field is empty Shopee does
not validate it, but fill it: an unvalidated redirect is a security gap.
A5. Authorize the shop. Shopee's current authorization link is an unsigned URL. In the App List, a Seller In-house System app shows an Authorize button — click it, enter the redirect URL and Shopee generates the link for you. The link has this shape:
https://open.shopee.com/auth?partner_id=<Live Partner_id>&auth_type=seller&redirect_uri=https://<your-odoo-host>/&response_type=code
Open it in a browser and sign in with the shop account (not a sub-account — sub-accounts cannot log in to the authorization page), enter the verification code Shopee sends to the shop's phone, click Confirm Authorization and choose the authorization period (7, 30, 90, 180 or 365 days, or a custom date within 365 days). Shopee then redirects the browser to your redirect address with two values in the query string:
https://<your-odoo-host>/?code=xxxxxxxxxx&shop_id=xxxxxx
Copy both. The code can be used once and expires after 10 minutes;
the shop_id is your shop's identifier and goes into the Odoo form. (A main
account authorizing several shops returns main_account_id instead; the
connector is configured per shop, so authorize with the shop account.)
A6. Exchange the code for tokens. Within the 10 minutes, call Shopee's
GetAccessToken endpoint with the code. The call is a signed POST to
https://partner.shopeemobile.com/api/v2/auth/token/get with the code,
shop_id and partner_id in the body and a signature over
partner_id + api_path + timestamp computed with the Live Key — Shopee's
Authorization and Authentication guide shows the exact request in Python,
Java and PHP. The response carries the access_token (valid 4 hours), the
refresh_token (valid 30 days) and expire_in. If you would rather not
run this yourself, send us the code and shop id the moment you have them and
we run the exchange for you.
A7. The seller can revoke at any time in Seller Centre → Platform Partner, where every authorized app is listed with its expiry; when the authorization period ends the shop must authorize again (repeat A5–A6).
Half B — Odoo (19.0.2.1.3)
Sign in as a user who is a Shopee Manager (Settings → Users → the user → Shopee access field). Managers see the Configuration and Operations menus.
B1. Open the configuration list. From the Odoo apps menu open Shopee, then Configuration → Settings, and click New. One record is one shop.
B2. Fill the Connection group.
| Field | Value |
|---|---|
| Configuration Name | Any name, e.g. the shop's trading name |
| Partner ID | The Live Partner_id from Open Platform (A3) |
| Partner Key | The Live Key from Open Platform (A3) |
| Shop ID | The shop_id Shopee returned in the redirect (A5) |
| Access Token | From the token exchange (A6) — the field is shown to Odoo administrators only |
| Refresh Token | From the token exchange (A6) — administrators only |
| Region | The market the shop sells in: Singapore, Malaysia, Thailand, Taiwan, Indonesia, Vietnam, Philippines, Brazil, Mexico, Colombia, Chile or Poland |
| Multi-Region | Leave off for a single-market shop |
| Timeout (seconds) | Leave at 30 |
| Company (in the Status group) | The Odoo company that owns this shop's orders and stock |
Shopee URL can stay empty — the build calls partner.shopeemobile.com
for every region.
B3. Save, then click Test Connection in the form header. The
connector calls Shopee's Get Shop Info with the stored token. On success
Connection Status turns to Connected and Last Connection Test is
stamped; on failure it turns to Error and Connection Error Message
shows Shopee's reply. error_auth, error_token or invalid_access_token
means the access token is missing, wrong, or older than 4 hours — obtain a
current one (see the note at the top of this section). Operations → Test
Connection runs the same check as a wizard, without saving anything.
B4. Choose what synchronizes — the Synchronization tab. Data Types (Sync Products, Sync Orders, Sync Customers, Sync Inventory) decide which areas the connector may touch; Automation (Auto Sync Products, Auto Sync Orders, Auto Sync Customers, and Sync Frequency) decides which scheduled actions pick this shop up. The automation switches are off by default.
B5. First synchronization. Click Sync Products and Sync Orders in the header, or use Operations → Import Wizard for a guided run with a preview. Imported products appear under Products (and Shopee Products for the Shopee-side records), orders under Orders.
B6. Where errors show. Connection Status / Connection Error Message on the configuration; Operations → Logs for one line per run with counts and the provider message; Operations → Daily Digests for the daily summary; the Statistics tab for last-sync times and totals.
Single-region and multi-region shops (Odoo 19)
The Multi-Region toggle is on the configuration form from 19.0.2.1.1 and is enforced, not decorative. A configuration with Multi-Region off refuses auto-workflow and warehouse rows that belong to any other region, so a single-market shop cannot silently accumulate routing rules for markets it does not sell in. Switch it on before adding rows for a second market.
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.
| Endpoint | Method | Auth | Purpose |
|---|---|---|---|
/shopee/webhook | POST | public (no Odoo session) | Receives inbound Shopee event deliveries |
Register this URL as your Push URL in the Shopee Open Platform console, in the form https://erp.example.com/shopee/webhook — substituting the real host you set in web.base.url.
Shopee Open Platform v2 signs each push with your Partner Key: the Authorization header carries HMAC-SHA256(partner_key, "<push url>|<raw body>") as a hex digest. The receiver recomputes exactly that and compares it in constant time. The key it uses is the Partner Key (partner_key) from the linked shopee.configuration, falling back to the Secret Key on the webhook record itself.
Shopee mixes the push URL into the signed string, so a mismatch of even one character makes every delivery fail verification. When you create a shopee.webhook record and leave Delivery URL empty, Odoo fills in a default of <web.base.url>/shopee/webhook/<topic> — note the extra topic segment, which is not the URL the route is served at. Set Delivery URL by hand to the exact Push URL you registered in the Shopee console.
A delivery is acknowledged ({"status": "success"}) only after an active webhook record verifies it. Anything unverified — no partner key configured, missing Authorization header, or a digest mismatch — is rejected with HTTP 403 and nothing is processed. The rejection is logged with the caller's IP.
Pausing a receiver (Odoo 19). The webhook record's Activate/Pause control is a real local switch from 19.0.2.1.1: a paused record stops accepting deliveries on the Odoo endpoint, so you can stop ingesting without touching the Shopee console. It is deliberately local-only — Shopee-side push subscriptions are configured in Seller Center and cannot be toggled remotely through the API.
The module's remaining routes — /shopee/api/status, /shopee/api/sync and /shopee/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 action | Runs every | Enabled on install |
|---|---|---|
| shopee: Sync Products | 1 hour | Yes |
| shopee: Sync Orders | 30 minutes | Yes |
| shopee: Sync Customers | 6 hours | Yes |
| shopee: Sync Inventory | 15 minutes | Yes |
| shopee: Test Connection | 1 day | Yes |
| shopee: Cleanup Old Logs | 1 day | Yes |
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.
The import wizard's Sync Frequency field takes effect from 19.0.2.1.1: choosing anything other than Manual persists that cadence and switches on the matching auto-sync flags on the configuration when the import runs. Leave it on Manual to change nothing.
Using the module
The module's menu is laid out as:
- Shopee → Dashboard
- Shopee → Shopee Orders
- Shopee → Orders
- Shopee → Products
- Shopee → Shopee Products
- Shopee → Customers
- Shopee → Shopee Customers
- Shopee → Finance — Settlements, Refunds, Returns, Risk Flags
- Shopee → Analytics
- Shopee → Operations — Import Wizard, Export Wizard, Mapping Wizard, Test Connection, Logs, Reports, Daily Digests
- Shopee → Configuration — Settings, Master Data
A normal first run is:
- Save the connection record and confirm the module reports a successful connection before importing anything.
- Review the mapping records so imported data lands on the right Odoo records.
- 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.
- Watch the log records during the first full sync. Failures are recorded there rather than raised at the user.
Shopee Orders has a kanban view grouped by status from 19.0.2.1.1, alongside the list and form views.
Importing products
Product synchronization pulls your Shopee catalogue through Shopee's item list and hydrates each item with its base info, so a sync returns fully populated products rather than bare ids. Queue lines of type product import that single Shopee item by id — before 19.0.2.1.1 a per-record product line reported a not-implemented error and did nothing.
Exporting products, prices, images and stock
The Export Wizard pushes Odoo data to Shopee, and every option on it takes effect from 19.0.2.1.1:
| Option | What it does |
|---|---|
| Export Limit | Caps how many products the run pushes |
| Update Existing | Updates products already mapped to a Shopee item (update_item / update_price) |
| Create Missing | Creates unmapped products on Shopee (add_item) |
| Include Images | Uploads product images to Shopee MediaSpace |
| Include Variants | Pushes per-variant prices, matched to Shopee models by SKU |
On-hand stock is pushed with the same run (update_stock).
Run Barcode Preflight first. The action is available on Odoo products and on the Shopee shadow items, and validates that a barcode is a structurally valid GTIN-8, GTIN-12, GTIN-13 or GTIN-14. The export wizard refuses to push a product whose barcode has not passed preflight — that is deliberate, because Shopee rejects a malformed barcode at listing time and the failure is much harder to read from the far side.
Invoicing imported orders
The auto-workflow's Validate Payment toggle takes effect from 19.0.2.1.1: with it on, the posted invoice of an imported order is marked paid through a registered payment, so a Shopee order that arrives already paid does not sit in your receivables.
Dashboard
The OWL 2 dashboard shows KPI tiles with period-over-period deltas, a sales-trend line chart, an order-status doughnut, an activity feed of recent sync log entries, quick actions and a status footer.
From 19.0.2.1.1:
- The sales-trend chart counts Shopee orders only. It previously aggregated every sale order in the database into the daily series, so the chart overstated Shopee performance on any database that also sells elsewhere.
- KPIs and chart tooltips are formatted in the record's own currency as reported by the server, instead of a hardcoded dollar sign.
- Dashboard queries are bounded, and opening the dashboard is the only action that creates its record — refreshing the data does not write anything.
Troubleshooting
Licensing (Odoo 17 and 18 only)
| Symptom / error code | Cause and fix |
|---|---|
VERSION_MISMATCH | The licence is for a different Odoo major version than the database you activated on. Licences are not transferable across Odoo versions. |
MODULE_MISMATCH | The licence belongs to a different ECOSIRE module. Check you selected Shopee Store Management (shopee_store_management) in the activation dropdown. |
NOT_ACTIVATED_ON_DOMAIN | The database's web.base.url domain is not among the licence's activated domains. Activate on this domain, or deactivate the old one first. |
LICENSE_EXPIRED / LICENSE_INACTIVE | The licence is past its expiry or has been suspended. Check the licence in your ECOSIRE portal. |
LICENSE_NOT_FOUND | The key does not exist. Keys are upper-cased before sending, so case is not the problem — re-copy it from your portal. |
| Activation limit reached | Every slot on the licence is bound to a domain. Deactivate one first. |
| Too many failed activation attempts | Ten failures in one hour. Wait up to 60 minutes. |
| Could not determine your Odoo instance domain | web.base.url is empty. Set it, then activate. |
| Odoo refuses to install the module | ecosire_license_client is not in your addons path. See step 3. |
| You are asked for a licence key on Odoo 19 | You are running a 2.0.x build. From 19.0.2.1.0 the Odoo 19 build needs no key — download the current build from your dashboard. |
Syncing
| Symptom | Cause and fix |
|---|---|
The requests library is required | requests is missing from Odoo's Python environment. Install it into the interpreter that runs Odoo. |
| The connection will not validate | Re-check every required field in the table above. Most failures are a mistyped secret, or credentials created for a sandbox while the module points at production (or vice-versa). |
'ShopeeAPI' object has no attribute 'get_products' | An Odoo 19 build older than 19.0.2.1.1. Upgrade the module; product sync is implemented from that release. |
| Nothing syncs even though the connection is fine | The 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-way | Read the module's log records for that run. Rate limiting and rejected field values are the two common causes; both are logged with the platform's own error text. |
| The export wizard skips a product | Its barcode has not passed Barcode Preflight, or it is not a valid GTIN. Fix the barcode and re-run preflight. |
| Records import but map to the wrong Odoo values | Fix the mapping records under the module's configuration, then re-run the import. |
| Duplicated products or customers | Run the initial import once. If a first attempt half-finished, check the existing records before re-running rather than importing on top. |
| The dashboard sales chart looks too high | An Odoo 19 build older than 19.0.2.1.1 counted every sale order in the database, not just Shopee's. Upgrade. |
What changed in 19.0.2.1.2 and 19.0.2.1.3
Shopee Orders and Imported Orders open correctly (2.1.2). On earlier 19.0 builds these menus
could fail to open with an Unknown field "order_sn" error in the browser. Two sets of views had
been registered under the same internal identifiers, so the Orders action loaded the wrong search
layout. The views now use distinct identifiers and both menus open normally. If you saw that error,
upgrade the module — no data was affected and nothing needs re-importing.
Product synchronisation works again (2.1.1). Product sync previously stopped with
'ShopeeAPI' object has no attribute 'get_products'. The connector now calls Shopee's item-list and
item-detail endpoints directly, so a product sync returns fully populated products.
Export failures name the product (2.1.2). When an export run rejects a product, the warning now includes the SKU and the Shopee item id, so you can find the record without reading the raw log.
Queue actions are restricted to Shopee Managers (2.1.3). Processing, retrying or cancelling a sync queue (or an individual queue line) now requires the Shopee Manager group and returns a clear access message to everyone else, instead of failing part-way through the operation.
Version history
| Odoo version | Version you download today |
|---|---|
| 17.0 | 17.0.2.0.2 |
| 18.0 | 18.0.2.0.2 |
| 19.0 | 19.0.2.1.3 |
ECOSIRE module versions are <odoo major>.<module major>.<minor>.<patch>, so 19.0.2.1.3 is the Odoo 19 build of module version 2.1.3. Your installed version is shown in Apps — and, on Odoo 17 and 18, in Settings → ECOSIRE.COM → License Status.
Support
- General troubleshooting
- Licence verification guide (Odoo 17 and 18)
- Email: info@ecosire.com
- Support portal