# B2B Quick Order — Complete Guide

> Overview The B2B Quick Order module (dfquickorder) adds a fast order-entry page where your professional customers build an order directly from their references (SKUs), without browsing the catalogue. They can…

- Page: <https://www.datafirefly.com/en/documentation/dfquickorder/>
- Language: en
- Last updated: 2026-06-24
- Other languages: [fr](https://www.datafirefly.com/documentation/dfquickorder/index.md), [es](https://www.datafirefly.com/es/documentation/dfquickorder/index.md), [de](https://www.datafirefly.com/de/documentation/dfquickorder/index.md), [it](https://www.datafirefly.com/it/documentation/dfquickorder/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfquickorder/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfquickorder/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfquickorder/index.md)
- Index: <https://www.datafirefly.com/en/documentation/llms.txt>

## Overview

The **B2B Quick Order** module (`dfquickorder`) adds a fast order-entry page where your professional customers build an order directly from their **references (SKUs)**, without browsing the catalogue. They can type references one by one with autocomplete, **paste two columns from Excel**, **import a CSV file**, reload a saved **reorder list** or **re-order a past order**, then add everything to the cart in one click.

Built for B2B restocking and busy buyers: a wholesaler who knows their references saves considerable time compared with browsing product by product. The grid resolves each SKU in real time (name, group-based price, stock, minimum quantity, combination).

## Compatibility

- PrestaShop 8.0 to 9.x
- PHP 7.4 to 8.3
- Single shop and multistore
- 5 languages: FR, EN, ES, DE, IT
- Classic theme and custom themes (grid in native JavaScript, no jQuery dependency)
- No dependencies (no Composer, no framework)

## Installation

1. In the back office, open **Modules > Module Manager**.
2. Click **Upload a module** and select the `dfquickorder.zip` file.
3. Once installed, click **Configure**.

On installation, the module creates its reorder-list table, registers its hooks (`displayCustomerAccount`, `displayNav2` and the custom hook `displayQuickOrderBlock`) and initialises its default settings. A **Quick order** link then appears in the customer account.

## Configuration

### Access and restriction

- **Allowed customer groups**: leave empty to open quick order to everyone, or select one or more groups to reserve it for your B2B customers. Unauthorised visitors are redirected to their account.

### Entry and import

- **CSV separator**: semicolon, comma, tabulation or pipe, depending on the format your customers export.
- **Default number of rows**: number of empty rows shown when the grid opens.
- **Max lines per CSV / paste**: a safeguard against oversized imports; lines beyond the limit are ignored with a warning.

### Display and features

- **Show price and subtotal**: displays the unit price, the per-line total and the estimated total, computed according to the group's tax method (excl. or incl. tax).
- **Paste from Excel**: enables the tab for pasting two columns (reference and quantity).
- **Reorder lists**: enables saving and reloading named lists per customer.
- **One-click re-order**: enables reloading a past order into the grid.
- **"Convert to quote" button**: shown only if the `dfb2bquote` module is installed and active (bridge with the B2B quote range).

## Usage

### The SKU entry grid

The customer types a reference: an autocomplete menu suggests the matching products and combinations (by reference or by name). On confirmation, the line is resolved in real time and shows the product name, the combination label, the unit price for their group, the line total and a status badge. A new empty row is added automatically as you go.

### Line statuses

- **Green**: valid reference, sufficient stock.
- **Orange**: quantity adjusted (partial stock available, or minimum sale quantity reached).
- **Red**: unknown reference, unavailable product or out of stock.

Resolution handles **combinations**: a combination reference returns the correct `id_product_attribute` and its attribute label. The lookup runs on the reference, then falls back to the EAN13 barcode, respecting the current shop and active products.

### Paste from Excel

In the **Paste from Excel** tab, the customer pastes two columns (reference and quantity) straight from their spreadsheet. Each line is parsed and resolved, then injected into the grid with its status. A possible header row ("sku", "reference"…) is detected and ignored.

### CSV import

In the **CSV import** tab, the customer uploads a two-column file. The file is read in the browser then sent for resolution. A downloadable **CSV template** is provided to guide the expected format. The separator configured in the back office is applied, with automatic fallback to the common separators.

### Reorder lists

A logged-in customer can **save the current grid as a named list** (for example "Monthly restock") and reload it at any time from the **My lists** tab. Each list belongs to the customer and the shop; it can be loaded into the grid or deleted.

### Re-order a past order

The **Re-order** tab lists the customer's most recent valid orders. One click reloads all the references and quantities of the order into the grid, ready to be adjusted then added to the cart.

### Add to cart and convert to quote

The **Add all to cart** button adds all valid lines to the cart at once, respecting the quantities. If the `dfb2bquote` module is active, the **Convert to quote** button adds the lines to the cart then switches to the quote flow.

### Accessing quick order

The **Quick order** link is available in the customer account. You can also display it in the top navigation and, via the custom hook `displayQuickOrderBlock`, insert a call-to-action block wherever you like on your shop.

## FAQ and troubleshooting

### The grid shows an "invalid JSON" error or does not resolve references

Clear the PrestaShop cache (Advanced Parameters > Performance) and, while testing, disable file combination/compression (CCC). The grid responses are strict JSON: the module flushes any stray output before responding, which prevents a PHP message from corrupting the response.

### How do I reserve quick order for my professional customers?

In the configuration, select the allowed group(s) in **Allowed customer groups**. All other visitors will not be able to access the page.

### Are combinations supported?

Yes. A combination reference is resolved to the correct combination, with its own attribute label, price and stock. The EAN13 barcode is also accepted as a reference.

### What happens if a quantity exceeds the stock?

Depending on the product's out-of-stock setting, the quantity is adjusted to the available stock (orange status) or the line is marked out of stock (red status). Unknown references are flagged without blocking the rest of the grid.

### Do lists and re-ordering require an account?

Yes: saving lists and re-ordering past orders require the customer to be logged in. SKU entry, paste and CSV import also work for authorised visitors.

### Is it compatible with PrestaShop 9?

Yes. The module is compatible with PrestaShop 8 and 9, in multistore and multilingual setups (FR, EN, ES, DE, IT).
