← All work

WordPress

Ship & Pay Plugin Suite

A dozen production WordPress plugins for shipping and payment providers — Omniva, DPD, Stripe, Montonio and more.

Role
Developer
Year
2026
Stack
WordPress · PHP · Carrier & payment APIs
Status
Production
Ship & Pay Plugin Suite, rendered as the L5 · Monitoring layer of the Veltix module
12plugins
1shared core
1configuration pattern
0forked settings screens

A dozen providers, one way of working.

Every carrier and payment provider publishes its own API, and no two agree on much. One returns XML, another JSON. One expects credentials in a header, another signs each request. Pickup point lists arrive in different shapes with different refresh rules. Written plugin by plugin, twelve integrations become twelve settings screens, twelve ways of storing an API key, and twelve places to fix the same bug.

The shared spine.

The suite is a dozen WordPress plugins sitting on one internal core. The core owns everything that has nothing to do with any particular provider: the settings screen and its field types, credential storage, the test and live switch, the HTTP layer with its timeouts and error handling, logging, and the connection check that decides whether a provider tile reads connected and live or not configured. A provider integration is then only the part that is genuinely provider-specific — its endpoints, its request shapes, its error codes.

That boundary is what stops the maintenance cost multiplying by twelve. A change to how credentials are validated is one change. A new provider starts with a settings screen, a connection test and a log that already work, so the work is reading the provider's documentation rather than rebuilding the plugin around it. For the merchant the effect is the same in the other direction: configuring the eleventh provider looks like configuring the first.

Parcel machines are a first-class problem.

Parcel machines are a normal delivery choice in the Baltics and the Nordics, and customers expect to choose the exact machine during checkout. That makes pickup point selection part of the checkout rather than an extra. The plugin fetches the carrier's list of machines, caches it — the lists are long and change slowly — organises it so a customer can find their own town, and carries the chosen machine through to the shipment call. Omniva and DPD both work this way and both describe their machines differently, so the core defines one internal shape for a pickup point and each integration maps its provider onto it.

Payment providers vary along the same lines. Some take the customer to a hosted page and return with a signed result; others expect the details to be collected on the store and exchanged for a token. The core handles what is common to both — the order state around the payment, the return and callback endpoints, the record of what the provider replied — so each integration deals only with its own protocol.

At checkout

  1. 01Cart
  2. 02Shipping method
  3. 03Pickup point list
  4. 04Machine selected
  5. 05Payment provider
  6. 06Order placed
  7. 07Shipment registered
  8. 08Label & tracking

What the core provides

One settings screen

Every plugin renders its configuration from the same form layer, so fields sit where a merchant expects them.

Credential storage

Keys, secrets and endpoints are stored, read and validated the same way in all twelve.

Connection state

Each provider reports whether it is configured and reachable, which is what the tile shows.

Test and live modes

One switch moves a provider between sandbox and production credentials.

Pickup points

Machine lists are fetched, cached and normalised into a single internal shape.

Shared HTTP layer

Provider calls run through one client with consistent timeouts and error handling.

Central logging

Requests and failures land in one place regardless of which provider raised them.

Shared upgrade path

A fix in the core reaches every plugin instead of being applied twelve times.

Results

  • Twelve providers, one configuration pattern
  • New integrations start from a working plugin
  • Fixes applied once, not per plugin
  • Pickup point selection built into checkout
  • Consistent behaviour when a provider fails
  • Running in production

WordPress shipping and payment integrations

The Ship & Pay Plugin Suite is a set of production WordPress plugins covering carriers and payment providers used by Baltic and Nordic stores, including Omniva, DPD, Stripe and Montonio. Each plugin is thin: the provider-specific API work sits on top of a shared core that handles configuration, credentials, connection testing, pickup point handling and logging, so the suite behaves consistently for merchants and stays maintainable as providers change their APIs.

Topics

  • wordpress shipping plugin
  • wordpress payment gateway plugin
  • omniva integration
  • dpd integration
  • stripe payment plugin
  • montonio payment plugin
  • parcel machine selection
  • pickup point checkout
  • baltic shipping integration
  • carrier api integration
  • payment gateway integration
  • wordpress plugin architecture

Contact

Build something that lasts.

Got a Laravel project, a WooCommerce mess or an integration that needs untangling? Tell me what's breaking.

© 2026 Veltix · Kristen LõokeGitHub · Tallinn