GUIDE

Set up your first buyer connection

A step-by-step guide for the person setting up PunchRelay in a Shopify Plus store.

Before you start

In Shopify Admin, prepare a B2B company with at least one location and a company contact linked to a customer record. Assign a company catalog to that location. The catalog must be ACTIVE, have a publication containing the products you want the buyer to see, and have a price list with the agreed prices.

Set the location's payment terms and check its checkout settings. For a separate B2B storefront test, activate customer accounts and use a test customer belonging to the company. Follow Shopify's guide to testing your B2B setup and check the prices and payment terms shown.

PunchRelay's Home page marks the first step Complete when at least one company has a location and a contact. That badge does not check the catalog. PunchRelay verifies catalog availability when it opens for the buyer, including during the self-test.

Follow the four steps on Home

Home showing the four setup steps and their progress badges
The Home setup card with Complete, Complete, Next and Not started badges.

1. Confirm Shopify B2B setup

Check the company, location, contact and active catalog in Shopify Admin. Return to PunchRelay and reload Home after changing the company setup. The Open Shopify companies button currently shows a reminder to open Companies in Shopify Admin.

2. Create a buyer connection

Select Create connection. Work through the four wizard screens below.

1 · Buyer

Enter a recognizable Connection name (optional). In Buyer identity, enter the buyer's cXML From/Sender identity, such as an Ariba ANID, exactly as their IT team supplies it. Ariba test accounts use the production ANID with -T appended, for example AN01000000099-T.

Set Protocol to cXML only for cXML punchout and purchase orders. Choose cXML + OCI only when the buyer also needs OCI cart return; that option adds an OCI username field. Select Continue.

Buyer wizard screen with connection name, buyer identity and protocol fields
The Buyer screen before entering a name and buyer identity.

2 · Shopify B2B mapping

Select the Shopify B2B company, then the Company location, then the Company contact. The location determines contract pricing. Orders are placed as the contact you select. For the example shown, these are Acme Industrial Group, Acme HQ - Receiving and Dana Whitfield. Select Continue.

Shopify B2B mapping with Acme Industrial Group, Acme HQ - Receiving and Dana Whitfield selected
The example buyer mapped to its company, location and contact.

3 · Protocol options

Use Test for Deployment mode while the buyer works in their test realm. Choose Production when they switch to production credentials. For Cart transfer field, use cxml-urlencoded unless the buyer's IT team asks for cxml-base64. This field controls how the returned cXML cart is carried to the buyer. Select Continue.

Protocol options with deployment mode Test and cart transfer field cxml-urlencoded
Protocol options for a test connection using cxml-urlencoded.

4 · Review

Check the buyer identity, company mapping, protocol and cart transfer field. Select Edit to correct an entry or Back to return to the previous screen. When the details are correct, select Create connection.

Review table for the Guide example buyer connection
Review the connection settings before creating the connection. This example was left unsaved.

3. Save credentials and endpoints

The Connection created dialog displays the credentials once. Save them securely before selecting I've saved these. Use the handoff list below to prepare the buyer's IT team.

4. Run self-test

Open the connection and find its Self-test card, or select Open self-test on Home. Read the test instructions below before running it. The credentials and self-test progress badges on Home reset when the app reloads.

What to send to the buyer's IT team

Send the following through your agreed secure channel. Copy the URLs exactly from the Endpoints card.

If OCI is enabled, also send the OCI username and OCI password. Secrets are Shown once. Selecting Rotate credentials and confirming it invalidates the old credentials immediately; securely send the new credentials to the buyer before they resume testing.

Illustrated Connection created dialog showing Identity, a masked SharedSecret, three endpoint URLs and I've saved these
Illustration of the Connection created dialog, using the app's labels. The masked secret is illustrative.
Acme connection overview and Endpoints card with cXML setup, cXML order and OCI URLs
The connection overview and Endpoints card retain the three URLs after the credentials dialog closes.

Run self-test

In the connection's Self-test card, select Run self-test. Read the Run self-test? dialog and confirm with Run self-test. Allow about 30 seconds.

