Sells your OpenCart catalogue on Allegro (Poland, Czechia, Slovakia, Hungary): your own Allegro application with device-code or browser sign-in, category and parameter mapping, offers created by EAN, stock and price as batch commands, checkout-form orders imported as real OpenCart orders, tracking pushed from the order history, cancellation, customer returns, a job queue with retries and a full log. Credentials stored encrypted, sandbox and live modes. OpenCart 4, events and cron only, no OCMOD.
Tested on 4.1.0.4Updated Nov 6, 2026Version 1.0.1Compatible with OpenCart 4.1.0.4 No core file edits
Built forOpenCart
Every product with its Allegro status1 of 6
What it does
Sells your OpenCart catalogue on Allegro (Poland, Czechia, Slovakia, Hungary): your own Allegro application with device-code or browser sign-in, category and parameter mapping, offers created by EAN, stock and price as batch commands, checkout-form orders imported as real OpenCart orders, tracking pushed from the order history, cancellation, customer returns, a job queue with retries and a full log. Credentials stored encrypted, sandbox and live modes. OpenCart 4, events and cron only, no OCMOD.
Know the limits. You need your own Allegro seller account and registered application, plus a delivery price list, a return policy and an implied warranty created in your Allegro settings. Orders are polled by cron, so new orders arrive at the next sync. Products need a valid EAN; one offer per product, option-based variants are not listed separately in 1.0. Tested against a stand-in of the Allegro API built from the official specification, not against a live seller account. Imported orders do not send e-mails or fire the events of other extensions. Allegro is a trademark of its owner; the extension is not affiliated with or endorsed by Allegro.
Features
Connection
Use your own Allegro application (client ID and secret, stored encrypted); sandbox and live side by side
Authorize with a device code you enter on allegro.pl, or with the browser sign-in; the access token is refreshed automatically and the rotating refresh token is kept encrypted
Allegro.pl (PLN), Allegro.cz (CZK), Allegro.sk (EUR) and Allegro.hu (HUF)
Offers
Search the Allegro category tree and map it to your categories; map every required parameter to a product attribute, the manufacturer, the model, the SKU or a fixed value; product and offer parameters are split for you
Offers are created from your products matched by GTIN/EAN, images are uploaded first; see per product whether it is not listed, waiting for Allegro or live, and the exact message Allegro returns when it rejects one
Price and stock
Stock buffer, zero limit and maximum
Stock and price go out as batch commands with the result per offer; nothing is re-sent when nothing changed
Orders
Every Allegro checkout form that is ready for processing becomes an OpenCart order: buyer, delivery address or pickup point, invoice address and tax ID, lines at the price Allegro sold them, the delivery cost, the status you choose, stock taken like a normal order
Later fulfillment statuses (sent, picked up, cancelled, returned) move the order along; unmapped products are listed as failed imports with the reason and retried
Set the order to Shipped and write the tracking number in the order history: it is added to the order lines at Allegro and the order moves to Sent
Cancel an order at Allegro from the Orders page with a refund reason; customer returns are imported and can be accepted with an idempotent payment refund
Reliable
Job queue with retries (5 minutes up to 12 hours), a Jobs page with a run button, a filtered log with CSV export, secrets and tokens encrypted and never logged
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, Configuration, Usage, Developer notes) on this page. Tickets from your account, first reply within 1 business day.
Compatibility
Allegro Marketplace 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
Nov 6, 2026
Latest
Your own Allegro application: client ID and secret stored encrypted, device-code and browser sign-in (authorization code) flows, access token refreshed automatically with the rotating refresh token, sandbox and live mode, connection test.
Category tree crawl, category and parameter mapping, price rules and stock buffer, offers created from mapped products matched by EAN with images uploaded to Allegro, validation result and operation status read back per product.
Stock and price as batch commands (one command per distinct value) with the result per offer.
Order import from checkout forms into real OpenCart orders (buyer, delivery address or pickup point, invoice address and tax ID, prices as sold), fulfillment status follow, tracking number from the order history and Sent, cancellation with refund.
Customer returns import and acceptance with an idempotent payment refund.
Allegro Poland, Czechia, Slovakia and Hungary with matching currency and offer language.
Job queue with retries and back-off, cron (OpenCart cron and secret address), log viewer with CSV export.
Events only, no OCMOD, no core edits.
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.
Allegro Marketplace Connector sells your OpenCart catalogue on Allegro (Poland, Czechia, Slovakia, Hungary). You connect your own Allegro application, map your categories and parameters once, set your price rules and stock buffer, and the extension creates offers from your products, keeps stock and price in sync, imports every Allegro order as a real OpenCart order, and reports the tracking number back to Allegro.
Listings
What it does
Connection. Client ID and secret of your own Allegro application (stored encrypted, shown only as a hint afterwards), test (sandbox) and live side by side. Authorize with a device code you enter on allegro.pl, or with the browser sign-in (authorization code flow). The access token is refreshed automatically and the rotating refresh token is stored encrypted.
Category and parameter mapping. Search the Allegro category tree (crawled level by level), map it to your store categories, and map every required Allegro parameter to a product attribute, the manufacturer, the model, the SKU or a fixed value. Product parameters and offer parameters are split for you.
Offers by EAN. Offers are created from your products matched by GTIN/EAN (the Allegro product is matched or created by the EAN with your mapped parameters); images are uploaded to Allegro first. The extension reads the validation result and the operation status back and shows per product whether it is not listed, waiting for Allegro or live, with the exact message Allegro returned when it rejects one.
Price rules and stock buffer. Markup in percent and a fixed amount, price endings (x.99, x.90, whole numbers), the OpenCart currency of the same code as the marketplace (PLN, CZK, EUR, HUF) or a fixed rate, units kept back, zero limit and maximum. Stock and price go out as batch commands (one command per distinct value) with the result per offer; nothing is re-sent when nothing changed.
Orders. Every Allegro checkout form that is ready for processing becomes an OpenCart order with buyer, delivery address or pickup point, invoice address and tax ID, lines at the price Allegro sold them, the Allegro delivery cost, the status you choose and the stock taken like a normal order. Later fulfillment statuses (sent, picked up, cancelled, returned) move the order along. Orders whose product is not mapped are listed as failed imports with the reason and retried.
Tracking. Set an order to Shipped and write the tracking number in the order history ("Tracking: ABC123456"): the extension adds the number to the order lines at Allegro and sets the order to Sent.
Cancel and returns. Cancel an order at Allegro from the Orders page (the lines are refunded with the reason you pick); customer returns are imported, noted on the order and can be accepted from the admin with an idempotent payment refund.
Job queue and log. Retries with growing waits, a Jobs page with a "Run now" button, a filtered log with CSV export. Secrets and tokens never reach the log.
Events and cron only, no OCMOD, no core edits. OpenCart 4, tested on 4.1.0.4.
Limits to know
You need your own Allegro account and your own registered Allegro application (client ID and secret), plus a delivery price list, a return policy and an implied warranty created in your Allegro settings; the extension uses their IDs.
Orders are polled by cron, so new orders arrive at the next sync (every few minutes with a host cron, hourly with the OpenCart cron alone).
One offer per OpenCart product, matched by EAN. Option-based variants are not listed as separate offers in version 1.0. Categories that need extra product data may reject an offer with a readable reason.
Imported orders are written directly and do not fire the order e-mails or the events of other extensions.
Tested against a stand-in of the Allegro REST API built from the official OpenAPI specification, not against a live seller account.
Allegro is a trademark of its owner. This extension is independent and is not affiliated with or endorsed by Allegro.
Installation
Requires OpenCart 4.1 (tested on 4.1.0.4), PHP 7.4 or newer with the cURL and OpenSSL extensions.
In the admin go to Extensions > Installer, upload kv_allegro.ocmod.zip and click Install.
Extensions > Extensions, choose "Modules", find "Allegro Marketplace 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 Allegro pages are under Sales > Allegro: Listings, Connection, Categories, Attributes, Rules, Orders, Returns, Log, Jobs.
Cron. The install registers an 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 Jobs page every few minutes with your host cron.
Uninstall removes the mappings, rules, queue, log and the stored credentials. The OpenCart orders that were imported stay.
What you need from Allegro
An Allegro seller account and an application registered at https://apps.developer.allegro.pl (sandbox: apps.developer.allegro.pl.allegrosandbox.pl). Choose an application type that allows the device flow, or register the redirect address shown on the Connection page for the browser sign-in.
In your Allegro sales settings: a delivery price list, a return policy and an implied warranty. Copy their IDs to the Connection page.
Start in test mode (sandbox) and switch to live only after a successful test.
Configuration
Extensions > Extensions > Modules > Allegro Marketplace Connector > Edit holds the general settings; Sales > Allegro holds the working pages.
General (module settings)
Setting
Default
Description
Status
On
When off, no new work is started. Jobs of work already under way are still processed.
Debug log
Off
Also stores every HTTP call with masked request and response. Secrets and tokens are never stored.
Log retention (days)
90
Older log entries are removed by the cron run.
Sync interval (minutes)
15
How often products are synchronized, orders and returns imported and shipments reported.
Licence key
empty
Optional Kavio Labs licence key; without it the extension runs a 14-day trial.
Connection page
Credentials are stored encrypted (AES-256-GCM, key derived from your store's own secret), never shown again; leave the secret field empty to keep the saved value. Saving other fields keeps the Allegro authorization; a new client ID or secret removes it and you connect again.
Field
Description
Mode
Test uses the sandbox hosts and your sandbox application; Live uses allegro.pl and your live application.
Client ID / Client secret
Of your own Allegro application (one per mode).
Marketplace
allegro-pl (PLN), allegro-cz (CZK), allegro-sk (EUR) or allegro-hu (HUF): sets the currency and the offer language.
Delivery price list ID
From your Allegro sales settings; every offer created by the extension uses it.
Return policy ID, Implied warranty ID, Warranty ID
From your Allegro after-sales settings (the warranty is optional).
City, Post code, Province
The seller location of new offers.
Invoice type
VAT, VAT_MARGIN, WITHOUT_VAT or NO_INVOICE, as accepted for your account.
New offers
Publish at once, or save as inactive and publish in Allegro.
Authorization
"Connect to Allegro" (device code), "Connect with browser sign-in" (register the shown redirect address in your application) and "Disconnect".
The access token lives 12 hours and is refreshed automatically; the refresh token lives three months, is replaced at every refresh and stays valid as long as the queue runs. If Allegro revokes the authorization, the Connection page asks you to connect again.
Rules page
Group
Setting
Description
Prices
Markup %, fixed amount
Added to the OpenCart price. A category mapping overrides it for its products, a product markup (Listings page) overrides both.
Prices
Price endings
Keep, whole numbers, always x.99 or x.90.
Prices
Exchange rate
1 = use the rate of the OpenCart currency with the marketplace's code. Allegro has one price: the strike-through price is not sent.
Stock
Stock buffer, show zero at or below, maximum
Allegro sees stock minus the buffer.
New listings
Create offers automatically
Mapped products that are not on Allegro yet are sent by the sync.
New listings
Default brand, brand source, VAT rate, default weight, handling days
Defaults for data Allegro requires.
Orders
Customers, status mapping
Guest orders or customers matched by e-mail; the OpenCart order status for each Allegro status.
Shipping
Report picking, own carrier, tracking URL
Sets the Allegro order to Processing; adds the tracking number to the order lines and sets Sent.
Cron
Run the OpenCart cron (php /path/to/store/cron.php), or call the secret address shown on the Jobs page every few minutes.
Usage
Connect. Save the application credentials, then click "Connect to Allegro": enter the code shown on allegro.pl and press "Check authorization" (or use the browser sign-in). "Save and test" names your seller account.
Map a category (search the Allegro tree), then its required parameters. The brand is the manufacturer of the product unless you choose a product attribute on Rules.
List products. On Listings add a product by ID with its EAN (the barcode defaults to the EAN code, then the SKU, then the model) or add all products of a category. The sync creates the offers; they are "Waiting for Allegro" until Allegro has processed them, then "Live". A rejected product shows the reason in the Last error column; fix the product and click Retry.
Stock and price follow your catalogue. A change to a mapped product, or an order that takes its stock, is pushed at the next sync.
Orders. New Allegro orders appear under Sales > Orders with the note "Allegro order ...". An order whose EAN is not mapped is shown on the Orders page under "Failed imports only" with the reason and retried.
Ship. Set the order to Shipped and add a history comment with the tracking number, for example Tracking: 7330012345678 carrier: InPost. The next sync adds it to the order lines at Allegro and sets the order to Sent.
Cancel. On Orders, "Cancel at Allegro" refunds the lines with the reason (default PRODUCT_NOT_AVAILABLE) and cancels the order.
Returns are listed on the Returns page; Approve sends the refund to Allegro.
Run the queue by hand on the Jobs page with "Run the queue now".
Developer notes
Technical notes for developers who customize Allegro Marketplace Connector for OpenCart. The API client (src/Client/Api.php) is shared in design with the CS-Cart add-on; tests/unit.php checks every request it sends against tests/fixtures/official-operations.json, the list of operations (method and path) of the official OpenAPI specification.
Structure
Class
Role
Hub\*
Channel independent layer: category and parameter mapping, price rules, listing builder, product sync, order import into OpenCart tables, status map, shipments, returns. Talks to the channel only through Hub\DriverInterface
Drivers\Allegro\Driver
Category crawl, offer creation and read-back, price and quantity commands, checkout forms, fulfillment, shipments, customer returns, refunds
Drivers\Allegro\Mapper
Pure translation (offer body, checkout form to order, return to claim, refund bodies, statuses), unit tested with samples built from the specification
Client\Api, Client\BaseClient
HTTP calls with the versioned media type, device flow and authorization code flow, refresh with rotation under a database lock, TLS verification, masked logging
Accounts, Secret
Credentials and the token record sealed with AES-256-GCM
Queue, Jobs, Log
Job queue with back-off 5 min to 12 h, event log with masking and CSV
compat*.php, Store
OpenCart glue: the db_* compatibility layer, order creation, stock and price source, tracking from order history
API conformance (official Allegro documentation)
Source: the official OpenAPI 3 specification https://developer.allegro.pl/swagger.yaml and the authentication and orders tutorials, fetched 2026-11-06.
Purpose
What the extension does
Official source
Verified
Media type
Accept and Content-Type are application/vnd.allegro.public.v1+json on API calls
specification, "Media types"
yes (unit + mock answers 406 / 415)
Application authentication
HTTP Basic with your client ID and secret on the OAuth endpoints
authentication tutorial
yes
Device flow
POST /auth/oauth/device?client_id= then POST /auth/oauth/token with the device grant
authentication tutorial
yes
Authorization code flow
GET /auth/oauth/authorize (state, scope, redirect URI), POST /auth/oauth/token
authentication tutorial
yes
Refresh
grant_type=refresh_token; the refresh token is replaced at every refresh and the new one stored
authentication tutorial
yes
Connection test
GET /me
specification
yes
Categories and parameters
GET /sale/categories, GET /sale/categories/{id}/parameters
specification
yes
Catalogue match
GET /sale/products by GTIN
specification
yes
Images
POST /sale/images (upload host)
specification
yes
Offers
POST /sale/product-offers, GET /sale/product-offers/{offerId}, GET .../operations/{operationId}, GET /sale/offers?external.id=
specification
yes
Stock and price
PUT /sale/offer-quantity-change-commands/{commandId}, PUT /sale/offer-price-change-commands/{commandId} (UUID command ids) and their reports and task lists
specification
yes
Orders
GET /order/checkout-forms, GET /order/checkout-forms/{id}, PUT .../fulfillment, POST .../shipments, GET /order/carriers
specification, orders tutorial
yes
Returns and refunds
GET /order/customer-returns, POST /payments/refunds
specification
yes
Webhooks
Not used; orders are polled
not used
Assumed, not confirmed against a live answer: the device flow needs an application type that allows it; handling times use the ISO 8601 values from the documentation; customer return status words are free text in the specification, so rejection or the words reject / cancel / refund / finish / accept decide the state.
Tests
php81 tests/unit.php and php83 tests/unit.php (188 checks, no OpenCart needed); node tests/e2e.js runs a headless browser against a development store with tests/mock-server/server.js, which enforces Basic auth on the OAuth endpoints, the versioned media type, required offer fields and parameters, and rotating refresh tokens. The mock proves the extension against the documented shapes, not against the real Allegro.
Allegro is a trademark of its owner. This extension is independent and is not affiliated with or endorsed by Allegro.
FAQ
Does it use OCMOD?
No. Events and cron only.
Does it work with OpenCart 3?
No, OpenCart 4 only.
Which Allegro sites are supported?
Allegro.pl (PLN), Allegro.cz (CZK), Allegro.sk (EUR) and Allegro.hu (HUF). Pick one per connection.
Do I need an Allegro application?
Yes, your own (client ID and secret). The extension never shares one between shops.
Why must products have an EAN?
Allegro offers are tied to catalogue products identified by GTIN/EAN. Products without a valid EAN (8 to 14 digits) are reported with a readable error.
How are prices converted?
From the store's default currency to the OpenCart currency with the marketplace's code (PLN, CZK, EUR, HUF), or a fixed rate on the Rules page.
Does the extension talk to anything but Allegro?
No. It only calls Allegro (allegro.pl, api.allegro.pl, upload.allegro.pl and their sandbox hosts) with your own application, plus the Kavio Labs licence check.
Is it an official Allegro integration?
No. It is an independent extension that uses the public Allegro REST API and is not affiliated with or endorsed by Allegro.
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.