Skip to content
BlogIntegrations

Connect your ERP without replacing it: data, permissions and tests

If your ERP works but orders are entered again elsewhere, you may need a connection. Define which system controls the data, permitted changes and recovery from failed sends.

When should you connect the ERP rather than replace it?

When the ERP handles part of the operation well and the problem is at a boundary: sales captures orders elsewhere, customers cannot check their status or another department enters the same data again. Replacement adds migration and changes in working habits; keeping the system also requires checking whether it can exchange the missing information.

Follow an order from capture to closure. Mark each copy, approval and difference. If the problem is inside the ERP rules, review configuration first. If it crosses systems, define the connection. If the system no longer supports the process or a viable extension, assess replacement with scope and consequences in writing. The ERP-versus-custom comparison helps choose that level; this guide tests the connection.

Existing connector, API or files: which route fits?

RouteWhen to evaluate itWhat to verify first
Existing module or connectorIt already covers the flow and its exceptionsActual edition compatibility, fields, permissions, support and business tests
Authorized APIData must be queried or updated between systemsProduct/version, permitted operations, plan, limits, permissions and recovery mechanism
Controlled export and importThe process tolerates batch updates and a supported exchange existsStable identifiers, cutover, validation of intervening changes and rejected-row review
Defer or change scopePermitted access is unavailable or a safe operation cannot be demonstratedWhat a manual stage or native configuration can resolve while the dependency is clarified

Access does not follow from a product name. For example, Odoo 19’s external API documentation limits that access to its Custom plans and applies user permissions. Confirm your edition, hosting and contract: this reference does not mean every installation or plan allows the same connector. For another ERP, review its documentation and account terms.

If an existing connector passes your tests, another custom connector is unnecessary. If files are the only option, agree how much delay the process tolerates and how to detect changes since export. A claim of connecting to everything does not replace identifying a permitted operation and demonstrating it.

Which system controls each field?

Write a matrix before linking two screens. These are example decisions rather than assignments required for every business:

Field or documentPossible authorityRule to agree
Product identifier and unitApproved ERP catalogThe portal reuses the identity rather than creating another product when a name changes
Price and credit limitAuthorized commercial system and responsible personCustomers see their permitted data; a portal user cannot increase their own limit
Confirmed orderERP after validationDistinguish a portal request from an accepted order; retain both related references
Stock and reservationSystem recording movements at that locationQuery and confirm under its rules; do not overwrite with an old copy
Partial receipt or deliveryAuthorized operational record with evidenceTransmit quantities and pending state; do not make a partial document complete
Attachments and customer dataSystem designated for each fieldDefined permissions, retention and lookup; avoid unnecessary copies

Bidirectional must not mean either system changes everything. If both edit a field, define conflict resolution and approval. For location quantities, complement the matrix with inventory between warehouses; for a spreadsheet catalog, prepare inventory migration from Excel first.

What access does the connection need?

Use an identifiable integration user with read/write access limited to the flow rather than the personal account that administers everything. Define what it may read, create, change or cancel and how access is revoked. Keep credentials outside shared spreadsheets and record actions and errors without exposing sensitive data.

Odoo 19’s API uses user permissions, record rules and field access; an API key does not remove those restrictions. In your tests, changing a customer identifier must not reveal another customer or allow out-of-scope changes. These are requirements the integration must pass, rather than guarantees created by a technology choice.

Worked example: one order, two attempts and an uncertain response

CaseWhat happensRequired result
E01ERP order ORD-100 is sent with authorized operation op-100Create one external record and retain its relationship to ORD-100 and op-100
E02The same op-100 send is repeatedRecognize the previous operation; create no second record
E03op-200 for ORD-200 times out; destination creation is uncertainLook up the key or reference and reconcile before another creation; remain pending if unconfirmed
E04op-300 for ORD-300 has 10 units ordered and 8 receivedExplain the 2 pending units or their authorized resolution; do not mark all received

Download the ERP integration test CSV and pack instructions. A newly authorized order change is not the same event merely because it shares ORD-100: distinguish it from retrying op-100. Identity belongs to the operation rather than only the document.

An error can mean the destination received nothing, or that it saved the record but the response was lost. Creating again without checking can duplicate the order. If the interface cannot verify the result, agree on manual reconciliation or change the flow; repetition alone does not solve the uncertainty.

What if notifications arrive twice, late or out of order?

Automatic notifications help but do not replace confirmed state. Shopify documents that webhook delivery order is not guaranteed and explains delivery verification and duplicate handling. For your connection, decide what identifies a delivery, what identifies the business action and how to query current state before applying a delayed change.

Ask for a reviewable list of pending, rejected and confirmed operations. Reconciliation compares references, lines, quantities and states between origin and destination rather than simply counting successful send responses. Agree its frequency and owner according to the flow’s risk; a partially received order must stay in that review.

Which tests and recovery plan need to be written down?

TestAcceptance requirement
Repeat the same operationOne business result; operation identity and document relationships retained
Uncertain response after savingVerify the result before creating again; unknown outcomes remain pending
Changed order or delayed eventReview current version or state; do not overwrite with old data
Another customer or insufficient permissionsAccess rejected; visible error without automatic permission expansion
Partial quantity or differenceActual and pending quantities traceable; no fictitious closure
Unavailable provider or revoked accessFlow paused or pending under the agreed rule; no silent loss of operations

Define who may pause the connection, where the team continues recording and how new references are preserved. On recovery, resume from the last confirmed result and reconcile pending operations. Returning to an older copy does not undo receipts, sales or physical movements that happened meanwhile; preserve those facts and correct the records with evidence.

What should you bring to the first integration stage?

A representative document, its fields, the current workflow, ERP edition, access conditions and exception examples. Choose one flow with a clear acceptance criterion. Separate configuration, development, provider access and maintenance in scope rather than assuming a license includes the full integration.

The CelMex Unlockers case shows orders and connections to digital-service providers. It supports integration work at that scope, not a delivered connector for every ERP or physical logistics. If customers need to consult or request orders, review the customer portal.

Use the scope worksheet with the data matrix and E01–E04 to agree on the test. See our approach to ERP development and extensions and process automation. Evaluate the option that fits your operation first; a connection does not require replacing what works.

Primary sources reviewed October 5, 2026. Availability, permissions and terms must be confirmed for the specific product and account; the proposed test does not guarantee provider access or an already implemented result.

Related

Frequently asked questions

Confirm product, version, edition, contract and permitted operations. An existing module, authorized API or controlled file exchange may solve a flow; if supported access is unavailable or a safe operation cannot be tested, defer or change scope. A universal connector is not promised.

Repeating the same operation retains one business result. In the example, op-100 is one creation related to ORD-100 and its retry creates no additional record. A newly authorized order modification must be distinguished from that retry.

First determine whether the destination saved the record. Look up its key or reference and reconcile before another creation. If the result remains unknown, leave it pending with a review owner; an error or timeout does not establish that nothing was created.

Not by default. Define an identifiable user with the minimum permissions for the authorized flow, test record/customer restrictions and agree how to revoke access. If an operation requires additional permissions, review and authorize that need before expanding scope.

Sources

  1. External JSON-2 API — Odoo 19Odoo
  2. About webhooksShopify
  3. Verify webhook deliveriesShopify

Last updated:

Keep reading

Free consultation

Has your business outgrown Excel?

Tell us how your team works. In one call we’ll tell you what to fix first. We reply the same business day.

Just need a website? See packages from $10,000 MXN, VAT included

  • Free, no commitment
  • Proposal in 1 business day
  • Delivered in stages