Sells your OpenCart catalogue on TikTok Shop with your own Partner Center app: category and attribute mapping with a markup, products created with images, price and stock sync, the audit reason shown per product, paid orders imported as real OpenCart orders, tracking with the matching shipping provider, cancellations and returns listed, a job queue with retries and a full log. OpenCart 4, no OCMOD.
Tested on 4.1.0.4Version 1.0.0Compatible with OpenCart 4.1.0.4 No core file edits
Built forOpenCart
Every product, its state and its reason1 of 6
What it does
Sells your OpenCart catalogue on TikTok Shop with your own Partner Center app: category and attribute mapping with a markup, products created with images, price and stock sync, the audit reason shown per product, paid orders imported as real OpenCart orders, tracking with the matching shipping provider, cancellations and returns listed, a job queue with retries and a full log. OpenCart 4, no OCMOD.
What it changes for your store
Your OpenCart shop on TikTok Shop. This extension connects your shop to your own TikTok Shop seller account through a custom app you register in Partner Center, so that products, stock, price and orders move without copy and paste. It is a two-way connector: products go out, orders and tracking come back into your shop.
Know the limits. You need a TikTok Shop seller account and your own Partner Center app; TikTok Shop reviews apps and decides which API scopes, markets, categories and seller types it opens. Test mode uses a development shop of your own, not a separate sandbox. Products have one SKU: no variants, bundles, videos, size charts, certifications, TikTok fulfillment (FBT), promotions or affiliate and LIVE features. Returns and cancellation requests are shown, not decided. No shipping labels are bought from TikTok Shop. TikTok Shop is polled by cron (or webhook if you register it), so new orders arrive at the next sync. Imported orders do not send e-mails or fire the events of other extensions. Tested against a stand-in of the TikTok Shop API built from the official reference, not against a live shop. TikTok Shop is a trademark of its owner. This extension is an independent product by Kavio Labs, not affiliated with or endorsed by TikTok or ByteDance.
Features
Connection
Your own app (app key and secret) from TikTok Shop Partner Center; the secret is stored encrypted and never logged, every request is signed as the documentation requires
Authorize your shop with one link: the access and refresh tokens are stored sealed and renewed automatically; a code field is there for development hosts
Test (development shop) and live mode, one-click connection test, optional webhook registration
Products
Search the category tree of your shop region and map it to your categories with a markup per category; required attributes are filled from an OpenCart attribute or a fixed value
Products are created with images uploaded, one SKU, brand and package weight; TikTok Shop's audit result is shown per product, including its reason when a product is rejected
Each TikTok product is found again by its seller SKU
Price and stock
Markup in percent and a fixed amount per product, per category or for the account; price endings x.99, x.90 or whole numbers; exchange rate; stock buffer, zero limit and maximum
Price and stock go out as updates only when something changed
Orders, shipment and returns
Every paid TikTok Shop order becomes an OpenCart order: buyer, delivery address, prices as sold, equal units grouped into one line, the status you choose, stock taken like a normal order; unpaid and on-hold orders wait
Orders whose product is not mapped are listed as failed imports with the reason and retried
Set the order to Shipped and write the tracking number in the order history ("Tracking: 1Z999AA10123456784 carrier: UPS"): seller-shipped orders report the tracking number with the matching shipping provider, TikTok-shipped orders get their package arranged (drop-off or pick-up)
Cancel an order from the order list with a seller cancel reason; returns and buyer cancellation requests are listed (read-only, decide in Seller Center)
Reliable
Job queue with retries (5 minutes up to 12 hours) and rate limit handling, a Jobs page with a run button, a filtered log with CSV export
Events and cron only, no OCMOD, no core edits; OpenCart 4, tested on 4.1.0.4
What you get
Download & installOne installer package (.ocmod.zip) for OpenCart 4.0.2 – 4.1.x. There is no OpenCart 3 edition. Download it from My licenses right after payment.
12 months of updates & supportNew versions and help for 12 months (24 or 36 months at checkout). After that the extension keeps working; renew anytime at 50%.
License for your storeOne production domain with all its subdomains; staging and local development hosts are free. How licensing works
30-day refundFull refund within 30 days of your first purchase, no reason needed. Refund policy
Tested buildsOpenCart 4.1.0.4. Tested on OpenCart 4.1.0.4.
Documentation & supportFull guide (Installation and setup, Settings, Usage, Developer notes) on this page. Tickets from your account, first reply within 1 business day.
Compatibility
TikTok Shop Connector works with OpenCart 4.1.0.4.
We list the builds we install and test on. “Tested” means the test plan ran on that build; “Supported” means the build is inside the supported range.
Compatibility
Version
Range
Runs on
Status
OpenCart 4.1.0.x
4.1.0.0 – 4.1.0.4
PHP 8.1 – 8.3
Tested on 4.1.0.4
OpenCart 4.0.2.x
4.0.2.0 – 4.0.2.3
PHP 8.0 – 8.2
Supported
1.0.0
Latest
First release for OpenCart 4.1: connection through your own TikTok Shop Partner Center app (app key and secret stored encrypted, shop authorization by redirect address or pasted auth code, access token renewed automatically with the rotating refresh token, every call signed with HMAC-SHA256 as documented), test and live mode, connection test.
Products created from your catalogue (category and attribute mapping with a markup, images uploaded, brand, package weight) with the audit result shown per product; price and stock updates found by seller SKU with price rules and a stock buffer.
Paid order import into real OpenCart orders (unpaid and on-hold orders wait, equal units grouped), status follow; shipment reported with Ship Package (tracking number and shipping provider by carrier name, or handover method for TikTok shipping); order cancellation with seller reasons.
Returns and buyer cancellation requests listed read only; optional webhooks (order, cancellation and return status) with signature check; throttled calls retried.
API versions: the newest documented versions are used; an API that answers "version not supported" falls back to 202309 automatically, or pin 202309 in the connection settings.
Job queue with retries and back-off, OpenCart cron and a secret web address, log with CSV export.
How do I install the extension?
Upload. Extensions > Installer: upload the .ocmod.zip. It is for OpenCart 4 (4.0.2 to 4.1.x).
Install and enable. Extensions > Extensions > Modules: install, open the settings and switch it on. Events register themselves; nothing is patched.
Enter the license key. Paste the key from My licenses. Subdomains, staging and local hosts are included; you have 14 days to do it.
OpenCart 4.1.0.4. Tested on OpenCart 4.1.0.4. The Compatibility tab lists every version range.
Do the extensions change core files?
No. They work through OpenCart events and standard extension types (modules, order totals, themes). No core file edits, no OCMOD patches, no theme template edits, so OpenCart updates and other extensions keep working.
What does the license cover?
One production store domain with every subdomain (www, shop., staging.), plus local development hosts such as localhost, *.local and *.test. A store on another domain needs its own license; a second-store license is 40% off. You have 14 days after installing to enter the key. 12 months of updates and support are included; after that the extension keeps working and renewals are 50% off. How licensing works
Can I get a refund?
Yes. Ask for a full refund within 30 days of your first purchase, no reason needed: open a ticket or write to [email protected] with your order number. The money goes back to the card or bank account you paid with within 5 business days of approval. Refund policy
How do I get help?
Open a ticket from your account, so your license details are attached. We answer Monday to Friday: bug reports within 1 business day, how-to questions within 2. Support policy. Not a customer yet? Ask a pre-sales question.
Connects OpenCart 4.1 to TikTok Shop through your own TikTok Shop Partner Center app: products with stock and price, paid orders, shipment and cancellation, returns (read), with a job queue, retries and a log.
What it does
Maps store categories, attributes and products to TikTok Shop and creates the products (images uploaded, one SKU, brand, weight); TikTok Shop's audit result is shown per product.
Pushes stock and price on a schedule; finds each TikTok product by its seller SKU.
Imports paid orders into OpenCart orders without duplicates (unpaid and on-hold orders wait), keeps their status in step and reports shipments: tracking number plus shipping provider for seller shipping, package arrangement for TikTok shipping.
Cancels orders from the order list; lists returns and buyer cancellation requests (read-only).
Your app key and secret are stored encrypted; the shop authorization (access and refresh token) is renewed automatically; test and live are separate; every API call is signed as the documentation requires.
A job queue with automatic retries (5 minutes, 15 minutes, 1 hour, 3 hours, 12 hours), a log with filters and CSV export, optional webhooks.
No OCMOD patches and no core changes: the extension works with events.
TikTok Shop is a trademark of its owner. Kavio Labs is not affiliated with, endorsed or sponsored by TikTok or ByteDance; the name is used only to say what the extension connects to.
Compatibility
OpenCart 4.1 (tested on 4.1.0.4). OpenCart 3 is not supported by this extension.
PHP 7.4 or newer (tested on 8.1 and 8.3) with cURL and OpenSSL.
The queue is processed by the OpenCart cron; a secret web address is available as well (see Configuration).
Next steps
API conformance
Every request the extension sends is checked in the unit tests: signed with the documented algorithm (HMAC-SHA256 of path, sorted query and body wrapped in the app secret), versioned in the path, and sent to an endpoint of the official Partner Center reference. Mappings are fed with response samples copied from that reference (tests/samples). The TikTok Shop environment needs a seller's app and a development shop, so the full flow is tested against a local mock that follows the same reference and verifies the signature of every call.
TikTok Shop is a trademark of its owner; this extension is not affiliated with or endorsed by TikTok Shop.
Installation and setup
Requirements
OpenCart 4.1 (tested on 4.1.0.4), PHP 7.4 or newer with cURL and OpenSSL (outgoing HTTPS to open-api.tiktokglobalshop.com and auth.tiktok-shops.com).
A TikTok Shop seller account (the shop you sell with) and a free TikTok Shop Partner Center account (partner.tiktokshop.com, or partner.us.tiktokshop.com for the US). The extension is built for your own app: you register one custom app in Partner Center and authorize your shop for it. There is no fee for the registration; TikTok Shop reviews apps and may ask for business details, and which API scopes your app gets is decided by TikTok Shop.
For testing: a development shop (Partner Center > Development Kits > Development Shops, or Sandbox) authorized for your app. TikTok Shop has no separate sandbox address: test and live mode call the same API, test mode uses the app and shop you save as "test".
The standard OpenCart cron line on your server.
Install the extension
In the admin go to Extensions > Installer, upload kv_tiktok_shop.ocmod.zip and click Install.
Extensions > Extensions, choose "Modules", find "TikTok Shop Connector" and click Install (the green button).
Click Edit. Switch the connector on and, if you have one, enter your Kavio Labs license key. Without a key the extension works for 14 days.
The pages are under Sales > TikTok Shop: Listings, Connection, Categories, Rules, Orders, Returns, Log, Jobs.
Cron: the install registers an hourly entry in the OpenCart cron, which needs the standard OpenCart cron line on your server (shown on the settings page). For a faster sync call the secret web address from the settings page every few minutes with your host cron.
Register your app in Partner Center
Sign in to Partner Center and create your app (App & Service > Create app). Choose the seller / custom app type that matches your region.
Under Manage API request the scopes the extension uses: products (read and write), orders (read), fulfillment (read and write), logistics (read), return and refund (read and cancellation), and, if you want notifications, webhooks.
Under Redirect URL enter the address shown on the extension's Connection page (it ends with tiktok_shop.authorize). It must be reachable from the internet over HTTPS.
Copy the app key and app secret (and the service ID if your app has one: it only builds the authorization link on the Connection page).
Connect TikTok Shop
Open Sales > TikTok Shop > Connection.
Choose Test mode, enter the app key, app secret and (optional) service ID of your test app, set the handover method and the weight unit of your products, and press Save.
Under Shop authorization open the authorization link (or the US one) and approve your shop. TikTok Shop sends you to the redirect URL, the extension exchanges the one-time code for an access token and a refresh token and reads the authorized shop. If the redirect cannot reach your store (a development host), paste the code= value of the address bar into Authorization code (fallback) within 30 minutes; it works once.
Press Save and test: a green message names your shop and region. The extension renews the access token by itself (it is valid 7 days, the refresh token rotates and is stored); you only authorize again when TikTok Shop says the authorization expired or the seller removed it.
Optional: press Register webhook to receive order, cancellation and return notifications; without it the extension polls on the cron schedule.
Switch to Live mode and enter the live app (it can be the same app) only after a successful test; authorize and test again.
Open Categories, map your categories to TikTok Shop categories, then Listings to map products (seller SKU).
Update and uninstall
Install the new kv_tiktok_shop.ocmod.zip over the old one from Extensions > Installer; your settings and tables are kept, missing tables and settings are added on the first request. Uninstalling the module in Extensions > Extensions removes the tables and settings, including the stored credentials (orders already imported stay in OpenCart).
See CHANGELOG for what changed in each version.
Settings
Open Extensions > Extensions > Modules > TikTok Shop Connector > Edit for the general settings, and Sales > TikTok Shop for the working pages (Listings, Connection, Categories, Rules, Orders, Returns, Log, Jobs).
General
Setting
Default
Description
Enable
On
When off, no new work is started. Jobs and webhooks of work that is already under way are still processed.
Debug log
Off
Also stores every HTTP call with masked request and response. Secrets are never stored.
Log retention (days)
90
Older log entries are removed by the cron run.
Sync interval (minutes)
15
How often stock and price are pushed, orders imported and shipments reported.
Status of imported orders
Processing
Status of a new TikTok Shop order in OpenCart (Processing takes the stock). The status mapping on the Rules page can override it.
Connection
Credentials are not ordinary settings: they are entered on the Connection page and stored encrypted (AES-256-GCM, key derived from your store's own encryption key). They are never shown again; leave a secret field empty to keep the saved value.
Field
Description
Mode
Test uses the test app and development shop you saved; Live uses the live app. Both modes call the same TikTok Shop API (open-api.tiktokglobalshop.com); there is no separate sandbox address.
App key / App secret
From your app in Partner Center. The secret is stored encrypted and also signs every API call and verifies webhooks.
Service ID
Optional. Builds the authorization link on the Connection page.
Shop ID or code
Optional. Which authorized shop to use when the seller authorized several. Empty = the first.
Handover method
Drop-off or pick-up for packages of orders that TikTok Shop ships (used by "Arrange TikTok Shop shipping").
Weight unit
Unit of the weight field of your OpenCart products (kilogram, pound or gram); sent as the package weight.
Category tree
Automatic: v2 for US, EU and South-East Asia shops, v1 for others.
API versions
Newest documented (default): returns and cancellations 202602, order details 202507, product search 202502; the connector switches an API to 202309 by itself when TikTok Shop says the version is not supported for your region. "202309 for every API" uses 202309 from the start.
Tokens (access token, refresh token) and the authorized shops are stored sealed with the account after you authorize; they are never shown.
Rules, categories and mapping
Categories: map each store category to a TikTok Shop leaf category (the tree is read live from your shop) and optionally a default brand ID. Attributes of a category (the required ones are marked) are filled from a OpenCart attribute or a fixed value; a value that is not allowed for an attribute is reported on the product.
Rules: markup and rounding, stock buffer and minimum, default brand, exchange rate (see below), default package weight, order status mapping, Arrange TikTok Shop shipping (off by default) and I ship orders myself.
Currency: prices are sent in the currency of the shop region (USD, GBP, EUR, ...). If your store currency differs, enter the exchange rate on the Rules page (channel currency per 1 unit of your primary currency).
The seller SKU of each mapped product is its mapping SKU (Listings page): it must be unique in your TikTok Shop and is how the extension finds the TikTok product again for stock and price updates and for imported order lines.
Cron
The queue runs from the OpenCart cron (an hourly entry is registered at install, which needs the standard OpenCart cron line on your server) or from the secret web address shown on the settings page:
Call it every few minutes from your host cron for a faster sync. Overlapping runs are prevented.
Log and jobs
Log lists every call, job and webhook with filters (level, action, text, dates) and a CSV export.
Jobs lists the queue. A job that fails is retried after 5 minutes, 15 minutes, 1 hour, 3 hours and 12 hours, then marked "Gave up"; use Retry to queue it again.
Usage
Daily use
Map a category (and its required attributes) once, then add products: the seller SKU, whether stock and price are synchronized and an optional price override.
A mapped product that is not on TikTok Shop yet is created (images are downloaded from your store and uploaded, one SKU, package weight, brand, attributes). TikTok Shop then audits it: a product in audit counts as accepted, a failed audit shows TikTok's reason on the product.
Stock and price are pushed on the schedule and whenever a mapped product is saved (prices only change on live products); Sync now queues an immediate push, order import and shipment step.
Paid orders appear as OpenCart orders once (unpaid and on-hold orders are not imported; TikTok Shop has one line item per unit, equal units become one line with a quantity). Set the order to Shipped and write the tracking number in the order history (for example "Tracking: 1Z999AA10123456784 carrier: UPS"); it is reported once: for seller-shipped orders the tracking number with the shipping provider that matches your carrier name; for TikTok-shipped orders the package is arranged when "Arrange TikTok Shop shipping" is on.
Cancel an imported order on the Orders page with a seller cancel reason (default: out of stock). Returns and buyer cancellation requests are listed read-only; approve or reject them in Seller Center.
Use Only errors in the mapping list to fix products TikTok Shop rejected.
Jobs, log and connection
Jobs: counts per state, the list with the last error, Retry, Remove and Run the queue now.
Log: filter and export what happened and when.
Connection: test and live app, shop authorization, Save and test, webhook URL and registration.
Order page: a TikTok Shop panel shows the channel order, its status and the tracking number found in the history.
Not in 1.0
Variants (several SKUs per product), bundles, videos, size charts, product certifications, TikTok Shop fulfillment (FBT), promotions, affiliate and LIVE APIs, approving returns from OpenCart. The extension does not buy shipping labels from TikTok Shop; arrange labels in Seller Center where TikTok requires it.
Developer notes
Technical reference for developers who customize TikTok Shop Connector.
TikTok Shop Partner Center API: request signing (HMAC-SHA256 of path + sorted query + body, wrapped in the app secret), authorization code exchange, rotating refresh token under a database lock, per-API versions in the path (202309, 202502, 202507, 202602), business errors in HTTP 200, one thin method per endpoint
Drivers\TikTokShop\Driver, Mapper
Hub driver (SKU lookup by seller SKU, create product with image upload, inventory and price, orders, fulfilment, cancel, returns) and the pure translation (unit tested with the official samples in tests/samples/)
Client
Client of the account, the connection test
Accounts, Secret
Credentials (test and live) sealed with AES-256-GCM
Config, Access
Settings and the licence gate
Store, compat
The OpenCart glue: products, orders, stock, tracking from the order history; SQL placeholders
Queue, Jobs, JobException
Job queue: back-off 5 min / 15 min / 1 h / 3 h / 12 h, per-job isolation, overlap lock; handlers in Jobs::handle(), recurring work in Jobs::schedule()
Log
Event log with masking, filters, CSV, retention
Webhook
Signature check and event ids; the catalog controller channel/tiktok_shop.webhook stores the event as a job
API conformance (official TikTok Shop Partner Center documentation)
Checked on 2026-11-07 against the provider's own documentation. Read in a browser through the document API behind https://partner.tiktokshop.com/docv2. The API versions below were all present in the public reference (not login gated). Versions are per API; the version is part of the path and of the signed string.
Purpose
What the extension does
Official source
Verified
Versioning
Newest documented versions are used (returns and cancellations 202602, order detail 202507, product search 202502); the account setting "API versions" switches them to 202309, and a "version not supported" answer switches the API to 202309 automatically for the rest of the process
admin/view/common/column_left/before (Sales menu entry), admin/view/sale/order_info/after (TikTok Shop panel on the order page), admin/model/catalog/product.editProduct/after and deleteProduct/after (mapped products are marked dirty), catalog/model/checkout/order.addHistory/after (stock of ordered products changed) and admin/controller/common/header/before (licence tick). No OCMOD, no core files.
Test the HTTP layer without the provider
The base URL can be overridden for tests with the setting module_kv_tiktok_shop_base_url (development only; it replaces both hosts, the API and the authorization service):
node tests/mock-server/server.js 11977 starts a local stand-in of the provider API that verifies the signature of every call; node tests/e2e.js runs the browser end-to-end test against an OpenCart 4.1 dev store; php tests/unit.php runs the unit tests (no store needed).
Troubleshooting
"Test connection" fails
Check the mode: test credentials only work in test mode and live credentials only in live mode.
Check for spaces before or after the client ID and secret.
The Log tab shows TikTok Shop's answer (masked). Common codes: 105002 / 105001 the access token is not valid (the extension refreshes once; if it persists, authorize again), 105005 your app does not have the scope for the call (request it in Partner Center > Manage API and authorize again so the token carries it), 36009004 a request check failed (read the message: signature, timestamp, shop_cipher, app key), 36009002 or HTTP 429 you are throttled (the job is retried by itself), 36009033 your server IP is not on the app's IP allow list.
"Not authorized yet": press the authorization link on the Connection page, or paste the code. "Authorization expired": the seller must authorize again (the extension cannot renew it).
The server clock must be correct: TikTok Shop rejects signatures with a timestamp more than 5 minutes off.
Your server must be able to reach the provider over HTTPS (outgoing port 443) and have a current CA bundle.
Nothing happens after an order changes status
Check Enable on the settings page and the order status settings.
Check the licence card on the settings page.
Open Jobs: queued jobs wait for cron. If the counts never change, the cron job is not running; open the secret cron address from the settings page once.
A job is "Waiting to retry" or "Gave up"
The last error is shown in the list. Fix the cause (credentials, data, provider outage) and press Retry. Jobs are retried automatically after 5 minutes, 15 minutes, 1 hour, 3 hours and 12 hours before they give up.
Webhooks are rejected
Webhooks are signed with your app secret (Authorization header = HMAC-SHA256 of the app key and the body): the app key and secret of the active mode must be the ones of the app that sends them. There is no separate webhook secret.
The web address must be the one on the Connection page, reachable from the internet and not behind a login or an IP filter.
Rejected events are listed in the log with the action "webhook".
All events are rejected with "signature" in the log although the keys are right: the server does not pass the Authorization header to PHP (Apache with PHP-FPM / CGI, common on cPanel). The extension also reads REDIRECT_HTTP_AUTHORIZATION and the server's header list. OpenCart's .htaccess.txt has no rule for it: rename it to .htaccess (or edit your existing one) and add, after RewriteEngine On, RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}], or ask your host to pass the Authorization header to PHP.
A product is not created or its stock is not updated
The product row shows the reason. Typical: no category mapped, a required attribute without a value or with a value TikTok Shop does not allow, the category is invite-only (apply in Seller Center), the shop has no sales warehouse, or the seller SKU already exists.
"Seller SKU was not found on TikTok Shop": the SKU of the mapping is not the seller SKU of the TikTok product. Use the same code in both places.
Prices cannot change on a product that is under review or deactivated; the row says so.
A listing job stopped half way (rate limit, timeout)
Nothing is listed twice. Every product is saved on the mapping right after TikTok Shop created it, and before a product is created the extension looks for its seller SKU on TikTok Shop (Search Products by seller SKU): a product that exists, also one TikTok saved while the answer was lost, is linked instead of created again. The job is retried and goes on with the remaining products.
Shipment is not reported
Seller-shipped orders need the carrier name in the order history ("carrier: UPS"); it must match one of the shop's TikTok Shop shipping providers (the error on the order lists the valid names).
Orders that TikTok Shop ships need "Arrange TikTok Shop shipping" on the Rules page; labels and pickup for those orders may still need Seller Center.
The cron address answers "Forbidden"
The key in the address is wrong. Copy the address again from the settings page.
Still stuck
Contact support from the page where you got the extension, with the extension version, the OpenCart version and the relevant log lines (secrets are masked automatically).
FAQ
Which OpenCart versions are supported?
OpenCart 4.1 (tested on 4.1.0.4). OpenCart 3 is not supported by this extension.
Do I need a TikTok Shop Partner Center account?
Yes, a free one: you register your own custom app (app key, app secret, redirect URL) and authorize your shop for it. See Installation. TikTok Shop decides which API scopes your app gets and may review it.
Is there a sandbox?
TikTok Shop offers development shops (Partner Center, Development Kits). They use the same API address as live shops: test mode just uses the app and shop you saved as test.
Which markets?
The extension talks to the global Partner Center API and works with the shop region it is authorized for (for example US, UK, EU countries, South-East Asia). Prices are sent in the shop region's currency. Availability of the API for a market, category or seller type is decided by TikTok Shop.
Where are my credentials stored?
In your own database, encrypted. The key is derived from your store's encryption key, so a database dump alone does not reveal them. They are never shown again after saving.
Does it send data to Kavio Labs?
No. The extension talks to TikTok Shop only. The license check sends your domain name to the Kavio Labs license server once a day.
What happens when TikTok Shop is down?
Jobs fail, wait and are retried automatically (5 minutes up to 12 hours). Nothing is lost and nothing is sent twice.
What happens when the license expires?
New work stops (no new sync, import or shipment work). Work already under way is still finished.
How do I get updates?
Install the new package over the old one from Extensions > Installer. See Installation.
How do I get support?
Contact support from the page where you got the extension.
Server-side tracking for OpenCart 4.x and 3.0.x: purchases, refunds, add to cart, checkout, product views and leads go from your server to the free official GA4 Measurement Protocol, Meta Conversions API and TikTok Events API, deduplicated with the browser pixels through shared event ids. Consent-aware, SHA-256 hashed customer data, order status mapping, queue with retries, test mode and an event log. No paid relay, events only, no OCMOD.
The department store theme for OpenCart 4.x and 3.0.x: colour-coded departments, a department list beside the hero slider with two side promos, a big search with a department selector, tabbed product blocks, a 2 + 1 + 2 offer grid, deals of the day with real countdowns, a department showcase, a promotions band and a three-column product page with a sticky buy box. Four styles (Meridian, Harbor, Citrus, Night) and your own colours on top. Events only, no core changes.
Stop AI crawlers, scrapers, vulnerability scanners and unwanted countries before OpenCart 4.x or 3.0.x builds a page. Googlebot and Bingbot are verified by DNS and always allowed; 50+ bots get one switch each; country rules use free GeoIP databases and can close only the checkout; IP and network lists, rate limits, honeypots and the cart flood fix; a one-second challenge instead of a captcha; learning mode, dashboard, log, IP tester and Cloudflare export. No core changes, no OCMOD.