Main issue: Allow B2B customers to pay ERP/offline invoices through Shopify, not just Shopify-origin orders.
Key update: Shopify has no native “Pay External Invoice” feature. The cited case study’s approach uses Draft Orders created via API to mirror ERP invoices.
Proposed workflow:
Pull unpaid invoices from the ERP (Enterprise Resource Planning).
Create a Shopify Draft Order per invoice (matching items, taxes, customer, etc.).
Each Draft Order generates a unique invoice/checkout URL.
Expose that URL as a “Pay Now” button in the customer account portal (e.g., via a custom UI extension).
When payment is completed in Shopify checkout, the Draft Order converts to a paid Order.
Listen for that event and update the original ERP invoice status to paid.
Notes:
This is a powerful but slightly complex B2B integration pattern; no out-of-the-box button exists.
The attached image is not essential to the solution.
Status: A clear, actionable solution pattern was provided. No significant disagreements; open questions appear resolved by the recommended Draft Order sync approach.
Summarized with AI on December 11.
AI used: gpt-5.
I saw this Overdose case study on Metagenics that was published today. In it there’s a mention of “We utilised Shopify’s contextualised stores to craft tailored front-end experiences for both B2B and B2C customers. This included enabling B2B customers to pay offline invoices online” Can anybody here provide more information as to how this can be accomplished on Shopify?
We already enable merchants customers to access their invoices via Shopify on the front end by surfacing them directly from the ERP, but I’d be interested to know how we can allow them to pay for these invoices (not just from orders placed on Shopify) too
That case study is referring to a very powerful, albeit slightly complex, B2B workflow. While Shopify doesn’t have a native “Pay External Invoice” button out of the box, the functionality described (“pay offline invoices online”) is typically achieved by creating a Draft Order via the API that mirrors the external invoice.
Your integration takes the unpaid invoice details from your ERP and creates a corresponding Draft Order in Shopify via the API, assigned to that B2B customer. Every Draft Order generates a unique Invoice/Checkout URL. You display this URL as a “Pay Now” button in the customer’s account portal (using a custom UI extension).
When the customer pays via the Shopify checkout, the Draft Order converts to a completed Order. Your system listens for this event to mark the original ERP invoice as paid.
Sync ERP invoices into Shopify, generate matching draft orders via API, then let B2B customers pay using the draft’s checkout URL. Shopify auto-converts the draft to a paid order once the transaction clears.