Core Shopify B2B and public-app validation are not blanket Plus-only requirements. The optional payment-step note and original-order partial write-back have separate Plus restrictions.
Starting context
Before you start
- Configured Shopify B2B, native terms, company/location contacts and catalog access.
- For repository work only: project instructions, pinned dependencies, configured local credentials and an authorized development store.
Shopify plan compatibility
Checked against official Shopify documentation on 6 October 2026 and the current NetGuard source. This is a platform/source comparison, not a claim of live testing every plan.
| Capability | Basic / Grow / Advanced | Shopify Plus |
|---|---|---|
| B2B companies, locations, permissions and net terms | Available; B2B catalogs require new Shopify Markets | Available |
| B2B market catalogs / direct company catalogs | Up to 3 active market catalogs; no direct company assignments | Unlimited market catalogs and direct company/location assignment |
| Public App Store app validation Function | Available; this release reads metafields, without Function network access | Available; custom-distributed Function apps also require Plus |
| Optional Credit checkout note at payment step | Unavailable at this checkout UI target | Available when the app block is placed |
| NetGuard manual partial receipt ledger | Available on every NetGuard plan | Available on every NetGuard plan |
| NetGuard buyer partial checkout | Requires NetGuard Pro/Business and eligible invoice/payment context | Same NetGuard entitlement requirement |
| Automatic partial write-back to original Shopify order | Skipped; full settlement can sync when enabled | Supported when enabled; processed asynchronously |
| Shopify-native advanced B2B payments | Native deposit/partial/payment-per-fulfillment features unavailable | Available; distinct from NetGuard’s receipt ledger and portal |
- Shopify B2B features by plan ↗
- Shopify Functions availability ↗
- Checkout UI extension availability ↗
- Manual payment mutation and amount restriction ↗
Keep in mind. NetGuard Pro is an app subscription, not Shopify Plus. Shopify’s native advanced-payment restrictions do not mean NetGuard cannot record a partial receipt. Store configuration, distribution and current platform eligibility still need verification.
Verify the store surfaces
The public website needs no Shopify session; admin, buyer data and PDFs are authenticated. There is no documented public integration API in this release.
Open NetGuard from Shopify admin and complete the four setup steps. Verify terms, catalog and contact/location assignments in the intended store.
Expected resultActual saved prerequisites agree with Shopify, rather than only the welcome screen being marked complete.
Enable the validation rule in the active Shopify checkout configuration and review NetGuard’s three policy switches.
Expected resultThe function blocks disallowed supported credit orders independently of the optional note. Test an allowed and a refused cart.
On Plus, place Credit checkout note in its supported active checkout location and save; on other plans proceed without this optional block.
Expected resultThe note adds information, not enforcement. Do not promise a branded note to every blocked non-Plus buyer.
In the active Shopify customer-account editor, select Orders → Main → Add block → My Invoices → Save. Sign in as an assigned company contact and open Orders. Repeat with a retail/unassigned contact.
Expected resultThe placed block uses customer-account.order-index.block.render and shows only authorized scope; shoppers with none see no block. Deployment alone does not place it.
Keep in mind. Never build around internal endpoints or put Shopify tokens into browser URLs. Network-accessing Functions have separate platform restrictions; this validation release does not use that capability.
Repository contributor verification
These commands are for developers, not tasks merchants must perform. Use fictional records and keep credentials out of source.
Follow repository instructions and lockfiles for npm ci at root and UI extensions. Configure local credentials from the example and run npm run db:migrate:local.
Expected resultLocal dependencies/schema match the repository; production exports and credentials are not test fixtures.
Run npm run dev or npm run dev:shopify for the appropriate preview. Verify admin and extension context with an authorized development store.
Expected resultLocal public rendering is not mistaken for authenticated Shopify or buyer-extension verification.
Run npm run typecheck, npm test and npm run build before release; run the Rust validation function’s Cargo tests separately.
Expected resultRoot and both UI extensions receive type checks; Rust behavior is not assumed covered by TypeScript.
For an authorized Worker release use npm run deploy so remote migrations precede a fresh build and upload. Review extension releases separately.
Expected resultSchema changes land before dependent code and the upload uses fresh build output. Reading this guide does not authorize a production mutation.
Keep in mind. Shopify supplies commerce, identity and billing. Cloudflare Workers/D1/KV/R2 host records and protected files; Browser Rendering creates PDFs and Resend delivers email. Webhooks and background work synchronize state.
Check before retrying
If the result differs
- A feature is absent on non-Plus
- Use the compatibility table to distinguish native Shopify/editor restrictions from NetGuard entitlement. Test the actual supported surface rather than assuming all app features need Plus.
- An integration requests an API key
- No public API is documented in this release. Discuss requirements with support without exposing tokens or depending on internal routes.
Contact NetGuard support with the store domain, record identifier and the result you expected. Redact unrelated personal information.