Subiekt GT and WooCommerce integration: prices, stock and orders with no re-keying
A shop selling radiators and parts for machinery and vehicles had two systems that did not talk to each other: WooCommerce and Subiekt GT. We connected them so that prices, stock, dimensions and OE numbers travel from Subiekt to the shop on their own, while orders from the shop land in Subiekt as customer orders (ZK) with the right customer, country and VAT. The integration runs in production every day, and the catalogue has over a thousand products.
Starting point
The company sells parts in an online shop, but runs its stock, prices and documents in Subiekt GT. For the business these are two separate worlds. A price change in Subiekt required a fix in the shop. Stock in the shop was sometimes different from what was on the shelf. Someone had to re-key an order from the shop into Subiekt by hand: pick the customer, check the country and the VAT rate, retype the items.
On top of that came a specific catalogue. Some products have a dozen or so OE numbers, dimensions are written in different formats (“520X680” for a radiator, “575-210” for a tank), and the types from the Subiekt record arrive in English and with typos.
Principle
Subiekt stays the single source of truth about the product: price, stock, symbol, dimension. The shop shows what is in Subiekt, and documents are created in Subiekt from orders, not the other way round.
The solution: an agent next to Subiekt, the shop over the REST API
Our agent runs on the computer where Subiekt GT is installed. It reads products, prices and stock from the SQL Server database and creates documents through Sfera GT, InsERT’s official interface. We never write invoices or orders straight into the tables of Subiekt, because such a document touches numbering, VAT, settlements and stock, and is easy to corrupt.
The agent connects to the shop itself through the WooCommerce REST API, so the company does not have to expose its network or database to the outside. New and paid orders go first to a local buffer, and only from there to Subiekt. That way a brief network outage or a closed Subiekt does not lose orders.
The first run, on 16 July, covered 315 products. Today the agent handles the whole catalogue, creates missing products as drafts for review and fills in additional data from the record.

See what happens to an order
Pick a scenario and click “Send to Subiekt”. The data is sample data.
Fictional data. The simulation shows the order of steps and the rules, not a connection to a live Subiekt.
What travels from Subiekt to the shop
A shop catalogue is more than price and stock. A few fields from the Subiekt record come across, and the shop uses them in search, filters and on the product page.
| From Subiekt | Where it shows in the shop |
|---|---|
| Item symbol | SKU the key linking the product to the record, the field is locked in the panel |
| Gross price and available stock | Price and availability on the list and the product page |
| OE numbers | Search: “D176453”, “d17645/3” and “OE D17645 3” find the same product |
| Dimensions published in the shop | Product page, “Additional information” and the dimension filter in the sidebar |
| Radiator type (item model) | A label in Polish and English instead of the code from the record |
| New items | Draft products in the shop, ready to review and publish |

The symbol is a key, so we guard it like one
The most dangerous error in an integration like this is a silent one: someone in the shop panel “fixes” the SKU because a typo caught their eye. From that moment the product stops linking to the record. A duplicate appears, or stock lands on a different product than the one in the description.
That is why the SKU field in the panel is read-only. There is an escape hatch, “I am changing the symbol on purpose”, which requires confirmation, but writes made by the integration itself pass without restrictions. The difference is shown below.
What happens when someone changes the SKU
Switch to compare the shop without and with the lock.
Fictional symbols and products.
Dimensions: one field, two formats, a filter with tolerance
Customers search for a radiator by its dimension. The record gives it as text: for a radiator “AxB” means height times width without thickness, for a tank “A-B” means width and thickness. From that text the shop calculates numbers for filtering and sorting. The filter works with a ±5 mm tolerance, because nobody measures a radiator to the millimetre.

