# Quick order via CSV

## Overview

Quick Order via CSV lets your B2B customers bulk-add products to their cart by uploading a `.csv` or `.xlsx` file from the Quick Order page. Instead of searching for each product one by one, customers prepare a file with the SKUs and quantities they want, upload it, and add everything to the cart in one click.

This is especially useful for customers placing large or recurring orders.

{% hint style="info" %}
This feature is available on the **$199/month plan**. See [Pricing plans](/v2.2026/policies.md) for details.
{% endhint %}

{% hint style="info" %}
To learn how the Quick Order page itself works, see [Quick Order page](/v2.2026/storefront-display/quick-order-page.md).
{% endhint %}

## 1. Open the CSV upload modal

From the Quick Order page on your store, customers click the **Upload CSV** button to open the upload modal.

## 2. Prepare your file

The upload accepts `.csv` and `.xlsx` files. Each row in the file represents one product variant to add to the cart, and must include:

* **SKU** — the SKU of the product variant
* **Quantity** — how many units of that SKU to add to the cart

**Example:**

| SKU    | Quantity |
| ------ | -------- |
| ABC-01 | 10       |
| ABC-02 | 5        |
| XYZ-99 | 25       |

{% hint style="info" %}
**Tip:** Save customers time by sharing a template file with the correct column headers. You can attach this to your B2B onboarding emails or link to it from your B2B portal.
{% endhint %}

## 3. Upload the file

In the upload modal, customers have two ways to add a file:

* **Click Upload** — opens a file picker so they can select a `.csv` or `.xlsx` file from their computer.
* **Drag and drop** — drag a file directly into the modal.

Once a file is selected, the modal shows the **file name and size**, and the **Upload** button becomes active.

At this point, customers can:

* **Click Upload** to submit the file for validation.
* **Click Upload (again)** or **drag in a different file** to replace the current selection.
* **Click ×** to discard the file and return to the empty state.

## 4. Review and add to cart

After the customer clicks **Upload**, B2Bridge validates the file. The result depends on whether all rows pass validation.

### a. Success

If every row in the file is valid, the customer sees an **Order summary** card with:

* The total **number of line items** in the file
* The total **quantity** across all items
* A list of products in the order they appeared in the file (the first several items are shown by default)
* A **View more** button that expands the list to show every product, with internal scrolling so the card doesn't grow off-screen

The customer then clicks **Add to cart** to add every item from the file to their current cart. The modal closes and a toast confirmation appears with a **View cart** button that takes them to the cart page.

{% hint style="info" %}
Items are added to the customer's **existing cart** — they won't replace what's already there. This is intentional so customers can combine CSV uploads with items they've added manually.
{% endhint %}

### b. Validation errors

If one or more rows have issues, the modal stays open and shows an **error list** instead of the order summary. Each error row includes:

* **Line** — the row number in the uploaded file where the error occurred
* **SKU** — the SKU value from that row
* **Quantity** — the quantity value from that row
* **Error** — a description of what went wrong

If the file has many errors, the error list scrolls inside the modal so the modal itself never grows past one screen.

From the error state, customers can:

* **Upload a corrected file** (or drag in a new one) to replace the current file
* **Click ×** to discard the file and the error list, returning to the empty state

The **Upload** button is disabled until a new file is selected.

## 5. Error reference

The table below lists every error a customer might see, what it means, and how to fix it.

| Error message                                            | What it means                                                                                                         | How to fix                                                                                    |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `{{filename.extension}} file type is not supported`      | The uploaded file is not a `.csv` or `.xlsx` file.                                                                    | Save the file as `.csv` or `.xlsx` and upload again.                                          |
| `SKU {{sku}} was not found`                              | The SKU in this row doesn't exist in the store.                                                                       | Double-check the SKU spelling. Confirm with the merchant that the product is still available. |
| `SKU {{sku}} is not available`                           | The SKU exists in the store but isn't part of the customer's assigned price list, so they aren't allowed to order it. | Remove the row, or contact the merchant to request access to that product.                    |
| `Minimum order quantity is {{min}}`                      | The quantity is below the minimum order quantity (MOQ) configured for this variant in the price list.                 | Increase the quantity to at least `{{min}}`.                                                  |
| `Maximum order quantity is {{max}}`                      | The quantity exceeds the maximum order quantity allowed for this variant.                                             | Lower the quantity to `{{max}}` or below.                                                     |
| `Quantity must be ordered in multiples of {{increment}}` | This variant must be purchased in fixed increments (e.g. multiples of 5).                                             | Adjust the quantity to a valid multiple of `{{increment}}`.                                   |
| `Only {{stock}} units are available`                     | The requested quantity exceeds the current inventory for this variant.                                                | Lower the quantity to `{{stock}}` or fewer, or wait until the merchant restocks.              |
| `Quantity is invalid`                                    | The quantity value is empty, zero, negative, a decimal, or not a number.                                              | Enter a positive whole number for the quantity.                                               |

{% hint style="info" %}
**How validation runs:** B2Bridge first checks the file type. If the file is valid, it scans every row at once and lists all errors together — so customers can fix the entire file in one pass instead of one row at a time.
{% endhint %}

## 6. Tips for merchants

* Make sure your **Price List** is set up before encouraging customers to use CSV upload — without an assigned price list, B2B customers will see standard storefront prices and may run into "SKU is not available" errors.
* If you use **MOQ, maximums, or order increments** in your Price List, document these rules somewhere your customers can reference them — it dramatically reduces support questions about failed uploads.
* Consider sharing the Quick Order page URL with key accounts so they can bookmark it and reuse the CSV upload workflow for repeat orders.

***

{% hint style="success" %}

### Need Help?

If you have questions or run into issues while using any feature, we’re here to help.

* 💬 **Start a** [**Live Chat** with our support team](https://go.crisp.chat/chat/embed/?website_id=a59f354c-f51f-4f84-ae9a-c0e8dd69d2e5) directly from your B2Bridge dashboard.
* 📧 **Email us at** [**support@b2bridge.io**](mailto:support@b2bridge.io) and we’ll get back to you as soon as possible.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2bridge.io/v2.2026/storefront-display/quick-order-page/quick-order-via-csv.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
