UK software developers since 2006 · fixed-price quotes · you own the code01623 650333 · info@dijitul.uk
Free chat

Ecommerce and ERP Integration UK

dijitul developments connects ecommerce shops to ERP, stock control and accounts systems for UK businesses. Orders flow in automatically, stock and prices flow out, and dispatch and tracking flow back, with queues and error handling so nothing is lost. We've done this since our OpenCart stock feed days, and every project is a fixed-price quote after a free chat.

Updated 2026-10-10 · by the dijitul development team, Mansfield, UK

  • Shopify Admin GraphQL API
  • WooCommerce REST API
  • Magento REST API
  • Business Central API
  • PHP 8
  • Laravel
  • Redis
  • SFTP

Sound familiar?

  • Someone rekeys every web order into the ERP each morning
  • The website sold stock that went out of the warehouse door yesterday
  • Price changes take days to reach the shop and trade customers see the wrong figures
  • Customers ring to ask where their order is because tracking never reaches the website
  • A nightly CSV import fails silently and nobody notices for a week
  • Your ERP vendor quoted a connector that doesn't match how you actually work

Key facts

  • We've built stock feeds, bulk product loaders and order-to-accounts links since the OpenCart and KashFlow era
  • Typical flows: orders into the ERP, stock and prices out to the shop, dispatch and tracking back to the customer
  • Shopify, WooCommerce, Magento, OpenCart and PrestaShop all supported through their APIs
  • ERP connections via REST or SOAP APIs, database views, SFTP file drops or EDI-style CSV and XML
  • Every message is queued, retried and logged, with a screen showing anything that failed
  • Stock updates are delta-based, so a 20,000 SKU catalogue doesn't need a full push every few minutes
  • One owner per field: the ERP usually owns stock and trade prices, the shop owns content and SEO

The gap between the shop and the back office

An online shop is good at taking orders. An ERP is good at stock, purchasing, picking and invoicing. The trouble starts in between: orders printed and retyped, stock numbers exported to a spreadsheet and uploaded by hand, price changes emailed to whoever runs the website. Every manual step is a delay and a chance for error, and the errors show up as overselling, wrong prices and angry phone calls.

We build the link between the two so each system does its own job and the data moves on its own. It's work we've done for a long time: our early OpenCart projects included bulk product loading and stock feeds from suppliers, and our KashFlow and OpenCart integration created customers and invoices on payment and synced stock and prices. The platforms have changed, the principles haven't.

What flows where

DataUsual directionUsual trigger
Orders and customersShop to ERPWebhook on payment
Stock levelsERP to shopChange events or a delta every few minutes
Prices and price listsERP to shopOn change, or scheduled
Product dataERP or PIM to shopOn change
Dispatch and trackingERP or WMS to shopOn despatch
Refunds and credit notesEither, agreed per businessOn event

We agree this table with you before writing code. Getting the ownership of each field right is more important than the technology.

How we connect to your ERP

ERPs vary a lot. Modern cloud systems such as Microsoft Dynamics 365 Business Central, NetSuite, Sage X3 or Odoo have documented REST or SOAP APIs with OAuth. Older on-premise systems may only offer a database we can read through a view, an import folder watched for CSV or XML files, or a vendor-specific connector. We've worked with all of these patterns. Where there's no API at all, we build a small, secure agent on your network that reads and writes on the ERP's behalf and talks to the cloud over HTTPS.

On the shop side we use each platform's proper interface: the Shopify Admin GraphQL API and webhooks, the WooCommerce REST API, Magento's REST API, or direct extensions for OpenCart and PrestaShop. For Shopify specifics see Shopify integration.

Making it reliable

  • Queues: every order or stock change becomes a message on a queue. If the ERP is down for an upgrade, messages wait and then process in order.
  • Idempotency: each order carries its shop order number as an external reference, so a retried message can never create a duplicate sales order.
  • Delta stock: we send only what changed since the last run, which keeps you inside API rate limits even with large catalogues.
  • Safety buffers: optional stock buffers per product or channel so fast sellers don't oversell during the sync window.
  • Visibility: a simple dashboard lists failed messages with the reason, a retry button, and email or Teams alerts if something stays stuck.