The test runs a real cXML punchout round in the live PunchRelay app against your Shopify store. A successful round creates one unpaid Shopify test order and deletes it. It checks one item using this connection's cart transfer field. It does not confirm that the buyer's system received the cart.

StepWhat it checks
PunchOutSetupRequestSends the connection's identity and secret and checks that a StartPage URL is returned.
Open catalogOpens the catalog and checks that it contains a product row.
Add to cartAdds the first product at its contract minimum quantity.
Cart transferReads the returned cXML cart in the configured transfer field and checks that it contains an item.
OrderRequest ackSends a test purchase order named SELFTEST-... and checks that it is acknowledged.
Shopify orderWaits for the unpaid Shopify order to be created.
Cleanup Shopify orderRequests deletion of that Shopify order and checks that cleanup succeeds.

Successful results show Self-test passed and seven rows marked Passed. If a row shows Failed, read its Detail text first. The test stops at that failure, so later rows might not appear.

Self-test card showing the Self-test passed banner and seven Passed result rows
Self-test passed with all seven rows marked Passed, including cleanup of the unpaid Shopify test order.

When a step fails

Open catalog: no catalog rows means the test could not find a product in the catalog. Check that the active catalog is published to the selected company location and contains products with contract prices. This message alone does not prove a publication setting is wrong; a catalog-loading problem can give the same result.

If Shopify order fails, read its Detail text for the specific reason. Also confirm that the staff account running the app can delete orders, which the cleanup step needs.

Purchase orders table header and four completed test orders marked Ordered
Completed test purchase orders marked Ordered.

Open Sessions to inspect the punchout activity after the round. Use the result table and session details when reporting a failure.

Sessions table header and four cleaned-up test sessions
Completed test sessions marked cleaned-up.

Next: buyer acceptance

A passing self-test proves the merchant-side cXML happy path for one item. The buyer then runs the round from their own Ariba test account, Coupa test instance or OCI test call. OCI acceptance covers cart return; its purchase-order integration is agreed separately.

Ask the buyer to sign off on contract prices, units and frame behaviour in their own system. They should check the returned cart and, for cXML, the resulting purchase order before agreeing that the connection is ready.

What PunchRelay does not cover

E-invoicing mandates

PunchRelay moves carts and purchase orders between the buyer's procurement system and Shopify. It is not an e-invoicing solution. A cXML InvoiceDetailRequest is a procurement-network message, not an electronic invoice under the European standard EN 16931, and PunchRelay does not produce EN 16931, Factur-X, XRechnung, ZUGFeRD or Peppol BIS Billing documents, does not connect to a French plateforme agréée, and does not report invoice data to any tax authority.

France: from 1 September 2026 every VAT-registered business must be able to receive electronic invoices and large and mid-sized companies must issue them; small and micro businesses must issue from 1 September 2027. Germany: receiving has been required since 1 January 2025; issuing is mandatory from 1 January 2027 for businesses with prior-year turnover above EUR 800,000 and from 1 January 2028 for all. PunchRelay does not satisfy these mandates. Sources: impots.gouv.fr, Je passe à la facturation électronique and Bundesministerium der Finanzen, E-Rechnung FAQ, both accessed 16 September 2026.

Agentic storefronts and product publishing

Shopify excludes B2B-only products from AI shopping channels when it can identify them through native B2B features, and warns that products restricted by third-party apps or custom theme code may still appear on agentic storefronts. PunchRelay does not restrict product access on your storefront: its punchout catalog is hosted by PunchRelay, reads your Shopify B2B company catalog, and never publishes, unpublishes or hides products in your store or on any sales channel. Which products appear on an agentic storefront is decided by your Shopify publishing and B2B catalog setup alone. Source: Shopify Help Center, Products on agentic storefronts, accessed 16 September 2026.

Get early access

We are onboarding a small group of Shopify B2B merchants and building their first buyer connections with them. Tell us where to reach you.

No spam. We reply personally.