Get in touch
  • WordPress
  • CRM and integrations
  • v1.2.0

Epicentr: Price and Stock Sync for WooCommerce

A WooCommerce plugin sends price, old price and stock to the Epicentr Marketplace dashboard via the API: variations, only changed products, statuses and a log. Pro adds auto-updates.

Download Free
Pro · one-year licence The more sites, the less each one costs
Licence
two sites, annual
Trial
7 days, no card, one per site
Or all 173 Pro modules with All Access — 4 990 ₴ / year

The module in action — 46 sec

Clear even without sound: Ukrainian subtitles

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
Price, old (struck-through) price and stock sent to Epicentr Marketplace via the official API ✔ ✔
WooCommerce sale price sent as the price, regular price as the old price ✔ ✔
Variations sent separately, each with its own SKU and stock ✔ ✔
Matching products by SKU or by Epicentr product ID ✔ ✔
Price with or without tax, matching what the customer sees ✔ ✔
Stock threshold and behaviour for backorders ✔ ✔
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 ✔ ✔
Status of the last submission on the product and variation edit page ✔ ✔
List of products that failed to update, with the reason in plain language ✔ ✔
Batch log ✔ ✔
"Check connection" button — the token is verified before the first submission ✔ ✔
Dashboard token stored encrypted ✔ ✔
HPOS compatibility ✔ ✔
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 ✔ ✔
File check before the import: a foreign tag, a duplicate SKU, the exact line ✔ ✔
Table of products the dashboard accepts with losses: image, category code, GTIN, truncated fields ✔ ✔
List of SKUs that disappeared from the file ✔ ✔
A file with only the products changed since the last build — ✔
Automatic updates every 10 minutes — ✔
Price multiplier with rounding to the hryvnia — ✔
Category exclusions from sync — ✔
New products file for all categories with a daily rebuild — ✔

What it looks like

Price and stock sync with Epicentr in WooCommerce
WooCommerce → Epicentr: price and stock — send changes, update statuses, check connection
Epicentr sync status on a WooCommerce product page
The product page shows the status of the last submission to Epicentr
Settings for what to send to Epicentr from WooCommerce
Price, stock, matching by SKU or ID, sale price, tax, threshold and backorders

Key points

What the admin gets

A settings page under the WooCommerce menu: connection, what to send, automation, sync, a list of products that failed to update, and a batch log.

What exactly gets sent

Price. Taken with or without tax, as you choose, so it matches what the customer actually sees.

Products that failed to update

The dashboard doesn’t always accept a change, and the reason matters. No product with that SKU exists in the dashboard — codes need reconciling.

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 — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WordPress 6.2 or later, WooCommerce, PHP 7.4 or later. The plugin is compatible with HPOS — WooCommerce’s separate order tables. Outbound HTTPS access to the Epicentr API is required, and the store currency must be UAH for prices to be sent.

Version history

v1.2.0 Current

A changed-products file (Pro): every build writes a second file next to the full one containing only the offers whose line changed since last time; the report shows “Changed since the last…

v1.1.1

The account token is encrypted with AES-256-CBC plus HMAC instead of the old method that hosting antivirus scanners flagged and deleted.

v1.1.0

XML import file for new products with attributes.

All versions (4)
v1.0.0 First release

Price, old price and stock sent to Epicentr Marketplace via the API, variations, matching products by SKU or Epicentr ID, tax-inclusive pricing, stock threshold, backorders, skipping…

Frequently bought with Epicentr: Price and Stock Sync for WooCommerce

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Epicentr: Price and Stock Sync Nova Poshta Premium Mono Acquiring Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
2 490 ₴ / year instead of 4 160 UAH bought separately
Buy the bundle →

Full module description

Epicentr: Price and Stock Sync is a WooCommerce plugin 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, run out of stock, launch a sale — the dashboard gets the same update, with no file exports and no manually editing product listings.

The plugin 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 plugin just keeps prices and stock in sync with WooCommerce.

The plugin also helps with new products. The public Epicentr API can’t create products, so the plugin 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 in WooCommerce, but in the dashboard it stays the old one until someone gets round to updating it by hand. A product runs out on your site, but Epicentr keeps selling it, and the order has to be cancelled.

Every cancellation hurts the seller’s rating, and a price lower than the one on the website eats into margin. Across a few hundred SKUs, manual reconciliation can’t keep up with the changes, especially when the same stock is sold by both the website and the marketplace.

The plugin removes that reconciliation: it sees what changed on a product and sends only that to the dashboard.

What the admin gets

A settings page under the WooCommerce menu: connection, what to send, automation, sync, a list of products that failed to update, and a batch log. On every product’s and every variation’s edit page, next to the SKU, there’s an “Epicentr” line showing what last happened with that product.

What exactly gets sent

Price. Taken with or without tax, as you choose, so it matches what the customer actually sees. Epicentr only accepts prices in hryvnia, so the plugin sends price only when the store’s currency is UAH; otherwise only stock status is sent.

