Start a Project
Case Study · API Integration / E-commerce

A production-ready POHODA WooCommerce integration built around real accounting workflows

Web25 connected Mirael3D’s WooCommerce store with the POHODA program through a custom WordPress plugin, synchronising warehouse stock toward the storefront and sending complete orders back into accounting through validated XML import and export flows.

Custom WordPress Plugin WooCommerce POHODA XML Two-way Data Flow POHODA documentation ↗
Mirael3D · SlovakiaWooCommerce ↔ POHODA
129matched products audited individually
0stock discrepancies at full audit
2-waystock and order data exchange
1 dayahead of the agreed go-live deadline
The business problem

One warehouse, disconnected systems and no safe room for guesswork

Mirael3D sells engineering-grade 3D-printing filament through WooCommerce. POHODA remains the accounting and inventory system of record for the business.

Before the integration, the website and POHODA held separate versions of stock, customers and orders. The team had to reconcile them manually. A delayed stock update could make a sold-out product available online, while every web order had to be entered into accounting again by hand.

The problem would become more expensive as the business expanded. Mirael3D and two planned sister storefronts are intended to share the same POHODA-managed warehouse. The integration therefore had to solve today’s workflow without becoming a one-store dead end.

POHODA, in context

An accounting system that can exchange data with internet stores over XML

STORMWARE describes POHODA as an economic and information system that supports external data communication. Its general internet-store connection uses web services, HTTP and POHODA’s XML formats to exchange addresses, orders, stock records, categories and related data.

Official product documentationHow POHODA handles data communication

The connector was built against STORMWARE’s official documentation, downloadable XML examples and published XSD schemas, then verified against the behaviour of the client’s live Slovak installation.

Integration architecture

One connector, two data directions and one source of truth

The Mirael POHODA Connector exposes a single authenticated WordPress REST endpoint. It identifies the incoming POHODA XML document, sends the request to the correct workflow and returns the precise response envelope that POHODA expects.

System of record

POHODA

Warehouse quantities, accounting records, received orders and the accountant’s established operating process.

Stock / zásoby → WooCommerce
Custom middleware

Mirael POHODA Connector

REST dispatch, XML parsing, response building, SKU matching, stock rules, order export and operational safeguards.

POHODA ← Orders / objednávky
Customer-facing commerce

WooCommerce

Product availability, customer and address data, order lines, VAT totals, order status and draft-product review.

What the connector does

The POHODA integration follows the work the business already needs to complete

01

POHODA → WooCommerce stock

POHODA remains the source of truth for warehouse inventory. The connector calculates sellable quantity and updates only a strictly matched WooCommerce SKU.

02

WooCommerce → POHODA orders

New orders move into POHODA with customer details, billing and delivery addresses, product lines, prices, tax and totals. The accountant no longer has to re-enter each web order.

03

Cancellation handling

Cancelled website orders are identified so they do not remain as phantom commitments in POHODA. The destructive step is intentionally controlled by an off, log-only or live switch.

04

Unmatched-product review

A POHODA item that belongs to the shop but has no website match can be sent to a dedicated draft-product queue. It is never silently published for sale.

05

Manual resend tools

Administrators can deliberately resend a rare order that needs another attempt without changing the normal import and export workflow.

06

Multi-store configuration

Shop-specific rules sit in a configuration layer, preparing the same connector architecture for future Austrian and Czech sister storefronts.

Delivery journey

From isolated build to live accounting data in controlled stages

  1. Build the connector in isolation

    20–21 August 2026: the plugin, endpoint, XML services and core business rules were built without touching the production store or accounting database.

  2. Deploy in dry-run mode

    25 August: the production connection was introduced with writes disabled. A WordPress authentication conflict visible only in the HTTPS environment was found and resolved.

  3. Test against real POHODA traffic

    27–28 August: live connectivity worked, but protocol-shape errors exposed gaps between simplified test fixtures, formal documentation and the XML the Slovak installation actually sent.

  4. Adopt local schema validation

    28 August: generated documents were validated against STORMWARE’s published XSD files before deployment. Three additional defects were caught offline in one sitting.

  5. Prove both directions

    29 August: POHODA stock export and WooCommerce order import both completed successfully against real data.

  6. Go live after human review

    30 August: the final dry-run log was checked line by line before live mode was enabled. All 129 matched products agreed with POHODA.

  7. Refine real operating edge cases

    31 August–6 September: sellable-stock semantics, tax rounding and cancelled-order handling were corrected around the client’s real configuration and daily accounting process.

Protocol engineering

The specification was the starting point. Real behaviour finished the job.

