Download the PHP package justinholtweb/craft-erpy without Composer
On this page you can find all versions of the php package justinholtweb/craft-erpy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download justinholtweb/craft-erpy
More information about justinholtweb/craft-erpy
Files in justinholtweb/craft-erpy
Package craft-erpy
Short Description The ERP gateway for Craft Commerce — one sync engine, one mapping UI, one log, and a free add-on for every major ERP.
License proprietary
Homepage https://justinholt.com/plugins/craft-erpy
Informations about the package craft-erpy
Erpy
The ERP gateway for Craft Commerce. One sync engine, one mapping screen, one log — and a free add-on for every major ERP.
Erpy does the hard part once. Each ERP is a separate free plugin that translates one vendor's API into Erpy's canonical documents; Erpy owns everything that has to be true of all of them. It is the same arrangement Imager-X uses for its transformers, for the same reason: the interesting work is not in any one integration.
- Erpy — $149, $129 to renew.
- Every connector add-on — free.
What it syncs
| ERP → Commerce | Commerce → ERP | |
|---|---|---|
| Products | items, descriptions, units, weights, blocked flags | |
| Prices | price lists, customer contracts, quantity breaks, campaign dates | |
| Inventory | on-hand, allocated, available, per warehouse | |
| Customers | accounts, price list, payment terms, tax status | |
| Orders | completed orders, with lines, addresses and shipping | |
| Order status | released, picking, shipped, cancelled | |
| Shipments | partial fulfilments, carriers, tracking numbers | |
| Invoices | posted invoices, balances, due dates | |
| Payments | settlements | captures |
| Credit | limit, balance, open orders, overdue, stop flag |
Why it costs money and the connectors do not
A connector's whole job is to turn one page of an ERP's payloads into canonical documents. It does not queue, retry, page, dedupe, map, log, schedule or write to Commerce — because Erpy does, once, for all of them:
- An identity map with a unique index on both sides of every pairing. That index, not a remembered check, is what stops a retried queue job becoming a second sales order in a warehouse.
- Delta watermarks that advance to the start of a run, never to the end, so a record modified mid-sync cannot fall into a gap and be missed forever.
- Change detection by content hash, so a nightly 40,000-SKU pull costs one comparison per unchanged record instead of one element save.
- Dead letters with replay. A document the ERP refused is kept whole. Fix the cause, press retry, and the original goes — rebuilt from Commerce if the order still exists, from the stored copy if it does not.
- A connection log with credentials redacted at the transport, so there is no path a connector could take that would miss it — including error bodies that echo your API key back at you.
- Field mapping that can correct the connector itself. A rule targeting a canonical field overrides what the connector read, so a wrong field name is an afternoon's fix rather than a bug report.
- Contract pricing resolved at cart time, because a mid-market ERP holds tens of thousands of negotiated price lines and one Commerce pricing rule per line would make catalog price generation the slowest thing on the site.
Connectors
Install the free add-on for your ERP and it appears in the connector list.
| ERP | Package |
|---|---|
| Microsoft Dynamics 365 Business Central | justinholtweb/craft-erpy-businesscentral |
| Oracle NetSuite | justinholtweb/craft-erpy-netsuite |
| Acumatica | justinholtweb/craft-erpy-acumatica |
| SAP Business One | justinholtweb/craft-erpy-sapb1 |
| Sage Intacct, Sage 200, Sage X3, Sage Accounting | justinholtweb/craft-erpy-sage |
| Odoo | justinholtweb/craft-erpy-odoo |
| Exact Online | justinholtweb/craft-erpy-exactonline |
| AFAS Profit | justinholtweb/craft-erpy-afas |
| Visma.net ERP | justinholtweb/craft-erpy-visma |
| MYOB Acumatica, MYOB Exo | justinholtweb/craft-erpy-myob |
| Unit4 ERP | justinholtweb/craft-erpy-unit4 |
| Priority | justinholtweb/craft-erpy-priority |
A Mock ERP connector ships with Erpy itself. It invents deterministic data and makes no network calls, so you can try the mapping and sync screens before buying an ERP licence — and support can use it to prove a problem is in the connector rather than in Erpy.
Installing
Then Erpy → Connections → New connection, pick your ERP, fill in the credentials it asks for, and press Test connection before switching anything on.
Setting up
- Add a connection. Credentials live on the connection, not in project config — a staging site's ERP details must never deploy into production.
- Test it. A failed test names the credential to look at, not the class that threw.
- Choose what to sync, and in which direction. Only what your ERP actually supports is offered; you can narrow a direction, never widen one.
- Map the fields you care about. The connector fills in everything canonical already; rules are for the rest.
- Dry run first. "Preview" reads a page and reports exactly what it would create, update or skip, and changes nothing.
- Switch it on.
Storefront
Cart prices are overridden automatically when contract pricing is switched on — the Twig helpers are for showing the price, not for applying it.
Console
For a large catalogue, run erpy/sync/due from cron rather than relying on the queue: cron has no
request timeout.
Writing a connector
A connector is one class. Register it and it appears everywhere:
Whatever you declare in capabilities() you must implement — Erpy's conformance suite refuses a
connector that advertises a flow it never wrote.
Events
Documentation
Full documentation, including a page for every add-on, is at https://justinholt.com/plugins/craft-erpy/docs.
Requirements
Craft CMS 5.3+, Craft Commerce 5.0+, PHP 8.2+.
Support
License
The Craft License. See LICENSE.md. Erpy is a single paid edition — $149, then $129 a year — and
every connector add-on is free.
All versions of craft-erpy with dependencies
ext-json Version *
craftcms/cms Version ^5.3.0
craftcms/commerce Version ^5.0.0