VAT, discounts and the awkward cases

The difference between an integration that works in a demo and one that works in month-end is the edge cases. We plan for them up front:

  • VAT and rounding: shops often calculate VAT per order while ERPs calculate per line. We agree which wins and post adjustments so totals match to the penny.
  • Discounts and vouchers: spread across lines or posted as a separate discount line, depending on how your ERP reports margin.
  • Shipping and fees: mapped to service items with the right nominal codes.
  • Gift cards: treated as a liability, not revenue, until redeemed.
  • Part refunds and cancellations: credit notes raised against the original invoice. Our early KashFlow and OpenCart integration created credit notes for cancelled orders, and the same logic carries over to modern ERPs.
  • Bundles and kits: sold as one SKU on the shop, picked as components in the warehouse.

B2B shops and trade pricing

Wholesale and trade shops add a layer: customer-specific prices, account credit limits, order history and invoice copies. We can pull price lists and terms from the ERP so a logged-in trade customer sees their own prices, and push orders back with their account code and PO number. If your buyers order through a procurement system, that's a punch-out integration, which we also build. For sector context see software for wholesalers.

Every integration is quoted at a fixed price after scoping. Get in touch to talk it through.

What we deliver

  • Order export from shop to ERP, with customer, address, VAT and payment details mapped
  • Stock level sync from ERP to shop, by warehouse or location if needed
  • Price and customer-specific price list sync for B2B shops
  • Product data import: descriptions, attributes, images and categories
  • Dispatch, tracking number and invoice status sent back to the shop and customer
  • Monitoring dashboard with failed messages, retries and alerting
  • Documented mapping tables you can change without a developer where practical

How it works and what it costs

Every project gets a fixed-price quote after a free initial chat and a short scoping stage. You own the code and the data.

  1. Free chat

    Tell us the problem in plain English: what you do now, what goes wrong and what "better" looks like. No charge, no obligation.

  2. Scoping

    We map the processes, systems and data involved, agree what is in and out, and write it down so there are no surprises.

  3. Fixed-price quote

    You get a fixed price for the agreed scope, or a phased plan for bigger builds, so you can start small and prove it works.

  4. Build and test

    We build in short stages you can see and try, test against real data, then go live carefully with a rollback plan.

  5. Hand over and look after

    You own the code and the data. We can host it, support it and keep improving it, or hand it to your own team.

Frequently asked questions

Can you integrate our online shop with an ERP that has no API?

Often, yes. dijitul can read from a database view, watch an import and export folder for CSV or XML files, or install a small agent on your network that talks to the ERP locally and to the shop over HTTPS. We check what's possible during scoping.

How often will stock update on the website?

As often as the ERP allows. If it can raise change events, updates can be near real time. Otherwise we run a delta sync, commonly every few minutes, sending only the products whose stock changed since the last run.

Which ecommerce platforms do you integrate?

Shopify, WooCommerce, Magento, OpenCart, PrestaShop and CubeCart, plus bespoke shops. dijitul has worked with OpenCart and CubeCart since their early days and uses each platform's official API or extension system.

What happens if an order fails to reach the ERP?

It stays on the queue and is retried automatically. If it keeps failing, for example because a product code doesn't exist in the ERP, it appears on a dashboard with the reason and someone is alerted. Nothing is silently dropped.

Can the integration handle customer-specific trade prices?

Yes. We can sync price lists, discounts and account terms from your ERP so logged-in trade customers see their own prices, and send their orders back with account codes and purchase order numbers.

Do you replace our ERP vendor's connector?

Only if it doesn't fit. Sometimes the vendor connector is the right answer and we just fill the gaps around it. dijitul will give you an honest view in the free chat, then a fixed-price quote if custom work makes sense.

Related

Tell us what you need to build

Free chat, clear scope, fixed-price quote. You own everything we build.

Call usFree chat