Get in touch
CRM and integrations · OpenCart

Epicentr: Price and Stock Sync for OpenCart

Download for free
Version
v1.1.0 (OpenCart 4)
v1.1.0 (OpenCart 3.x)
v1.1.0 (OpenCart 2.3)
Platform
OpenCart
Epicentr: Price and Stock Sync for OpenCart

What each licence includes

Feature Free Pro
Price, old (struck-through) price and stock sent to Epicentr Marketplace via the official API
Price calculated exactly as on the storefront: specials, tax, hryvnia rate
Specials from OpenCart 2.3/3.x and the new OpenCart 4.1 discount scheme
Product code in Epicentr — SKU or model
Stock threshold and a choice of "out of stock" or "on backorder"
A product disabled on the site is not sold on the marketplace either
Only products changed since the previous submission are sent
Batches of up to 1,000 products per request
Processing status collection: updated, unchanged, rejected, not found
List of products that failed to update, with the reason in plain language
Batch log: run time, number of records, result
"Check" button — the token is verified before the first submission
Dashboard token stored encrypted
The module handles Epicentr's API rate limit itself
XML file of new products with attributes from the Epicentr directory
Store categories linked to Epicentr categories, with a source for every attribute
Report: which products did not get into the file and which attribute is missing
Automatic sync after product changes and orders
Price multiplier with rounding to whole hryvnias
Category exclusions from sync
New products file for all categories with a daily rebuild

Epicentr: Price and Stock Sync is a module for OpenCart 2.3, 3.x and 4.x that sends the price, the old (struck-through) price and the stock status of your store’s products to the Epicentr Marketplace seller dashboard through the official API. Change a price on the site, run out of a product in the warehouse, launch a promotion — the dashboard gets the same update, with no file exports and no manually editing hundreds of listings.

The module doesn’t change descriptions of products already in the dashboard. It updates what changes daily: how much something costs and whether it’s in stock. The listings in the dashboard stay yours — the module just keeps their prices and stock in sync with the store.

The module also helps with new products. The public Epicentr API can’t create products, so the module builds an XML file for the dashboard import: it takes categories and attributes from the Epicentr directory, values from your products, and shows which required attribute is missing. After moderation, prices and stock of those products keep syncing through the API.

Why a store needs this

A seller on Epicentr runs two catalogues: their own store and the marketplace dashboard. The price gets changed on the site, but in the dashboard it stays the old one until someone gets round to updating it by hand or uploading a new file. A product runs out on your site, but Epicentr keeps selling it, and the order has to be cancelled.

Every such cancellation hurts the seller’s rating, and a price lower than the one on the website simply eats into margin. Across a catalogue of a few hundred SKUs, manual reconciliation can’t keep up with the changes, especially on a sale day.

The module removes that reconciliation. It sees what changed on a product and sends only that to the dashboard — price, old price and stock.

Live demo

Epicentr has no sandbox: the API only opens with a live seller dashboard token, so a demo submission isn’t possible — not on ours, and not on anyone else’s. Instead of a demo, the module has a “Check” button: you paste your token and immediately see whether the dashboard accepted it, before the first submission.

Connecting the Epicentr: Price and Stock module for OpenCart
The dashboard token is stored encrypted; the “Check” button shows Epicentr’s response immediately

What the admin gets

One page under Extensions → Modules: connection, exactly what to send, sync, a list of products that failed to update, and a batch log. Above the button there are counters: how many products have been updated, how many are still being processed by Epicentr, how many weren’t found in the dashboard, and how many changes are waiting to be sent.

Price and stock sync with Epicentr in the OpenCart admin
Status counters and the “Send changes” button — only what has changed is sent

What exactly gets sent

Price. The module calculates it exactly as the customer sees it on the storefront: with tax under the store’s rules, and in hryvnia, even if the store’s main currency is different. A price mismatch between the site and the marketplace prompts questions from the dashboard, so the module doesn’t take the “raw” price from the database — it repeats the storefront’s own calculation.