Enter the radiator’s dimensions
Move the sliders. Green items fit within the ±5 mm tolerance.
Fictional catalogue. ±5 mm tolerance, as in the shop.
What it looks like in production
Below is data from the running shop, read on 27 October at around 15:30. It shows that changes do not arrive once a day but throughout the working day, and that the catalogue has a clear structure.
Updates during the day and the catalogue structure
Hover over a bar to see the numbers.
Updates cover changes of price, stock and record data as well as edits in the panel. Categories overlap, so the same product may be counted in several.
Four things you cannot see from the outside
These are not features from a brochure but places where an integration can quietly break. Pick one to see what happened and what we did about it.
1. Sfera GT is 32-bit
InsERT’s interface is registered only as a 32-bit COM component. A regular 64-bit Python cannot load it and reports that the class is not registered. This only comes up on the client’s computer.
Documents are created by a separate process in a 32-bit environment, while the rest of the agent stays in a modern version.
2. The customer’s country is not always the shipping country
A German company with delivery to Poland got a Polish address in Subiekt, and that changes the VAT.
We added a “Company country” field to the checkout, and the integration takes the customer’s country from it. When the company country differs from the shipping country, the checkout shows a hint, because customers really do mix up countries with similar names.
3. A foreign quote changes the order after the fact
An order with delivery outside Poland has no shipping price at the time of purchase, so the ZK in Subiekt is created with amounts that exclude the quote.
Staff quote the order in the panel, the shop recalculates it (WDT sale, 0% VAT, net prices), sends the customer an e-mail and raises the quote version counter. The integration sees the counter change and corrects the already created ZK instead of creating a second one.
4. The record’s dictionary has typos and has to be translated
The radiator type arrives as a code in English, e.g. “WATER COOLER” or “OIL COOLER”, and the dictionary also contains typos.
We do not fix Subiekt. The shop has a map from codes to labels in Polish and English, and an unknown code is shown as it came.
Results
- Prices and stock in the shop match Subiekt within a few minutes, with no second entry.
- Orders are created in Subiekt as ZK with the right customer, country and VAT rate, including foreign orders after a quote.
- Search finds a product by OE number in any notation, and the dimension filter works on data from the record.
- New items from Subiekt appear in the shop as drafts, so nobody creates a product from scratch.
- The symbol linking the shop to the record is protected from accidental edits.
Honest about the numbers
We do not give the time saved per order here, because the company did not measure it before. The numbers in this write-up (1,069 products, 315 in the first run, data from 27 October) come from production. The calculator below works on your own assumptions.
How many hours of re-keying would disappear for you
Set your own numbers. These are your assumptions, not a result of this project.
The chart shows how many hours of manual re-keying would pile up over the following months.
Frequently asked questions about integrating Subiekt GT with WooCommerce
Reading prices and stock only needs access to the SQL Server database. To create documents such as a customer order you need Sfera GT, because only it guarantees correct numbering, VAT and settlements. Writing straight into the tables of Subiekt is risky, so we avoid it.
No. The agent runs on the computer with Subiekt and connects to the shop by itself through the WooCommerce REST API. The company’s database and network are not exposed to the outside.
By the item symbol. The SKU of a WooCommerce product equals the symbol in Subiekt. That is why the SKU field in the shop panel is locked, and changing it needs a deliberate confirmation.
A foreign order first goes to a shipping quote. After the quote the shop recalculates it as an intra-EU sale (WDT) at 0% VAT, sends the customer an e-mail, and the integration corrects the existing ZK in Subiekt.
Yes. They are extra fields of the product record that reach the shop together with price and stock. The shop uses them in search and in the dimension filter.
It depends on the scope: syncing prices and stock by SKU alone is a short project, while creating documents through Sfera and handling foreign orders need longer testing on the client’s data. The best way is to estimate it after a conversation about your Subiekt and your shop.
We build similar integrations between online stores and ERP, CRM and shipping systems as part of our ERP/CRM integrations → See also: A dropshipping API for a moulding manufacturer and quote automation at an accounting firm.
Do you have Subiekt GT and a shop that do not talk to each other?
Book a free call. We will check what can be synced without re-keying: prices, stock, orders and documents.
Schedule a callCheck before we talk
Services associated with this deployment. Take a look at the offer, see how we approach similar problems in other customers.
ERP/CRM Integrations
🔗 Page in preparation We are working on the full version Integrations with Comarch, Sente, Salesforce, HubSpot, Pipedrive and others. Tell us which system needs connecting.…
View the offer →Automation
🤖 Page in preparation We are working on the full version n8n automations + AI workflows + cross-system integrations. Write to us if you want to automate a specific process.…
View the offer →Websites and online stores
View the offer →Did you like this article?
If after reading this you feel your company also has processes worth rebuilding, book a free call. Together we will check where sales are really leaking and what makes sense to implement first.
Schedule a call