For the complete documentation index, see llms.txt. This page is also available as Markdown.

My Orders & one-click reorder

This is the My Orders section of the B2B Customer Portal. Orders, Quotes, Profile, and Invoices all share the same sidebar shell.

The My Orders section is where eligible B2B customers see their recent orders and one-click reorder selected items back into the cart. A scheduled reminder email nudges them to come back N days after fulfillment.

What it does

  • Recent orders list at /apps/orbit-boost-wholesale/portal/orders — last 20 orders with B2B badge, a B2B only filter toggle, and a Reorder button per row

  • Reorder preview page at /apps/orbit-boost-wholesale/portal/reorder?order=<id> — preview each item from the order, adjust quantities, deselect out-of-stock or unwanted items, then Add selected to cart

  • Wholesale-aware pricing — the preview shows the price the customer would pay today (based on their current group + active rules), not the historical price from the original order

  • Scheduled reminder emails — up to 3 reminders at configurable delays after fulfillment (e.g. 30 / 60 / 90 days). Each reminder deep-links to the relevant order's preview

  • One-click unsubscribe — every email carries an HMAC-signed unsubscribe link

Eligibility

A customer counts as B2B-eligible if they belong to any of the app's Customer Groups. No tag list to configure manually — the eligibility flows from group membership.

  • Logged in, member of any Customer Group → can access portal + receive reminders

  • Logged in, not in any group → sees "not eligible" page

  • Not logged in → sees "please log in" page

  • The reminder cron only targets logged-in B2B customers with the orb2b-b2b order tag

Settings location

Apps → Orders → Reorder Settings has four tabs:

Tab
What's there

Texts

Per-locale UI strings (page titles, status labels, error banners, etc.)

Design

Colors, border radius, custom CSS for the portal pages

Display

Info about the portal URL + the B2B eligibility model (read-only — eligibility is driven by Customer Groups, no field to edit)

Schedule

Reminder cron config: enable, day delays, marketing consent toggle

Email template

The reminder email subject + body + per-locale translations lives in Settings → Email Templates → Reorder Reminder — edited the same way as your registration and quote emails.

Available shortcodes:

  • {{first_name}} — customer's first name

  • {{customer_name}} — same as first_name (alias for compatibility with other templates)

  • {{shop_name}} — your store name

  • {{shop_url}} — your storefront URL

  • {{days_ago}} — how many days ago the order was fulfilled (the delay tier)

  • {{order_id}} — Shopify order GID

  • {{reorder_link}} — deep link straight to /portal/reorder?order=<id>

  • {{unsubscribe_link}} — HMAC-signed link to opt out of future reminders

Sender uses your shop's SMTP config (Settings → Email Settings → SMTP) — same as transactional emails from other features.

Order tagging

When an eligible B2B customer places an order, the orders/create webhook automatically tags it with orb2b-b2b. The reminder cron queries Shopify Orders by this tag so you can also filter on the Shopify Orders page (tag:orb2b-b2b) to see all B2B orders.

The tag write is idempotent and webhook re-deliveries are safe.

What about the customer accounts page?

Shopify's New Customer Accounts experience (the default for new stores) runs on React UI Extensions, not Liquid theme blocks. The B2B Customer Portal lives at an app-proxy URL because of this — it works regardless of which customer accounts version your store uses.

Promote the portal URL via your storefront navigation menu, customer account dashboard custom link, or transactional email footer. Reminder emails sent by the app already deep-link straight to the relevant order's preview, so customers go right from inbox to reorder.

Next

Last updated

Was this helpful?