Let procurement buyers shop your own Shopify store
The hosted catalog stays the default. For a cXML connection you can send procurement users to your online store instead, in your own theme. On Online Store 2.0 themes with a standard product form they add products with Add to PunchOut cart beside it, and the same requisition and purchase-order flow runs behind it.
Available to every store since 4 November 2026. You opt in per shop in Settings and per connection; cXML connections only.
- Protocol
- cXML
- Updated



Storefront mode is part of the Business plan. It has no separate charge.
Built from Shopify's own parts
- Theme app extension
- During a PunchOut, the PunchRelay app embed places Add to PunchOut cart beside the product form on Online Store 2.0 themes with a standard product form, and shows a floating PunchOut panel with the cart. Where the button cannot be placed, the buyer adds products in that panel. You switch it on in the theme editor; your theme code stays as it is.
- Checkout validation Function
- A Shopify Function for cart and checkout validation keeps procurement-only customers out of your store's checkout. It runs on Shopify's servers.
- App proxy
- Shopify signs every request it passes to PunchRelay through the app proxy, and PunchRelay checks the signature before doing any work.
- Customer accounts
- Each procurement user signs in to your store with a Shopify customer account mapped to them on the connection.
How it works
You turn it on, per connection
Turn on storefront mode in Settings, then choose “Your online store” for a connection. OCI connections always use the hosted catalog. A PunchOut that misses any requirement opens the hosted catalog instead, and so does every PunchOut while PunchRelay has paused storefront mode.
Each procurement user signs in as a customer
You map each procurement user to a Shopify customer who belongs only to the connection's company location. Or PunchRelay sets one up from the email address and name you enter: it creates the customer, or reuses the one with that email address, and gives it ordering access at that location. After the PunchOut, the buyer signs in to your store with a Shopify customer account: one extra login. Shopify signs every request it passes to PunchRelay through the app proxy, and PunchRelay checks that the signed-in customer is the one mapped to that procurement user.


A PunchOut cart inside your theme
During a PunchOut, the PunchRelay app embed, part of a theme app extension, places an “Add to PunchOut cart” button beside the product form of your own theme, on Online Store 2.0 themes with a standard product form, and hides your store's own add to cart, dynamic checkout buttons and cart count there. The cart icon opens a PunchOut cart page shown in your theme's layout, and a floating PunchOut panel keeps the cart lines, the return button and Cancel at hand. Where a page's product form cannot take the button, or you turn off “Place PunchOut controls in your theme” in the app embed settings, the buyer adds products in that panel instead and your store's own buttons stay on the page; items put in the store's own cart are not sent to the procurement system. Settings shows for each theme whether the controls are placed. You switch the app embed on in the theme editor; PunchRelay does not edit your theme code. The buyer adds products at the prices Shopify gives their company location and returns the cart to the procurement system as a requisition. Your store's own cart is not touched, and no Shopify order is created at this step.




Checkout stays closed to mapped customers
PunchRelay marks each mapped customer as procurement-only and adds a checkout rule to your store: a Shopify Function for cart and checkout validation, which runs on Shopify's servers. Those customers cannot complete checkout; their orders reach you as purchase orders you approve. Every other customer checks out as before. If the rule itself fails, checkout goes through by default; you can switch to blocking, which also stops other customers while the failure lasts.
What your store needs
Shopify B2B with a company location for the connection, customer accounts in your store, the subject field (user ID or email) chosen on the connection, the PunchRelay app embed turned on in your published theme, and the app proxy path confirmed once in Settings. List the return addresses you expect, too: while the list is empty, returns go to any HTTPS address the procurement system sends.
Install PunchRelay from the Shopify App Store
Start the 30-day free trial from the listing. Pricing is $349/month with two punchout connections included, billed through Shopify.
Talk to us about your buyer's system
Questions about your buyer's procurement system, or want help with setup? Leave your email and we will reply personally.
Install the app if you know which procurement system your buyer uses. If you don't know yet, talk to us first.
