> For the complete documentation index, see [llms.txt](https://docs-shpf.bsscommerce.com/bss-b2b-quick-order-and-quotes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-shpf.bsscommerce.com/bss-b2b-quick-order-and-quotes/reorder/overview.md).

# Overview

The **Reorder** module empowers your customers to repeat past orders in just a few clicks directly from their order history—without having to search for products again, select options, or rebuild their cart line by line.

By transforming completed orders and pending draft orders into a fast, self-service reorder workflow, Reorder speeds up checkout for repeat buyers, reduces cart abandonment, and minimizes customer support requests regarding order status.

***

## 1. Target Audience: DTC vs. B2B Wholesale

The Reorder module is designed to support both retail consumers and high-volume corporate accounts:

| Customer Segment         | Core Benefit                                                                         | Primary Workflow                                                                                                                                       |
| ------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **DTC Retail Shoppers**  | Frictionless repeat purchasing of favorite consumables, apparel, or personal items.  | Customer visits `/pages/reorder` → selects past order → clicks **Reorder** → reviews quantities in modal → receives instant **Checkout Link**.         |
| **B2B Wholesale Buyers** | Rapid bulk replenishment with real-time wholesale contract prices and invoice terms. | Buyer logs in → opens past purchase → checks contract pricing → submits reorder → receives automated **Draft Order Email Invoice** with payment terms. |

***

## 2. End-to-End Architecture & Workflow

The Reorder workflow operates on a secure, self-service architecture built directly on top of Shopify Draft Orders:

```mermaid
graph TD
    A["Customer visits /pages/reorder"] --> B{"Login & Eligibility Verification"}
    B -->|"Unauthenticated / Excluded"| RESTRICTED["Restricted Access Screen<br>(Friendly notice & Login button)"]
    B -->|"Eligible Customer"| PORTAL["Re-Order History Portal"]
    
    PORTAL --> TAB1["1. Orders Tab<br>(Completed Shopify orders)"]
    PORTAL --> TAB2["2. Waiting for Checkout Tab<br>(Pending Shopify draft orders)"]
    
    TAB1 -->|"Click [Reorder]"| MODAL["Review & Edit Modal<br>- Quantity rules (Min/Max/Pack)<br>- Real-time inventory checks<br>- Add new products"]
    TAB2 -->|"Click [Reorder]"| MODAL
    TAB2 -->|"Click [👁 View]"| DETAIL["Draft Order Detail Page<br>- Itemized pricing<br>- Contract discounts<br>- Direct Checkout Link"]
    
    MODAL --> SUBMIT["Click [Place Order]"]
    SUBMIT --> DELIVERY{"Configured Delivery Mode"}
    DELIVERY -->|"Return Checkout Link"| CHK["Instant on-screen Shopify Checkout URL"]
    DELIVERY -->|"Send Link via Email"| INV["Shopify Draft Order created (INVOICE SENT)<br>& automated email invoice sent"]
    DELIVERY -->|"Both"| BOTH["Checkout URL displayed on screen<br>& invoice emailed to buyer"]
```

***

## 3. The 3 Delivery Modes

When a customer submits their reorder from the modal, the app fulfills the request through one of three configurable delivery modes:

1. **Return Checkout Link (Default)**:
   * Instantly creates a Shopify Draft Order and displays a direct Shopify checkout URL on screen.
   * Best for **DTC stores** and buyers paying immediately by credit card.
2. **Send Checkout Link via Email**:
   * Creates a Shopify Draft Order in status `INVOICE_SENT` and triggers an automated email invoice to the customer's billing email.
   * Best for **B2B wholesale** workflows requiring purchasing manager approval or net-payment terms.
3. **Both (Checkout Link & Email)**:
   * Displays the instant checkout URL on screen **and** emails the invoice simultaneously.
   * Best for maximum flexibility for B2B buyers who need immediate payment access and email records.

***

## 4. Cart Independence (Non-Destructive Workflow)

{% hint style="info" %}
**Zero Cart Conflict**: The Re-Order workflow operates entirely through **Shopify Draft Orders and direct checkout URLs**. Placing a reorder **never overwrites, mutates, or clears** products currently sitting in the customer's active online cart.
{% endhint %}

* **DTC Benefit**: A shopper can have 3 items in their regular shopping cart, click **Reorder** on an order from last month, complete payment for the reordered items via the draft order checkout link, and return to find their 3 regular cart items completely untouched.
* **B2B Benefit**: Wholesale buyers can negotiate custom quotes and place repeat orders simultaneously without cross-contaminating standard cart contents.

***

## 5. Typical Reordering Scenarios

### Scenario A: DTC Buyer Instant Reorder (Checkout Link Mode)

1. Customer logs into their account and navigates to your store's Re-Order page (`/pages/reorder`).
2. On the **Order** tab, they locate their order from last month and click **Reorder**.
3. The **Review & Edit Modal** opens, pre-loaded with eligible line items.
4. The customer increases the quantity of their favorite item and searches to add a new complementary product.
5. The customer clicks **Place Order**. The system builds a Shopify Draft Order and displays an instant **Checkout** link.
6. Clicking the link takes the customer straight to the Shopify checkout page with their updated items ready for payment.

### Scenario B: B2B Wholesale Customer Invoice Order (Invoice Sent Mode)

1. A corporate purchasing agent logs into your B2B wholesale store.
2. They open the Re-Order page and select a previous $5,000 bulk order.
3. The system checks their B2B company profile and updates all unit prices to reflect their current wholesale contract pricing.
4. The agent clicks **Place Order**. Because the merchant selected **Invoice Sent** mode, an official order invoice is generated and automatically emailed to the company's billing contact.
5. The pending draft order immediately appears in the customer's **Waiting for Checkout** tab under **Invoice Sent** status.

### Scenario C: Reviewing Pending Draft Orders ("Waiting for Checkout")

1. A customer returns to the store to check on an unpaid quote or pending draft order.
2. They click the **Waiting for Checkout** tab on the Re-Order page.
3. They click a draft order row (e.g., `#D1004`) to view its **Draft Order Detail Page**.
4. The customer reviews the exact items, quantities, and status ("Open" or "Invoice Sent").
5. Clicking **Checkout** immediately redirects them to the official checkout link to settle payment.

### Scenario D: Handling Unavailable or Out-of-Stock Items

1. A customer clicks **Reorder** on an order placed six months ago.
2. If certain items have since been archived, deleted, or discontinued, a **Warning Modal** appears listing all unavailable items.
3. The customer clicks **Continue** to proceed with the remaining active items.
4. If an item's requested quantity exceeds available warehouse inventory at the moment of submission, an inline error banner alerts the buyer and blocks submission until the quantity is adjusted or the item is removed.

{% hint style="info" %}
Real-time stock validation runs both when opening the modal and right before submitting **Place Order**. This prevents buyers from completing orders for items that sold out while they were editing their modal items.
{% endhint %}

***

## 6. Before You Begin & Prerequisites

Before enabling and publishing the Re-Order feature, ensure the following requirements are met:

1. **Installed App**: The **BSS B2B Quotes** app must be installed on your Shopify store.
2. **Theme App Embed**: The app embed block must be enabled in your active Shopify theme (`Online Store > Themes > Customize > Theme settings > App embeds`).
3. **Customer Login**: Storefront customers must be logged into their Shopify customer account to view their personal order history and draft orders.

***

## 7. Key Rules & Edge Cases

* **Exclude Customer Priority**: Customer exclusion conditions (Customer Tags or Specific Customers) are always evaluated *before* applying conditions. Excluded buyers will see the Restricted Access state.
* **Draft Order Scoping**: Storefront order history and pending draft orders are strictly isolated by logged-in customer ID. Buyers can never view or access draft orders belonging to another customer account.
* **Pricing Currency**: Multi-currency stores automatically render all prices in the customer's selected active storefront currency.
* **Zero Reorderable Items**: If an order contains only archived/deleted items, the Reorder button is disabled with a clear warning notification.
* **Page Content Override on Publish**: If a published page handle already exists on your store, the app provides an option to override the content of the existing page or select a unique URL handle.

***

## 8. Related Topics

* [Full Setup Guide](/bss-b2b-quick-order-and-quotes/reorder/full-setup-guide.md) — Learn how to configure admin settings, customer eligibility, delivery modes, and page publishing.
* [Reorder Page & Order Tabs](/bss-b2b-quick-order-and-quotes/reorder/reorder-page.md) — Explore storefront tabbed navigation for completed orders and pending draft orders.
* [Draft Order Detail Page](/bss-b2b-quick-order-and-quotes/reorder/draft-order-detail-page.md) — Understand draft order details, statuses, and payment redirects.
* [Reorder Review & Edit Modal](/bss-b2b-quick-order-and-quotes/reorder/reorder-review-edit-modal.md) — Master item edits, search-and-add, stock validation rules, and post-submission outcomes.
* [Template Customization](/bss-b2b-quick-order-and-quotes/reorder/template-customization.md) — Customize visual styles, element visibility, and live previews across all 4 storefront screens.
* [Storefront Translation](/bss-b2b-quick-order-and-quotes/reorder/storefront-translation.md) — Customize user-facing copy, dynamic placeholder variables, and language fallbacks.
