Request (storefront)
A quote begins with a request. B2B+ Quotes offers four ways to trigger one.
Prerequisites (for all customer paths)
Every customer-side request is validated server-side — the buttons are hidden in the storefront, but a direct call is rejected too:
- Login required — logged-in customers only. Guests can never request.
- Customer group — if customer groups are configured under Configuration (
allowedCustomerGroupIds), only those groups may request; empty = all logged-in customers. - Spam limit — a customer cannot have more open requests (
requested/in_progress/sent) than set inmaxOpenRequestsPerCustomer(default 5; 0 = unlimited).
1. From the cart
The customer adds items to the cart and clicks "Request a quote".
How the customer proceeds:
- Add items to the cart.
- Click "Request a quote" — a dialog opens (via AjaxModal).
- Optionally leave a message (e.g. desired quantity or target price).
- Submit — the cart is handed over to the request.
The quote is then created with the cart positions and the current terms (payment method, shipping method, shipping costs), a confirmation email goes out, and the customer lands under My quotes.
Placements and their switches:
| Placement | Switch | Default |
|---|---|---|
| Cart page | showCartButton | on |
| Offcanvas cart (sidebar) | showOffcanvasButton | on |
| Checkout confirm page | showConfirmButton | on |
- Comment field — only shown if
allowCustomerCommentis on (default on). - Empty the cart — if
clearCartAfterRequestis on (default on), the cart is emptied after the request. This prevents the same items from being ordered in parallel by mistake.
2. Product page: "Price on request"
For products without a public price, the buy area becomes a request. Instead of the price it reads "Price on request", instead of the buy button "Request price".
How the customer proceeds:
- Open the product page — the price is hidden.
- Choose a quantity, optionally enter a message.
- Click "Request price".
Guests see "Log in & request price" instead and are taken to login. This request concerns exactly one product (no cart) and is flagged as price on request — prices stay hidden in the account until the quote is ready.
The mode is triggered by the product custom field avellon_price_on_request or globally for guests via hidePricesForGuests. Details under Price on request.
3. Quick request (SKU list)
The buyer workflow for bills of materials: the customer pastes an item list and gets a ready-made request out of it.
How the customer proceeds:
- Open Account → My quotes.
- In the "Quick request" block, enter one product number per line, optionally with quantity — e.g.
AV-10120; 25. - Optionally add a message and submit.
Accepted line formats: AV-10120; 25, AV-10120, 25, AV-10120 25, or just AV-10120 (quantity 1). Maximum 100 lines. Unknown product numbers are listed ("Unknown product numbers: …") and the request is not created.
The block only appears if enableQuickRequest is on (default on).
4. Merchant draft (admin)
The merchant can also create a quote proactively — without a customer request.
How the merchant proceeds:
- Catalogues/Orders → Quotes → Create quote.
- Select the customer.
- Add products with quantity ("Add item").
- "Create & negotiate" — the quote is created as a draft (
in_progress) and opened for negotiation.
Starting prices come from the B2B+ Base baseline price (see Customer pricing). Details on further editing under Management.
Overview of the controlling settings
showCartButton, showOffcanvasButton, showConfirmButton, allowCustomerComment, clearCartAfterRequest, enableQuickRequest, allowedCustomerGroupIds, maxOpenRequestsPerCustomer — all in the Configuration.