Get in touch
  • OpenCart
  • CRM and integrations
  • v1.0.0

eMAG Marketplace Connector for OpenCart — eMAG prices, stock and orders in your shop

OpenCart 4, 3 and 2.3 integration with eMAG Marketplace (Romania, Bulgaria, Hungary, Fashion Days): import and link your offers by SKU or EAN, automatic price and stock sync through the official eMAG API. Pro brings eMAG orders into OpenCart through the core order history, sends statuses back to eMAG, issues AWBs, sends invoices, publishes products and watches the Buy button.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Compatibility
OpenCart 4.0.2.0+ and 4.1.x (tested on 4.1.0.3 with PDO and 4.0.2.3) · OpenCart 3.x (tested on 3.0.5.0) · OpenCart 2.3.0.2 · PHP 7.0+ (tested on 7.0, 8.1 and 8.3)
Version
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Licence
one site, lifetime
Trial
7 days, no card, one per site
Updated
September 2026
Or all 144 Pro modules with All Access — 4 990 ₴ / year

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Connects eMAG Romania, Bulgaria, Hungary and Fashion Days (RO, BG) through the official Marketplace API ✔ ✔
Imports your existing eMAG offers and links them to products by SKU, Model or MPN (part number), EAN or ID; report of unlinked offers ✔ ✔
Price and stock sync after a sale, a product save or a delete, in batches of up to 50, changes only ✔ ✔
Price without VAT from the OpenCart price, % and fixed markup, currency rate, special price with the regular one crossed out ✔ ✔
VAT rates from your eMAG account, a rate per tax class and per product ✔ ✔
Stock reserve for your own shop, quantity for products without stock tracking, handling time ✔ ✔
A disabled or deleted product becomes inactive on eMAG ✔ ✔
eMAG tab in the product form: sell on eMAG, offer id, VAT, state on eMAG, "Send now" ✔ ✔
Status of every offer: documentation validation, errors, price and stock on eMAG ✔ ✔
OpenCart 4 scheduler or a cron URL for your host; 30-day API log, password stored encrypted ✔ ✔
Module languages: English, română, български, magyar ✔ ✔
eMAG orders in OpenCart: instantly through the callback plus a check every 5 minutes, acknowledged on eMAG — ✔
Orders go through OpenCart's own order history with its events: fiscal, notification and shipping-label modules see them like any order — ✔
Cancelled on eMAG cancels the OpenCart order and restocks; cancelled in OpenCart goes back to eMAG with a reason — ✔
Status back to eMAG ("prepared", "finalized") from the regular order history in the admin — ✔
AWB through your eMAG courier accounts: lockers, cash on delivery, PDF labels A4/A5/A6, delivery status — ✔
Invoice attached to the eMAG order — ✔
Publishing: attach to an eMAG product by EAN or create a new product with category, brand, images and characteristics — ✔
Buy button monitor: your rank, number of offers, best price, e-mail when you lose first place — ✔

What it looks like

eMAG Marketplace Connector connection settings in OpenCart 4: marketplace, API user, connection check
Extensions → Modules → eMAG Marketplace Connector → Connection: eMAG Romania, API user, password stored encrypted, last connection check OK.
OpenCart products linked to eMAG offers: documentation status, Buy button rank, result
Products tab: offer import from eMAG, the sync queue and the linked products — net price and stock sent to eMAG, documentation status, Buy button rank and eMAG’s answer.
eMAG tab in the OpenCart product form: sell on eMAG, offer id, VAT, handling time
The eMAG tab of the product form: sell on eMAG, offer id, VAT rate and handling time, last sent and state on eMAG, “Send to eMAG now”, publishing below (Pro).

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. If our server is unreachable, Pro keeps working for 14 more days. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 4.0.2.0+ and 4.1.x (tested on 4.1.0.3 with the PDO driver and on 4.0.2.3), 3.x (tested on 3.0.5.0) or 2.3.0.2.
  • PHP 7.0+ — whatever your OpenCart version needs (tested on 7.0, 8.1 and 8.3). The cURL extension.
  • An eMAG Marketplace seller account with an API user and the server’s IP whitelisted for the eMAG API.
  • Cron: OpenCart 4 — its own scheduler (System → Maintenance → Cron) or the cron URL; OpenCart 3 and 2.3 — the module’s cron URL in your host’s cron, every 1–5 minutes.
  • Module languages: English, Romanian, Bulgarian, Hungarian — following the admin language.
  • One shop (store 0) per eMAG account.

Version history

v1.0.0 Current September 2026

For OpenCart 4.0.2+/4.1, 3.x and 2.3.

Frequently bought with eMAG Marketplace Connector for OpenCart

4 modules in one order — 40% cheaper than separately

