Skip to content

Nex Digital / Menu

Repascentrum

Repascentrum: a parts e-shop with a TecDoc catalogue, wired both ways into the ERP

126,123
parts in the TecDoc catalogue
51,229
vehicles a part can be matched to
16,500
catalogue items kept in sync with the ERP
631 → 0
broken 301 redirects after the migration

Repascentrum runs stock, pricing and orders in the APSi ERP, the e-shop was cut off from it and parts could not be searched by car. We built WooCommerce on Bedrock with a two-way ERP sync and our own catalogue API on top of TecDoc data, so customers find a part by vehicle, OE or EAN number.

How it is connected

  • WordPress
  • Bedrock
  • WooCommerce
  • APSi ERP
  • Laravel 13
  • TecDoc TAF
  • Meilisearch
  • Redis
  • MariaDB
  • Vite
  • Tailwind
  • Docker
  • Meta Conversions API
  1. TecDoc parts catalogue, OE numbers and vehicle links (TAF data)
  2. Catalogue API (Laravel) search by car, OE, EAN or text
  3. WooCommerce e-shop, cart and orders
  4. APSi ERP stock, prices and orders
Client
Repascentrum
Service
Web apps and automation
Website
repascentrum.sk

Where it started

Repascentrum sells remanufactured car parts - turbochargers, power steering units, injectors, fuel pumps, gearboxes. The whole operation lives in the APSi ERP: stock cards, pricing, orders and customer records all originate there. The old e-shop was cut off from it, the catalogue was maintained by hand, and every change made in the warehouse had to be retyped on the website.

Two specifics rule out an off-the-shelf answer. A remanufactured part carries a deposit for the old unit, and in the ERP that deposit is a separate stock card - so after a sync it becomes a separate product. And the existing catalogue had to move to a new domain without losing search rankings.

What we built

WordPress on Bedrock with WooCommerce, a custom theme built on Vite and Tailwind, and three purpose-written plugins. No page builder, no generic sync plugin off the shelf.

The repascentrum.sk e-shop home page
The repascentrum.sk home page. A custom theme, no page builder.

Two-way sync with the APSi ERP

The repas-erp-integration plugin connects straight to the ERP database over MySQLi and keeps both directions running:

  • ERP to e-shop. A nightly cron walks the whole catalogue and refreshes prices and card states. The run is cursor-paginated and persists its position as it goes, so a container restart or a timeout costs at most one batch and the next call resumes where it stopped. A part that disappears from stock is hidden or trashed, never hard-deleted.
  • E-shop to ERP. An order moving to processing is written into the objednavky_hl and objednavky tables, including creating the customer record and reserving the document number under a database lock so two concurrent exports cannot claim the same one. The write is idempotent and the order screen carries a manual re-export button.
  • Product edits in the admin are pushed back to the stock card, stock level included. Deletion propagates as a card status change, never as a physical DELETE.

The whole write path has a kill switch at the database layer, so staging - which runs on a clone of the production database and therefore holds working credentials to the live ERP - can never write into the real thing.

The deposit for the old part

In the ERP the part and its deposit are two separate cards. On the website it has to read as one item. The sync stamps both with a pairing code, the deposit stays hidden outside the catalogue, and it is added to the cart alongside the part at the same quantity. Change the quantity or remove the part and the deposit follows. In the cart and in the order review both rows are visually tied into one block, and the product page shows the price broken down into part, deposit and total.

Catalogue migration and SEO

Moving to the new domain, we worked through the existing redirects and took 631 broken 301s down to zero - part of them re-targeted onto the paired product, the rest onto the nearest category. The category URL base was deliberately left untouched, because the old links point at it.

Measurement, performance and legal duties

  • woo-meta-pixel-plus sends both the Meta Pixel and the Conversions API, deduplicated through a shared event ID so one order is never counted twice. The product XML feed is generated in batches and cached, because the catalogue holds around 16,500 items and a single unbounded query would take the server down. Scripts only activate after cookie consent.
  • repas-wc-admin-tools adds AI generation of product and category descriptions plus automatic categorisation, with a queue and spacing between calls to respect API rate limits.
  • A withdrawal-from-contract form required by Slovak act 108/2024, with records in the admin, prefill from the order and a link in order e-mails.
  • The site runs on a dedicated VPS with automated deployment from git, Redis object cache, nginx page cache and a nightly database backup.

The TecDoc parts catalogue

On top of the e-shop runs a TecDoc spare-parts catalogue: pick by make, model and engine, search by part number, OE number, EAN or text. The catalogue is held by a separate Laravel application that serves JSON to the e-shop and is not reachable from the outside; WordPress wraps it in the theme, so a part page is a normal HTML page a search engine can read.

The drive shaft category narrowed to the chosen vehicle
The drive shaft category after choosing a Skoda Octavia III 1.6 TDI: the listing shows only the parts that fit it.

We do not read TecDoc through the web service. The native TAF data is imported into our own database through staging tables and an atomic swap, so the catalogue never goes dark during an update. After importing 25 brands it holds 126,123 parts, 1.39 million links to 51,229 vehicles and 1.6 million search numbers.

The list of vehicles a drive shaft fits
A catalogue part detail: the drive shaft fits 172 vehicles, listed straight from the TecDoc links.

A part that is not in stock becomes a WooCommerce product only when it goes into the cart, and its price is checked again on the server. The ERP sync skips these products, so they never reach the warehouse. The shop’s own remanufactured parts are linked to the catalogue by OE number and take their vehicle fitment from it.

Working on something similar?

Tell us what you are struggling with. Within 24 hours we will get back to you with a concrete plan.