Old price. If a special price is active on a product, the special price goes across as the price, and the regular price goes across as the struck-through old price. Specials from both OpenCart 2.3/3.x and the new OpenCart 4.1 discount scheme are handled the same way.

Stock. A product with stock above the threshold is “in stock.” Out of stock becomes “out of stock” or “on backorder,” as you choose. A product disabled on the site is also not sold on the marketplace.

Product code. Epicentr matches your product by article number. The module uses the SKU, or the model if the SKU is empty. You can force it to use only the model.

Settings for what to send to Epicentr
Price, stock, product code, stock threshold and behaviour for unavailable products

How it works, step by step

1. You paste the dashboard token and click “Check.” The token is found in the dashboard: Company Settings → the API tab.

2. You click “Send changes.” The module walks the catalogue in chunks so it doesn’t hit a hosting timeout, calculating the price, old price and stock for each product.

3. Changed products are batched up to 1,000 items and sent to Epicentr in a single request. Products with no changes since the previous submission are skipped.

4. Epicentr queues the batch. A few minutes later, the “Update statuses” button collects the processing result: what was updated, what was already the same, what was rejected.

5. Products with a problem land in a “Products that failed to update” list with a plain-language explanation.

In Pro, steps 2–4 happen on their own: saving a product in the admin panel, or an order that reduced stock, queues the product, and a cron job sends the queue and collects the results.

Products that failed to update

The dashboard doesn’t always accept a change, and the reason matters. No product with that article number exists in the dashboard — codes need reconciling. The product is part of an Epicentr promotion — the price can’t be changed while the promotion runs. The product on the site has neither an SKU nor a model — there’s simply nothing to match it by.

The module shows this in plain words rather than an API response code, with a link to edit the product. The same set of values isn’t resent until you change the product, so the dashboard doesn’t get the same error every hour.

List of products that failed to update in Epicentr
The dashboard’s rejection reason in plain words, with a link to the product

Batch log

Every submission goes into a log: when, whether by button or automatically, how many records, and what happened to them. A batch Epicentr is still processing is marked “awaiting result” — once statuses are collected, it closes with a summary.

Epicentr sync batch log
The log shows every batch: when it ran, how many records, and the dashboard’s processing result

New products with attributes

Epicentr accepts a new product only with the required attributes from its own directory: brand, country, volume — each category has its own set and its own value codes. By hand that is a spreadsheet of hundreds of rows. The module turns it into three steps:

  1. Directory. A button loads Epicentr categories through the API; attribute sets and list values are loaded only for the categories you use.
  2. Links. For a store category you pick an Epicentr category by searching its name, and for each attribute you choose where the value comes from: an attribute, an option, the manufacturer, EAN, weight and dimensions (converted to grams and millimetres), or one value for all products. List values are matched by name, and mismatches like “Рінгель” → “Ringel” are matched by hand.
  3. File. The module builds XML in the Epicentr import format and lists the products that did not get into the file, with the reason: no photo, an empty required attribute, a value missing from the directory. Upload the file in the dashboard: Import → File → Update all.
Mapping Epicentr attributes to product fields
Category attributes: required ones are marked *, list values are matched to the Epicentr directory

Without Pro the file is built for one store category; with Pro, for all of them, and it rebuilds itself daily.

Free version and Pro

The free version handles sync with a button: price, old price, stock, storefront-matching calculation, skipping unchanged products, status collection, a list of problem products and a log. There’s no limit on the number of products.

Pro removes the manual part and adds rules:

automatic sync: product changes and stock reductions from orders go to the dashboard on their own;
— a price multiplier with rounding to whole hryvnias — for example, a 15% higher price on Epicentr to cover the commission;
— a new products file for any number of categories, rebuilt daily;
category exclusions — products whose price and stock you manage yourself in the dashboard are left untouched by the module.

Pro can be tried free for 7 days, no card required.

Pricing