The hardest work was not sending an XML document. It was making every namespace, envelope, status and number behave exactly as the desktop POHODA client required.

Namespace-aware parsing

Real POHODA documents qualify elements with multiple namespaces. Parsing was centralised into one shared service, and fixtures were rewritten to mirror real namespaced traffic.

Response-envelope accuracy

Five live failures exposed invalid attributes, empty document shapes and a response namespace that could not safely be inferred by copying the request.

Business errors inside HTTP 200

POHODA expects protocol status inside the XML response. Returning HTTP 400 for one bad record caused the desktop client to discard the diagnostic body for the whole batch.

Slovak installation, Czech namespaces

The client’s Slovak POHODA installation sent `.cz` namespace URIs despite `.sk` examples in documentation. The connector now safely echoes either allowlisted host from the request.

Schema-first release checks

Generated output is validated locally against STORMWARE XSD schemas before deployment. This replaced slow guess-deploy-fail loops with immediate, repeatable feedback.

Totals correct to the cent

Net-first calculations produced occasional one-cent differences. The integration now sends the gross total and mirrors the accountant’s accepted tax-inclusive calculation method.

The stock lesson

“Available” did not mean available to sell

POHODA exposes several related quantities for each stock record. The first implementation trusted a field that appeared to represent available inventory. In the client’s configuration, it did not subtract every received but unprocessed order as expected.

That assumption caused a real overselling incident when the website sold the last unit, then a POHODA stock push restored the pre-sale quantity before POHODA had imported the order.

The durable fix removed the assumption. The connector now calculates sellable stock from raw physical quantity minus committed order quantity, clamps the result at zero and prevents accidental backorders. The result no longer depends on a label or a POHODA reservation setting outside the connector’s control.

Production evidence

The actual POHODA configuration behind the two-way connection

These client-testing screenshots show the general internet-store record and the separate export and import routes used during production setup. Authentication and local-machine configuration screens are intentionally excluded.

POHODA general internet store settings showing the Mirael3D website connection
General internet-store setupThe Mirael3D store registered inside POHODA as a general internet shop.
POHODA export settings configured to send stock records to the Mirael3D connector
Stock export routePOHODA sends warehouse stock records toward WooCommerce through the connector.
POHODA import settings configured to retrieve WooCommerce orders through the Mirael3D connector
Order import routePOHODA requests website orders from the same integration layer in the opposite direction.
Data integrity

Safeguards were part of the product, not a launch-day addition

01

Dry-run by default

New environments log the exact intended changes without writing them. Live mode requires an explicit, attributable confirmation after review.

02

SKU-only matching

The POHODA catalogue did not contain the expected EAN data. The connector uses the one reliable shared identifier and skips uncertainty rather than guessing.

03

Additive-only product writes

The connector updates stock quantity. It does not overwrite pricing, product descriptions, media or SEO fields maintained in WooCommerce.

04

842 unrelated records ignored

The first POHODA export contained 971 records. Category rules identified the 129 website products and correctly ignored records belonging to other business activity.

05

Historical-order cutoff

The connector records its own production starting point so the first order pull cannot flood POHODA with old orders already entered manually.

06

Record-level failure isolation

One malformed record becomes a warning for that record. It does not invalidate a batch of hundreds or hide useful diagnostics from the accountant.

Outcome

Stock, orders and accounting now move through one controlled workflow

The integration replaced repetitive data entry and uncertain inventory with a traceable exchange designed for the people who operate the business.

129 / 129matched website products confirmed against POHODA
0stock mismatches in the latest full product-by-product audit
Automaticnew-order transfer with customer, address, line and VAT data
3 shopsarchitecture prepared for the current store and two planned sister stores
Live in production since 30 August 2026
Deliberate scope boundaries

What this phase intentionally did not automate

Two original ideas remain available for a later phase. Neither was required to make the live order and stock workflow accurate.

Future phase

WooCommerce prices → POHODA

Every exported order already contains the correct unit price, totals and VAT. Accounting accuracy does not depend on a separate catalogue-price sync.

Future phase

WooCommerce catalogue → POHODA

The current catalogue is already established in POHODA. The connector architecture can add this direction later without rebuilding the working stock and order flows.

Integration stack

Purposeful components around validated data exchange

WordPressWooCommerceCustom PHP PluginREST APIPOHODA XMLXSD ValidationSKU MatchingVAT HandlingDry-run LoggingWordPress Admin
Backend & API integrations

Need two business systems to exchange data without putting operations at risk?

Web25 builds custom APIs, middleware and platform integrations around the real rules, edge cases and approval points of your business.

Explore backend and API integrations