“Store starter” bundle eMAG Marketplace Connector Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 144 modules in All Access for 4 990 ₴.
3 790 ₴ lifetime instead of 6 260 UAH bought separately
Buy the bundle →

Full module description

eMAG Marketplace Connector for OpenCart connects your OpenCart 4, 3 or 2.3 shop to eMAG Marketplace, the largest marketplace in Romania, Bulgaria and Hungary (together with Fashion Days). You sell in your shop and on eMAG — the module keeps eMAG prices and stock in line with OpenCart, and with Pro it brings eMAG orders into your shop and ships them through eMAG’s couriers. Everything goes through the official eMAG Marketplace API: no scraping, no manual exports. Running WooCommerce? See eMAG Marketplace Connector for WooCommerce.

What you need. An eMAG Marketplace seller account with an API user, and your server’s IP address whitelisted for the API in the eMAG account. An honest word on testing: eMAG has no public sandbox — the API answers only whitelisted sellers. The module is built from the official eMAG Marketplace API reference v4.5.2 and tested end to end against a simulation of that API (offers, prices, stock, orders, cancellations, statuses, AWBs, invoices, publishing) on OpenCart 4.1, 4.0.2.3, 3.0.5.0 and 2.3.0.2. It has not run on a live seller account yet — try it on yours with the 7-day Pro trial. The log shows every request and eMAG’s answer, and if eMAG answers differently from its documentation, we fix it quickly.

What your shop gets

  • One module, five marketplaces: eMAG Romania, eMAG Bulgaria, eMAG Hungary, Fashion Days Romania and Bulgaria. The same API, your own account and currency (RON, EUR, HUF).
  • “Save and check the connection” checks the API user and password and reads the VAT rates of your account. An eMAG error (wrong password, IP not whitelisted) is shown in plain words together with eMAG’s answer.
  • The API password is stored encrypted (AES-256 with HMAC), never shown in the form again and never written to the log.
  • Offer import: the module reads all your eMAG offers and links them to OpenCart products by part number — the SKU, Model or MPN field of your choice, normalised for spaces and punctuation the way eMAG does it — by EAN, UPC, JAN or ISBN, or by ID. Ambiguous matches are not linked by guess but listed separately.
  • Sync: a sale in the shop, a product saved in the admin, a product deleted — and the offer goes into a queue the scheduler sends every minute. Once an hour, a full check of all linked products. Only changes are sent, in batches of up to 50 offers; an offer eMAG refuses is found one by one without holding up the rest.
  • Price rules: the price without VAT, the way eMAG takes it (a product with a tax class already has a net OpenCart price, one without has a gross price), % and fixed markup, the shop’s currency rates or a manual rate, the OpenCart special price with the regular price crossed out, and the min–max range eMAG requires.
  • Stock: a reserve for your own shop, a quantity for products without stock tracking, handling time.

Every product form gets an eMAG tab: sell or not, offer id (the product id by default), its own VAT rate and handling time, the state on eMAG and a “Send to eMAG now” button. The fields are saved with the regular product save button.

Pro: orders, shipping, publishing

  • eMAG orders in OpenCart — instantly through eMAG’s callback URL, and a check every 5 minutes picks up anything missed. Buyer, address or locker, the region by name (Bucharest and its sectors included), products, line VAT, vouchers, the SGR deposit and shipping — the total matches eMAG’s, in RON at the shop’s rate.
  • OpenCart’s own order history: every status of an eMAG order is set by the same call as for a storefront order, with all of its events. Your fiscal receipt, Telegram notification, automatic waybill or CRM modules see eMAG orders like any other, and OpenCart itself subtracts and restocks. OpenCart’s confirmation e-mail goes to the shop’s address or the one you choose, as eMAG does not share the buyer’s e-mail.
  • Acknowledged on eMAG and one order per eMAG number, even when the callback arrives several times.
  • Cancellation both ways: cancelled on eMAG becomes “Canceled” in OpenCart with the stock back; cancelled in OpenCart goes to eMAG with the reason you choose.
  • Status back to eMAG: change the status in the regular order history in the admin — at the chosen status the order becomes “prepared” or “finalized” on eMAG.
  • AWBs through your eMAG courier accounts right from the order page: sender from your eMAG addresses, the buyer’s locker, cash on delivery for the order total, parcels, envelopes and weight, PDF label A4, A5 or A6, delivery status refreshed hourly and, if you want, “Complete” after delivery.
  • Invoice: the link to the invoice PDF goes to the eMAG order with a button in the same box.
  • Publishing: find a product on eMAG by EAN and attach your offer, or create a new product — the eMAG category from the OpenCart category map, the brand from the manufacturer, description, images, characteristics from OpenCart attributes (matched by name or mapped), EAN, warranty; the documentation validation status comes back to the product.
  • Buy button monitor: your rank, the number of offers and the best price every 6 hours, and an e-mail when you lose first place.