Old price. If a WooCommerce sale price is active on a product, it goes across as the price, and the regular price goes across as the struck-through old price.

Stock. “In stock” stays in stock. Out of stock becomes “out of stock.” For products with backorders allowed, you can choose how they’re shown in Epicentr. A stock threshold helps when the same warehouse serves both the website and the marketplace: stock at or below the threshold is already treated as “unavailable.”

Matching the product. By SKU: the site’s SKU must match the “Article” in the dashboard. Or by Epicentr product ID: the plugin adds an “Epicentr product ID” field to the product and variation edit pages, and if an import has already recorded the ID elsewhere, you can point it to your own meta key.

Variations. A variable product in Epicentr is a set of separate listings, so each variation is sent with its own SKU, price and stock.

How it works, step by step

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

2. You click “Send changes now.” The plugin walks the catalogue in chunks of up to 20 seconds so it doesn’t hit a hosting timeout; on a large catalogue you click the button again and the pass continues from where it left off.

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

4. Epicentr doesn’t apply changes instantly. “Update statuses from Epicentr” collects the 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: changing a product or its stock queues it, and every 10 minutes the plugin 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 SKU 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 has no SKU — there’s nothing to match it by.

The plugin shows this in plain words, not an API response code. The same set of values isn’t resent until you change the product, so the dashboard doesn’t get the same error every 10 minutes.

Batch log

Every submission goes into a log: when, whether by button or automatically, how many products, and what happened to them. A batch Epicentr is still processing waits for its status to be collected, after which it closes with a summary. The log can be cleared with one button.

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 plugin 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, the brand, GTIN, a meta field, 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 plugin 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.

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

Changed-products file and a check before the import

A full file with several thousand products takes the dashboard a long time to process, while a store changes about a dozen items a day. So every build now writes two files: the full one and a file with the changed products only. The plugin remembers a fingerprint of every <offer> line and compares against it next time — only products where something really differs get into the changed file: price, old price, stock, name, image or an attribute.

After a build the report shows the line “Changed since the last build: 12, unchanged: 3,480”, links to both files and a separate “Gone from the file” block — SKUs that were in the previous file and are not there any more: the product was disabled, removed from the category, or lost a required field. An import does not remove such products from the dashboard, so they are worth taking down there by hand.

The changed file is fetched the same way as the full one: with a button on the “Epicentr: products” screen. Both files sit side by side in the non-public wp-content/uploads/cceps-epicentr folder, and the admin links to each of them.

The “what the dashboard will reject” report

Until now you learnt about a broken file from the dashboard itself: “Unknown tag shop on line 3” — and the import stops. Now the file is checked before the upload: the “Check the file” and “Check the changed file” buttons read the finished XML exactly the way Epicentr reads it and name the problem together with the line number:

  • a foreign tag outside the set the dashboard accepts — the very line where the import breaks off;
  • the same SKU twice in the file — the dashboard matches products by SKU, so the second line overwrites the first;
  • an offer with no SKU;
  • truncated XML or a non-UTF-8 line — with the line number;
  • an empty file, or a file without a single product.

A separate table lists the products the dashboard accepts but with losses: an unreachable image (a local address, a format other than jpg/png/webp, a space in the URL), a category code missing from the directory, a name (150 characters) and a description (12,160) that get cut, an old price the dashboard ignores because after the multiplier and rounding it is no longer higher than the current one, a GTIN that fails its check digit, and optional attributes that quietly will not reach the product card. Such products do import — you simply see now what will be missing from them.

The changed file is a Pro feature; fingerprints are counted at all times, so right after buying Pro the first changed file is already correct. The file check works in the free version too.

Under the hood

The plugin 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 database encrypted.

What was actually sent and what the dashboard replied is stored in the product’s metadata, so the plugin knows what changed and doesn’t send anything unnecessary. The change queue lives in a single option and is capped in size; the log keeps the last 30 batches. Automation runs on WP-Cron.

The plugin adds nothing to the storefront — the customer never sees it and it can’t slow the site down.

How to install

1. Upload the archive under Plugins → Add New → Upload Plugin, and activate it.

2. WooCommerce → “Epicentr: Price and Stock” — paste the dashboard token and click “Check connection.”

3. Choose how to match products: by SKU or by Epicentr product ID.

4. Click “Send changes now,” then a few minutes later “Update statuses from Epicentr.”

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

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
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 plugin without a seller dashboard?

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

Does the plugin create products in Epicentr?

Not through the API: the public Epicentr API only updates price and stock. The plugin 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 plugin match a product in the dashboard?

By SKU: the site's SKU must match the "Article" in the dashboard. Or by Epicentr product ID — a separate field for it appears on the product and variation edit page.

How do variable products work?

Each variation is sent separately with its own SKU, price and stock — the same way it's set up in the Epicentr dashboard.

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 plugin will show this in the list of problem products, while stock will keep updating as usual.

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

Epicentr only accepts prices in hryvnia, so with a different store currency the plugin will only send stock status.

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