The Pro licence costs 1,290 UAH per domain. For OpenCart the licence is perpetual: you pay once, and the Pro features stay with you with no annual payments.

Technical requirements

OpenCart 4.x, 3.x and 2.3 are supported, along with ocStore on these versions — separate archives for each branch. PHP: whatever version your OpenCart runs on. The cURL extension is required, along with outbound HTTPS access to the Epicentr API.

Epicentr only accepts prices in hryvnia, so the store needs a UAH currency. If the main currency is different, the module converts the price using the rate from Localisation → Currencies.

Under the hood

The module works through Epicentr’s official Merchant API endpoints for updating prices and stock — no dashboard scraping, no simulated login. The token is stored in the store’s settings encrypted.

Each product’s state — exactly what was sent and what the dashboard replied — sits in a separate table, so the module knows what changed and doesn’t send anything unnecessary. Epicentr’s limit of 120 requests per 2 minutes is handled by the module itself: if it’s reached, the rest goes out on the next pass.

For automation on OpenCart 4 the module registers a task in the scheduler, and for more frequent runs — and on OpenCart 2.3 and 3.x — it shows a tokenised link for the hosting’s cron. The module adds nothing to the storefront — the customer never sees it.

How to install

1. Download the archive for your version: on OpenCart 4.x and 3.x, via Extensions → Extension Installer. On OpenCart 2.3 the installer only works over FTP, so the contents of the upload folder are uploaded to the store’s root.

2. Extensions → Modules → “Epicentr: Price and Stock” → Install.

3. Open the settings, paste the dashboard token and click “Check.”

4. Confirm that the product code in Epicentr matches the site’s SKU or model, and click “Send changes.”

If the API tab isn’t visible in the dashboard, access to updating prices and stock is granted by your Epicentr category manager.

Version history

1.1.0 — XML import file for new products with attributes: the Epicentr category and attribute directory through the API, category links, value sources, list value matching and a report of products that did not get into the file. Without Pro — one category; with Pro — all of them and a daily rebuild.

1.0.0 — first release. Price, old price and stock sent to Epicentr Marketplace via the API, storefront-matching price calculation (specials, tax, hryvnia rate), product code by SKU or model, stock threshold, skipping unchanged products, batches of up to 1,000 records, processing status collection, a list of products that failed to update, a batch log, builds for OpenCart 4.x, 3.x and 2.3. Pro adds automatic sync, a price multiplier with rounding, and category exclusions.

Frequently asked questions

Where do I get an Epicentr API token?

In the seller dashboard: Company Settings → the API tab. If the tab isn't visible, or the dashboard says you don't have permission for the action, access to updating prices and stock is granted by your Epicentr category manager.

Can I test the module without a seller dashboard?

No. Epicentr has no sandbox — the API only opens with a live dashboard token. The "Check" button shows whether the dashboard accepted the token, before the first submission.

Does the module create products in Epicentr?

Not through the API: the public Epicentr API only updates price and stock. The module builds new products into an XML file with attributes from the Epicentr directory, and you upload it in the dashboard (Import → File → Update all). After moderation, prices and stock of those products keep syncing.

How does the module match a product in the dashboard?

By article number: the product's SKU is used, or the model if the SKU is empty. The code in the Epicentr dashboard must match it. Products the dashboard couldn't find appear in the "Products that failed to update" list.

What happens to a product taking part in an Epicentr promotion?

While the marketplace promotion is running, Epicentr won't allow the price to change. The module will show this in the list of problem products, while stock will keep updating as usual.

My store's main currency isn't hryvnia. Is that a problem?

No, as long as UAH is set up under Localisation → Currencies. The module will convert the price using the store's rate. Without hryvnia, the module will only send stock status.

Which OpenCart versions are supported?

4.x, 3.x and 2.3, as well as ocStore on these versions.

Is the licence annual or perpetual?

For OpenCart it's perpetual: one payment, no annual fees.

Questions about the module?

Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.

@catcode_support

Not quite what you are looking for?

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

Order a custom module