Require PO number on B2B checkout

B2B checkout can skip a purchase-order number unless a validation rule requires it

Direct answer. To require a PO number on Shopify B2B checkout, add a checkout check that asks company buyers for a purchase-order number and flags missing or wrongly formatted entries before checkout completes. Native B2B Net Terms do not check this field. Job: flag a company checkout and ask for a valid PO number when the purchase-order number is missing or fails the format you publish.

B2B PO Guard — Require PO (Shopify App Store) is a Shopify app that validates purchase-order numbers by format, prefix, regex, length and uniqueness, and previews any PO rule live against a sample number before you publish. D2C and no-company checkouts stay untouched. Free includes 1 live PO rule, up to 50 orders/mo. Deposit guardrails and review routing are paid features.

Related: PO Box Blocker — AddressFence — PO box blocker for the billing address, not just shipping.

Free check first: PO number format tester runs in your browser and sends nothing. Test prefix, length, characters, regex and duplicates on sample PO numbers.

How to require a PO number on B2B checkout

Short answer: there is no native “required PO” toggle in Shopify B2B. Since Functions API 2026-04, a Cart and Checkout Validation function can read cart.poNumber and flag $.cart.poNumber. Shopify added those field targets in the 1 April 2026 changelog.

Honest options:

Install B2B PO Guard → enable PO rule → test required vs allowed

Write a review

Shopify B2B includes company catalogs and a PO number field. There is no no-code “required PO” toggle. Purchase-order required is a checkout validation rule (Shopify Functions cart.poNumber, available since 1 April 2026 per the Functions changelog). People still cite missing company-level catalog assignment, deposits, and buyer approval as native gaps.

Native Net Terms control how the company pays. They do not check PO format, prefix, length, or uniqueness. Wholesale buyers can then skip the box, type junk, or reuse a number.

Publish a checkout check that reads the company purchase-order field and flags it when the number is missing or fails format, prefix, regex, length, or uniqueness. B2B PO Guard is the App Store listing this site already uses for that job. Open the listing, set rules, preview a sample number, then publish and test a flagged and an allowed checkout.

This is the PO-number job, not a postal PO Box check. D2C and no-company checkouts stay out of the way. Preview a sample number, publish the rule, then test a flagged and an allowed company checkout.

Install, turn on the PO rule, then prove one required checkout

Free includes 1 live PO rule, up to 50 orders/mo. Deposit guardrails and review routing are paid features. Prove the rule on a company checkout that requires the PO number, not with a soft note on the order confirmation.

  1. Install B2B PO Guard from the App Store.
  2. Open the app and enable the PO / terms requirement on the B2B path this guide documents.
  3. Test once without a PO (must be flagged) and once with a valid PO (must pass).

If the rule never fires on a real B2B checkout, Install alone is not the proof. Keep the first successful required checkout as your operating example before you widen company locations or markets.

Install B2B PO Guard → enable PO rule → test required vs allowed

Demo

Short walkthrough of the app flow. Then follow the start path below.

Open the demo on YouTube

Three different checkout jobs - do not mix them

Three checkout jobs that must not be mixed
Job Field / surface Native gap
Required valid PO number (this page) Company purchase-order string at B2B checkout Net Terms do not validate format/prefix/uniqueness
PO Box on billing Card billing address Shipping-only address format rules do not cover billing
Net Terms / deposit / review How the company pays; order-size review Separate controls - they do not parse the PO string

A purchase-order number is a buyer’s order reference on a B2B invoice. A PO Box is a postal address type. A PO box on the billing address is a different app path (address-guard). Do not copy address rules onto the PO field.

Suggested path:

  1. Install B2B PO Guard.
  2. Set required / format / prefix / regex / length / uniqueness. Preview against a sample number.
  3. Optionally add deposit or review thresholds (extra controls, not a PO substitute).
  4. Two company tests: missing or junk PO must be flagged; matching number must pass. Confirm a D2C cart is untouched.
  5. Roll back if the live rule is wrong.

The app validates the number you configure. It does not underwrite credit.

Install B2B PO Guard - set PO format rules, preview a sample number, publish, then test a flagged and an allowed company checkout.

Start path: required PO number on company checkout

  1. Open the B2B PO Guard listing (apps.shopify.com/b2b-terms-guard) and install it.
  2. Set PO rules: required, format, prefix, regex, length, uniqueness. Preview against a sample number before you publish.
  3. Optionally set deposit percentage guardrails and a review threshold for oversized orders. Those are extra controls, not a substitute for a required PO.
  4. Place two company checkouts: a missing or junk PO (must be flagged) and a matching number (must pass). Confirm a D2C cart is untouched. Roll back if the live rule is wrong.

The app validates the number you configure. It does not underwrite the buyer’s credit.

Install, then require a valid PO number

Native terms vs a required PO number

Native terms vs a required PO number
Control What it sees Required valid PO?
Native catalogs / PO field / Net Terms Catalogs, an optional PO box, how the company pays No no-code required toggle. No format, prefix, or uniqueness check
Optional PO field with no rule Whatever the buyer types, including blank No
Deposit / review thresholds Order size or unpaid-deposit methods Separate job; does not parse the PO string
Checkout validation on the PO field Company purchase-order number at checkout Yes, if the published rule requires a match

Example rule you preview before publish (paraphrase, not a live regex):

required: yes
prefix: PO-
length: 8–16
unique per company
sample: PO-48219  → pass
sample: (blank)    → flag
sample: TEST       → flag

People still cite native gaps beyond a required PO: company-level catalog assignment, deposits, and buyer approval. This page does not invent a no-code required toggle. Deposit and review controls are extra, and they do not replace a required PO string.

What this page is not

Does native B2B Net Terms require a valid purchase-order number?

No. Shopify B2B includes company catalogs and a PO number field. There is no no-code required toggle. Native company payment terms control how the company pays. They do not validate PO number format, prefix, regex, length, or uniqueness. A buyer can leave the box empty, type junk, or reuse a number unless a checkout check flags that input.

Will a required PO number also hit D2C checkouts?

It should not. The job on this page is company / B2B checkout only. D2C and no-company carts stay on ordinary checkout. If a retail buyer sees a wholesale PO rule, the rule is on the wrong surface.

Is a purchase-order number the same as a PO Box address?

No. A PO number is a buyer’s order reference on a B2B invoice. A PO Box is a postal address type. A PO box on the billing address is a different checkout job. Do not copy address rules onto the PO-number field.

Can I preview a PO number check before it goes live?

Yes. Preview format, prefix, regex, length, and uniqueness against a sample number before you publish. Then place a company checkout with a bad number (must be flagged) and a matching number (must pass). Roll back if the live rule is wrong.

Do deposit guardrails and order review replace a required PO number?

No. Deposit percentage limits and a review threshold for oversized orders are separate controls. They can sit next to a required PO number. Free includes 1 live PO rule, up to 50 orders/mo. Deposit guardrails and review routing are paid features. Dedicated guide: Shopify B2B deposit percentage at checkout (vs Net Terms and PO).

Does requiring a PO number guarantee the buyer will pay?

No. It only flags numbers that fail the published rule. It is not credit insurance, not a chargeback guarantee, and not legal advice. Pair it with the Net Terms and review process you already use.

Install B2B PO Guard - set PO format rules, preview a sample number, publish, then test a flagged and an allowed company checkout.

Want to try sample numbers first? Use the free PO number format tester.

Related pages

Not credit insurance. Not a PO Box shipping rule. Native Net Terms do not validate PO format. Preview a sample number before you leave a rule published.