How it works, step by step

  1. Connect. Extensions → Modules → eMAG Marketplace Connector → Connection: marketplace, API user and password, “Save and check the connection”.
  2. Price rules. “Prices & stock” tab: prices with or without VAT, markup, currency rate, stock reserve, VAT rates per tax class.
  3. Link. “Products” tab → “Read offers from eMAG”: eMAG offers are linked to products, unlinked ones are listed in the report.
  4. Sync. From then on every sale and every product change goes to eMAG by itself. OpenCart 4 does it with its own scheduler; for OpenCart 3 and 2.3 add the cron URL from the “Log” tab to your host’s cron.
  5. Orders (Pro). Enable the import and paste the two callback URLs from the “Orders” tab into the eMAG account — new and cancelled orders reach OpenCart instantly.
  6. Shipping (Pro). “AWB” tab: courier accounts and addresses from eMAG, the sender’s phone — and the AWB is issued from the order page.

Under the hood

  • Request format per eMAG’s documentation: JSON bodies, saves under the data key, reads with top-level filters; for an unusual gateway the read encoding can be switched with a constant.
  • eMAG rate limits (3 requests per second, 12 for orders) are respected by the module, and a 429 is retried.
  • OpenCart’s own events: the order rows go into the order tables, and the status goes through model checkout/order (addHistory on OpenCart 4, addOrderHistory on 3.x and 2.3). Admin actions on OpenCart 4 run through a storefront instance, just as OpenCart’s own admin does it; on OpenCart 3 and 2.3 they run on the shop’s storefront at a protected URL, and if the storefront cannot be reached the action runs in the admin and says so.
  • No duplicate orders: a database lock per eMAG number and the eMAG number ↔ OpenCart order link; a repeated callback creates no second order and does not move stock.
  • The callback is protected by a key: a stranger’s call gets 403 and cannot make the module call eMAG.
  • No bricking: when a trial ends, only the Pro features stop; sync keeps running.
  • Uninstalling removes the events, cron jobs and permissions; the link tables and a copy of the settings stay, so a reinstall loses nothing.

Installation

  1. OpenCart 4: Extensions → Installer → upload cc_emag.ocmod.zip (keep the file name) and click “Install”. OpenCart 3: Extensions → Installer → cc_emag-oc3.ocmod.zip, then Extensions → Modifications → “Refresh”. OpenCart 2.3: upload the contents of the upload/ folder from cc_emag-oc23.ocmod.zip to the shop root (FTP or your host’s file manager) — the 2.3 Installer copies no files without FTP set up.
  2. Extensions → Extensions → Modules → eMAG Marketplace Connector → “Install”, then “Edit”.
  3. Connection: marketplace, API user and password, “Save and check the connection”.
  4. Products: “Read offers from eMAG” — your offers are linked to products.
  5. For Pro: paste the licence key from the e-mail after payment or click “Start the 7-day trial” on the “Licence” tab, then the Orders and AWB tabs. On OpenCart 3 and 2.3 add the cron URL from the “Log” tab to your host’s cron.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
What do I need?

An eMAG Marketplace seller account with an API user (eMAG grants API rights in the seller account) and your server's IP address whitelisted for the API in the eMAG account — eMAG refuses other addresses.

Which eMAG account was the module tested with?

eMAG offers no public sandbox: the API answers only sellers with a whitelisted IP. The module is built from the official eMAG Marketplace API reference (v4.5.2) and tested end to end against a simulation of that API on OpenCart 4.1, 4.0.2.3, 3.0.5.0 and 2.3.0.2. It has not run on a live seller account yet — try it on yours with the 7-day Pro trial; eMAG's answers are in the log.

Will my fiscal, Telegram notification or shipping-label modules react to eMAG orders?

Yes. The module sets every status of an eMAG order through OpenCart's own order history call (addHistory / addOrderHistory), so every event other modules listen to fires just as it does for an order from your storefront. If a module should ignore marketplace orders, untick "OpenCart order events".

Where does OpenCart send e-mails about eMAG orders?

eMAG sends a hash instead of the buyer's e-mail, so the module stores the shop's e-mail on the order, or the address you set. OpenCart's confirmation reaches you, not a made-up address; eMAG informs the buyer.

Does the module create new offers on eMAG?

Not in Free: the light offer API of eMAG only updates existing offers. New offers are created in the eMAG account and linked here; with Pro they are published from the product form.

The connection check returns HTTP 401 or 403.

401 means a wrong API user or password. 403 means the server's IP is not whitelisted: add the server's outgoing IP address in the eMAG account — your host can tell you which one it is.

What if I don't want to pay for Pro?

Offer linking, price and stock sync, VAT rules and the log stay free with no time limit.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module