Source Reddit post: https://www.reddit.com/r/shopify/comments/1uq9v6q/help_with_po_setup/
Build a lightweight Shopify PO checkout and order-hold setup desk for small merchants selling books, supplies, kits, merch, or equipment to schools, government offices, nonprofits, and other institutions that buy by purchase order instead of card.
The best first customer is a small Shopify merchant that is mostly normal B2C but has a meaningful institutional ordering lane: school book sellers, curriculum publishers, educational toy sellers, lab/classroom supply stores, museum/nonprofit shops, local uniform sellers, training-material vendors, and small government/nonprofit suppliers.
They are not enterprise procurement teams. They are owner-operated or tiny ops teams trying to support buyers who say things like “we need to pay by PO,” “can we send a purchase order PDF,” “our school cannot use a credit card,” or “we need an invoice first.” Their Shopify store already works for ordinary card buyers, but institutional orders create side-channel work: email threads, manual payment, missing PO numbers, unclear shipment holds, invoice matching, and internal recordkeeping.
The buyer is usually the owner, ops manager, or ecommerce admin. The user is whoever processes orders and emails schools.
The fresh Reddit seed is almost exactly the wedge: a Shopify merchant sells books to schools, some customers buy by card, but schools generate a PO and send it before shipment. The merchant has a manual payment option, tried add-ons, and still cannot find a clean way to make a PDF upload appear only for that payment option. The OP asks whether there is a best-practices workflow.
This is not an isolated Reddit oddity. A 2024 Shopify Community thread uses nearly identical language: the merchant deals with B2C customers but also “a lot of schools and government agencies” that prefer to place an order with a purchase order number, have the merchant fulfill it, then invoice them. They ask for a better option than manual payment so the customer can add a purchase order number and/or upload a purchase order when submitting the order. The workaround is ugly: schools call, email details, staff manually create the order, record it as manual payment, and manually invoice in Xero.
A 2020 Shopify Community thread also names the exact problem. The merchant has public-school customers that cannot use credit cards, can only make purchases with POs, and pay 30 days later. They created a manual payment option called “purchase order,” but still need email to collect the PO number and push the order through. They call the flow “cumbersome,” “a little confusing to the customer,” and too open because anyone shopping can select it. Their desired workflow is narrow and concrete: limit PO checkout to approved accounts, collect a PO number, send automatic instructions, and support net terms.
A separate Shopify Community post asks for a checkout file upload specifically so customers can upload “a PO number document for invoicing purposes.” Another asks for PDF uploads during ordering, says existing apps are “overly feature-rich,” and wants the uploaded PDF tied to the order so a team member can download it from the order tab. Another merchant with a purchase-order payment option says customers reply to order confirmation emails with PDF POs, then the merchant fulfills the order, but they want to attach that PDF to the individual order so there is a record.
Non-Reddit validators support the buying workflow. Bulk Bookstore, a relevant category analog, publicly accepts purchase orders from public educational institutions and government agencies, offers Net 21-day terms, and tells buyers to “Checkout & Upload Your PO” in PDF/doc/docx format. NYC Public Schools vendor guidance shows the institutional side: vendors deal with purchase order delivery/communication and invoice submission processes. Schools and public entities really do operate through PO and invoice rituals, and small online sellers have to absorb that workflow somehow.
Shopify has moved further into B2B, payment terms, company accounts, and extensible checkout, but that actually exposes the gap for smaller mixed-mode merchants. Big merchants can justify Shopify Plus, B2B suites, ERP/procurement integration, or custom checkout work. Tiny merchants selling books or educational products to schools often need only one operational lane: accept the order, capture the PO number/PDF, hold or tag the order until reviewed, generate invoice/packing status, and remind the right person when a PO or payment is missing.
At the same time, the app store is full of adjacent substitutes that solve pieces, not the whole school-PO desk. File-upload apps focus on artwork, print files, product customization, file dimensions, or production workflows. B2B wholesale apps focus on price lists, registration, tax, catalogs, and net terms. Invoice/payment apps can expose pay-later options for B2B customers. Document apps generate invoices and packing slips. The merchant pain is the glue between these: conditional PO collection, order records, review status, release-to-ship, and follow-up.
The fresh Reddit post matters because the OP has already tried add-ons and still asks for “best practices.” That is the opening for a service-first setup desk: not another broad Shopify app immediately, but a packaged workflow install for a tiny merchant with exact institutional PO rules.
Start as a setup desk, not a full app.
The first version should install a simple Shopify PO workflow for one merchant in a day:
1. Add a clearly named manual payment method such as “School / Institution Purchase Order.”
2. Add instructions that explain who can use it, what must be in the PO, and when the order ships.
3. Capture PO number and PO upload through the least fragile path available for the merchant’s plan: cart attribute, product/cart upload, post-checkout upload link, customer account/order status page extension where available, or a linked form keyed by order number/email.
4. Store the PO file URL and PO number on the order as tags/metafields/notes.
5. Tag orders as PO - missing, PO - received, PO - approved, PO - hold, or PO - ship.
6. Send automatic buyer emails for missing PO PDF, missing PO number, PO received, invoice sent, and payment overdue.
7. Create a staff dashboard or Airtable/Sheet view listing orders waiting on PO review, invoice, payment, or shipment release.
8. Generate a plain-language policy page for schools: W-9, tax exemption instructions, accepted entities, PO requirements, payment terms, and contact email.
A weekend-buildable version can be a Remix/Shopify app plus external storage, or even a service bundle using Shopify Flow where available, order tags, metafields, a secure upload form, and templated notifications. The paid validation offer can be: “I’ll set up a clean school PO checkout workflow on your Shopify store for $300-$750, including upload, order tagging, emails, and staff checklist.” After 5-10 installs, turn the common pattern into a self-serve app.
The wedge is search and community intent, not broad ecommerce marketing.
Start with exact pain-language channels:
The early landing page should avoid SaaS abstraction. Use the buyer’s words: “Let schools upload a PO PDF, keep the order on hold until you approve it, and stop chasing PO numbers by email.”
Generic file-upload apps are the first substitute. Upload Center starts at $9/month, has a 5.0 rating with 15 reviews, and supports targeted upload fields, PDF page count, production statuses, automated emails, and bulk download. It is powerful, but it is oriented toward print/custom file workflows. It does not appear to be specifically packaged around manual-payment PO approval, school-buyer instructions, invoice matching, or fulfillment holds.
Invoice/payment apps are another substitute. INV - Invoice Payment Method starts at $3.99/month and offers invoice payments at checkout based on customer, cart, and location rules. That is relevant for “pay later” B2B orders, but the listing evidence is about payment method visibility, not PO PDF collection and order-document review.
B2B suites are a broader substitute. BSS B2B Wholesale Pricing and similar apps centralize wholesale workflows, price lists, registration, net terms, and tax control. These may be too heavy for a small Shopify merchant that simply needs a school PO lane alongside normal card checkout.
Shopify native B2B and payment terms are the platform substitute. Shopify’s help results describe payment terms and B2B payment methods for company buyers, and manual payment methods are native. But the community posts show the gap: merchants can create a manual payment option, yet still struggle to collect the PO number/PDF, restrict the option, explain the workflow, and keep order records clean.
Manual email is the incumbent. Many merchants let the buyer check out with manual payment, reply to the order confirmation with a PO PDF, then staff manually attach notes, invoice in Xero, and decide when to ship. The opportunity exists because this works just well enough to persist but badly enough to create repeated confusion.
Enterprise procurement portals are not the real competitor for this ICP. Schools and agencies may have portals, but tiny Shopify sellers are not trying to become Ariba/Coupa suppliers. They need a lightweight bridge between Shopify orders and institutional PO rituals.
The biggest product risk is Shopify checkout limitation. On many Shopify plans, injecting a true conditional file upload directly into checkout may be difficult or impossible without specific checkout extensibility paths, plan constraints, or approval. The MVP should not overpromise “PDF upload inside checkout” until implementation is validated. A safer install can use cart attributes, a post-checkout upload link, or an order-keyed upload form.
The second risk is that the wedge may be a setup service more than a durable SaaS. Some merchants only need a one-time configuration, policy page, and email templates. That is still a good service wedge, but recurring revenue may require ongoing reminders, dashboarding, document storage, invoice/payment matching, and support.
The third risk is fragmented buyer rules. Schools, districts, government agencies, and nonprofits vary on W-9s, tax exemption, required PO fields, billing addresses, shipment timing, and payment terms. A product needs configurable checklists, not one rigid flow.
The fourth risk is app-store discoverability. “Purchase order” can mean supplier purchase orders, inventory purchase orders, B2B buyer POs, or QuickBooks/Stocky workflows. Messaging must be explicit: school/customer PO upload at checkout for Shopify merchants.
The fifth risk is compliance and privacy. PO PDFs may contain billing contacts, addresses, tax IDs, student-related context, or internal approval details. The app needs secure upload, access controls, deletion/export, and careful wording around what not to upload.
Validate as a productized service first.
The offer should be concrete: “I’ll set up your Shopify store so schools can choose Purchase Order, submit their PO number/PDF, and so your team knows whether to hold, invoice, or ship the order.” Charge for setup. Use the first installs to learn which technical path survives across Shopify plans. Only then build a self-serve app around the shared workflow.
The strongest narrow segment is book/curriculum/education-product sellers because the seed and Bulk Bookstore validator both point there. A second segment is small suppliers selling to local governments/nonprofits that have normal ecommerce traffic plus occasional institutional POs.
This may be less of a software gap than a Shopify-plan/checkout-permissions problem. If non-Plus merchants cannot get the desired field into checkout, the cleanest solution may always be a post-checkout upload link, not the exact checkout attachment OP requested.
The source base is strong for pain language but thin on measured market size. There are multiple posts, but not enough evidence that thousands of merchants urgently search for this every month. This should be tested with direct outreach and ad/search volume before building a generalized app.
The competitor review is based on public listings and extracted snippets, not hands-on app trials. Some apps may already support enough conditional logic to solve 80% of this if configured well. That makes the setup-desk wedge stronger than a net-new app at first.
The value may skew toward one-time implementation. Recurring SaaS needs ongoing order queue, reminder, audit trail, document retention, or invoice/payment reconciliation value.
REDDIT_RESPONSE_DRAFT_START
This is a real workflow, especially with schools. I would not try to treat the PO PDF like a normal product customization upload unless every order needs it. The cleaner setup is usually: keep card checkout normal, add a clearly named manual payment option for school/institution POs, collect the PO number/PDF in a way that gets written back to the order, then tag the order as PO missing / PO received / approved to ship so it does not get lost in email.
If checkout upload is fighting you, a post-checkout upload link tied to the order number may be less fragile than forcing a generic upload app into the checkout step. The important part is that the PO ends up attached to the order record and your mom has a clear hold/release process. I help small Shopify shops clean up exactly this kind of messy order workflow, so happy to point you in the right direction if you want.
REDDIT_RESPONSE_DRAFT_END
A focused Shopify PO intake-and-hold desk for school/government buyers is a practical SMB workflow wedge with real admin and cash-flow pain, though likely at modest app-store pricing.