For developers
If a merchant has asked you to vet Transactful, this page is for you. Short version: it’s built the way you’d build it – entirely on Shopify’s native B2B primitives, with nothing injected into the theme and nothing for you to maintain afterwards.
Surfaces used
Section titled “Surfaces used”| Concern | Implementation |
|---|---|
| Credit enforcement | Cart & Checkout Validation Function – runs on Shopify’s checkout infrastructure, all plans |
| Merchant UI | Embedded admin app (App Bridge/Polaris) + admin UI extensions on Company and Order pages |
| Buyer credit view | Customer account UI extension |
| Application form | Hosted page on our infrastructure (apply.transactful.com/…) – linked from navigation, not embedded |
| Data freshness | Order webhooks into an append-only ledger; nightly reconciliation against the Orders API with drift alerting |
What we never touch
Section titled “What we never touch”- No theme modification. No Liquid edits, no ScriptTags, no asset
injection, no CSS overrides.
shopify theme pullbefore and after install diffs empty. - No order mutation. We read orders; we never write them.
- No price manipulation. Wholesale pricing is native Shopify catalogs, assigned at approval.
How enforcement stays fast
Section titled “How enforcement stays fast”Checkout validation functions can’t make network calls on standard plans, and we wouldn’t want them to. Instead, Transactful continuously writes each company’s available credit to metafields on the Shopify Company/Location (order webhooks feeding an append-only ledger); the validation function reads those metafields locally at checkout. Zero external calls in the checkout path – our backend being slow or down cannot slow the merchant’s checkout.
Reliability posture
Section titled “Reliability posture”If credit data is unreadable at checkout, default behavior is fail-open with an alert (strict mode available). Exposure is derived from an append-only event ledger – duplicate or out-of-order webhook delivery is handled by construction, and nightly reconciliation re-derives every balance from the API with discrepancy alerts. Platform edges are documented, not hidden: see where enforcement applies for the POS/API caveats.
Data and compliance
Section titled “Data and compliance”Scopes are minimal and enumerated in Permissions & data – no products, no themes, no storefront content. Data is stored encrypted in the UK/EU region; Shopify’s mandatory GDPR webhooks (customer request, customer redact, shop redact) are implemented. Uninstall removes the validation immediately and leaves all native Shopify data (companies, catalogs, terms, orders) exactly as it was; our data is exportable as CSV and deleted after 30 days.
Is there an API?
Section titled “Is there an API?”Yes – a merchant-scoped REST API plus signed webhooks for the application and credit lifecycle: API overview, reference, webhooks. It’s deliberately designed inside Shopify’s API License and Terms (no Shopify-API proxying, single-store keys, PII minimization, obligations flowed down) – the compliance mapping is documented right in the overview. Everything Transactful creates in Shopify itself (companies, terms, catalogs, metafields) remains readable through Shopify’s own Admin API under the store’s credentials. CSV export also exists for one-off needs.
Testing before you recommend it
Section titled “Testing before you recommend it”Transactful installs free on development stores. Approve a test application with a small limit (£100), place an over-limit order with a test B2B customer, and watch the block – the getting started verification is a complete test script. Enforcement behaves identically on dev stores and production.
What you’d maintain
Section titled “What you’d maintain”Nothing. There’s no code in the store, no snippet to update on theme changes, no cron on the merchant’s side. Your handover to the client is Shopify admin training, not infrastructure.
Questions we haven’t answered here: [email protected] – technical questions get technical answers.