Wholesale Purchase Order Automation
OrderHoist eliminates manual order entry for B2B Shopify merchants. When buyers email purchase order PDFs, spreadsheets, or scanned documents, line items are extracted in volatile memory, resolved against catalog SKUs and case-pack rules, and converted into open Shopify Draft Orders in 10 seconds.
Core Ingestion Architecture
The entire process from buyer email to Shopify Admin operates through a deterministic, least-privilege pipeline without saving source order documents to disk.
Buyer emails PO attachment to orders-store@inbound.getorderhoist.com
Ephemeral RAM buffer parsed via Google Gemini 2.5 Flash with strict JSON schema. Zero disk files.
Checks buyer SkuAlias memory, queries Shopify GraphQL catalog, and applies pack multipliers.
Matches ≥ 85% land in Shopify Drafts. Unmatched lines held in Polaris triage queue.
Onboarding & Quickstart
Setting up OrderHoist takes less than 3 minutes. No Liquid theme edits or store script tags are ever installed.
Install from the Shopify App Store (Coming Soon)
OrderHoist is currently pending Shopify App Store review. Early access merchants can contact support@getorderhoist.com for priority onboarding with least-privilege administrative scopes (read_products, write_draft_orders, read_draft_orders, read_customers).
Retrieve Your Dedicated Inbound Routing Email
In your OrderHoist app home, locate your unique address:
Set Up Auto-Forwarding or Direct Buyer POs
Configure an auto-forwarding rule in Google Workspace, Microsoft 365, or Outlook for wholesale PO emails, or share the inbound email directly with repeat wholesale buyers.
Pricing Plans & Usage Limits
OrderHoist offers transparent subscription billing billed directly through your monthly Shopify invoice using the Shopify Billing API 2026-10. All plans include a 14-day free trial.
| Plan | Price | Monthly Ingestion Cap | Key Features |
|---|---|---|---|
| Starter | $39 / mo | Up to 40 POs | Standard Gemini 2.5 Flash parsing, single-unit matching, draft order creation, 14-day trial |
| Growth Recommended | $79 / mo | Up to 150 POs | Buyer SKU alias memory, automated case-pack conversion, Polaris triage queue, dedicated routing inbox |
| Scale | $149 / mo | Up to 450 POs | Priority Gemini queue, custom wholesale tag workflows, unlimited alias mappings, dedicated support |
Inbound Forwarding Engine
OrderHoist connects through Resend inbound email webhooks. Every webhook event is verified cryptographically using Svix signatures (svix-id, svix-timestamp, svix-signature) with replay attack protection (5-minute tolerance).
Routing Inboxes
Incoming emails arrive at orders-[routingSlug]@inbound.getorderhoist.com. The webhook resolver extracts the slug, validates the merchant store session, and creates an audit record in the database before passing attachments to background processing.
Supported File Formats
Buyers send orders in whatever format their ERP or accounting software produces. OrderHoist parses all standard B2B document types.
Digital & Vector PDFs
Crystal Reports, QuickBooks, SAP, and NetSuite exported purchase order documents.
Excel Spreadsheets
Wholesale order sheets with multiple columns, custom headers, and line items.
Comma-Separated Values
Raw exported data sheets and tabular line items directly matched to catalog.
Scanned POs
Scanned paper orders and camera snapshots parsed with Gemini multimodal vision.
Ephemeral Processing & Zero-Disk Guarantee
Data security and confidentiality are foundational to OrderHoist.
Zero On-Disk Storage
OrderHoist holds file buffers in RAM only during the multimodal extraction window. Files are immediately released after parsing. OrderHoist does not maintain an object storage bucket (e.g. AWS S3) or save raw documents to disk, eliminating source document leakage risks.
Deterministic Catalog Matching
Buyers often write abbreviated or legacy product codes. OrderHoist uses a multi-tier deterministic matching algorithm to map raw descriptions to active Shopify variants without AI guesswork.
Step 1: Check SkuAlias Buyer Shorthand Memory
The matcher checks if this buyer has previously mapped this exact shorthand string (e.g. BLK-12) to a canonical Shopify SKU (e.g. SKU-4418). If found, the line item is resolved instantly with 100% confidence.
Step 2: Shopify Admin GraphQL Query (`searchVariants`)
If no alias exists, OrderHoist executes an Admin GraphQL query against the live catalog: exact SKU code match first, falling back to variant title and product title matching.
SKU Alias Memory (Buyer Shorthand)
Every buyer has unique legacy SKUs and internal abbreviations. Once an alias is matched or confirmed in the triage queue, OrderHoist remembers it permanently.
Case-Pack Conversion Rules & Math
Wholesale buyers frequently order in packs, master cartons, or boxes. OrderHoist extracts pack keywords and automatically converts them to single inventory units on the draft.
Zero-Hallucination Quarantine (The 85% Rule)
Unlike generic LLM wrappers that make guesses when uncertain, OrderHoist treats inventory accuracy as a critical safeguard.
If the match confidence score for any extracted line is less than 0.85 (85%) or if no corresponding product variant is found in the Shopify catalog, the order is flagged as QUARANTINED. It is routed directly to the Polaris Triage Queue for merchant confirmation.
Embedded Polaris Triage Queue
Merchants resolve quarantined items directly inside Shopify Admin without leaving their daily workflow:
- View raw buyer description alongside extracted quantity and unit candidate.
- Select the correct variant from a pre-populated live catalog dropdown.
- Adjust case-pack multipliers with real-time single unit calculation.
- Check "Remember alias" to persist the mapping into
SkuAliasfor future orders. - Click "Confirm Mappings & Create Shopify Draft Order" to generate the order in Drafts.
Shopify Draft Orders Output
OrderHoist creates standard Shopify Draft Orders via the Admin GraphQL draftOrderCreate mutation.
- Resolved Variants: Every line points to a valid catalog variant ID with individual single units.
- Wholesale Pricing & Tags: Automatically applies the store's configured customer wholesale tag (e.g.
wholesale_tier_2). - Audit PO Reference: Extracted buyer PO number and sender metadata are recorded in order notes.
- Final Merchant Control: The order stays in open Draft status, allowing staff to review shipping rates, payment terms, or discounts before sending an invoice.
Store Settings & Wholesale Tags
Configure custom case-pack keywords, default wholesale tags, and confidence thresholds directly in the embedded app settings.
By default, OrderHoist applies wholesale_tier_2 to customer profiles and generated Draft Orders, and sets the confidence threshold at 0.85. Both can be customized per store.
Security, GDPR & Mandatory Compliance Webhooks
OrderHoist complies strictly with Shopify's App Store requirements and GDPR data protection regulations.
Mandatory Webhooks Handled
customers/data_request: Exports any customer personal data held inSkuAliasandParsedOrder.customers/redact: Deletes customer-specific aliases and anonymizes buyer identifiers.shop/redact: Triggers a 48-hour scheduled complete purge of all shop records post-uninstall.
48-Hour Retention & Store Purge
When a store uninstalls OrderHoist, all active sessions are invalidated immediately. Exactly 48 hours later, all store preferences, alias mappings, and audit logs are permanently wiped from the database.