ACCESS MODEL, DATA STORAGE AND INTEGRATION
IN SHORT
At login, sales reps are registered as authorized contacts of the respective company and use Shopify's regular B2B checkout. There is no simulated session, no shared credentials, and no access to the Shopify backend. Customer, rep, and order data stay entirely inside the store.
ACCESS MODEL
Real company membership
When a sales rep signs in on behalf of a customer, they are registered as a contact with ordering permission at the corresponding company location. The order then runs through the regular B2B checkout, using the same catalogs, price lists, ordering rules, and payment methods as a self-service order placed by the customer.
That removes the constructions common to comparable approaches: no simulated customer session, no shared credentials, no technical collective account.
No backend access
Sales reps need neither staff seats nor permissions in the Shopify admin. This explicitly includes external sales partners and independent sales agents.
Assignment
Permissions are granted through individual customers, through companies, or through tags.
Lifecycle of the membership
After logout, the sales rep is removed from the customer's company. The same applies to the previous membership when switching to another customer. Company memberships therefore do not accumulate across sessions.
A home company can optionally be set, which the rep falls back to after every logout. This matters for stores that hide assortment and prices entirely behind the login: without a home company, the rep would have no access to the store between two sessions.
Revoking permissions
Assignments can be revoked centrally at any time; access ends immediately.
Consent and documentation
The first time a sales rep accesses a customer, that customer's consent is obtained and documented. Recorded are the Shopify customer ID and full name of the sales rep, the date of consent, and a context note the rep enters themselves — for example that consent was given by phone with a named person.
The record is kept for subsequent orders.
Payment data
Only the last four digits of the company payment method on file are visible. Full card data is never displayed, transmitted, or stored. Payment runs through Shopify's standard checkout.
Attribution
Every order is attributed to the sales rep who placed it and can be reported on afterwards.
DATA STORAGE
What stays in the store
All configuration — the sales rep flag, assignments, home company, and consent records — lives in metafields on the store. No customer, rep, or order data is stored or transmitted outside the store.
What lives outside
The app stores the technical installation data of the store, including the access token. No personal data is involved.
Access to the metafields
The fields are app-owned and addressed through the app's namespace, for example customer.metafields.app-<id>.sales_agent_note. They are readable and writable for your own systems through the Admin API; staff with the corresponding permissions have write access as well.
Another app with a matching scope and knowledge of the app ID can read and write these fields too. That is the standard behavior of Shopify metafields, but it should be known when evaluating the access model. Restricting it is a matter of the API scopes granted to the other installed apps.
What you can do through the API
Because the configuration lives entirely in metafields, it can be wired into existing processes with ordinary GraphQL queries:
- Set sales rep assignments automatically during onboarding
- Derive and synchronize permissions from a central directory service
- Read and verify existing assignments as part of your own audits
Uninstalling
The theme blocks and all functionality disappear. The metafields remain and can be removed through the API if needed.
INTEGRATION AND TIMING
The order is first created under the sales rep and assigned to the actual customer immediately afterwards through the orders/create webhook. The process runs with an automatic retry; if it keeps failing, a manual assignment is possible.
That places requirements on downstream systems:
Shopify Flow
Workflows that react to orders/create and read the customer should be configured with a delay of one minute. Otherwise they see the sales rep instead of the customer. The delay is set per workflow and should be kept in mind for workflows created later.
ERP synchronization
The same applies to connectors reacting to orders/create. Most integrations run on an interval of several minutes anyway.
Other apps
Applications that react immediately to an incoming order — review, loyalty, notification, or shipping apps, for example — can show the same effect. Reviewing the installed apps before rollout is advisable.
Order confirmation
Shopify's standard confirmation goes to the sales rep. The app optionally sends a multilingual confirmation with explanatory text to the customer — or none at all, if the ERP produces an order confirmation anyway.
COMPLETING THE ORDER
Depending on the payment method on file, this creates:
- Company credit card on file: a regular order with payment through the standard checkout
- A payment method such as invoice on file: a regular order with that payment method; downstream processes such as automatic invoicing from the ERP apply unchanged
- No payment method available: a draft order with a payment request, sent automatically or manually
In the first two cases, an order from field sales is technically indistinguishable from a self-service order. There is no second order path that downstream integrations would have to handle separately.
REQUIREMENTS
Shopify Plus with B2B enabled, companies and company locations set up, and a theme supporting app blocks (Online Store 2.0). Setup consists of placing two theme blocks via deep link and setting the assignments.
You will find the full list of requirements and the reduced feature set without Shopify Plus on the page Does the app fit your store?.
SAAL: SALES AGENT ON THE SHOPIFY APP STORE
Install it directly from the Shopify App Store. Setup takes about five minutes and needs no developer work.
View on the Shopify App Storeapps.shopify.com/saal-sales-agent