# Quote to order: B2B portal acceptance tests

Nightly Software · Published October 5, 2026 · Version 1.0

Eight **independent synthetic cases** for agreeing and reviewing a vendor demonstration. They are not customer data, product results or a production importer. Reset the fixture before each row: B02 does not continue B01, and order counts **must not be added** across cases. Adapt and approve the exercise's commercial rules within your business.

[Download CSV](https://nightlysoftware.com/datos/cotizacion-pedido-b2b-ejemplo.csv) · [Quote-to-order guide](https://nightlysoftware.com/en/blog/quote-to-order-b2b-portal) · [Instrucciones en español](https://nightlysoftware.com/datos/pruebas-portal-b2b-es.md)

## Setup

Fictional company A, location A-1, item ITEM-01 and quote COT-100. Version v1 requests 10 units under price rule LISTA-A-v1; this is not a price or currency. The buyer approves internally and the supplier accepts separately. The confirmed order is ORD-100. Its confirmation operation is op-COT100-v1. B08 starts with that operation already confirmed once; the other cases start without a confirmed order.

The example's policy honors a valid locked quote price (`HONOR_LOCKED_QUOTE`). This is not a universal rule of every portal. If your policy requires a new quote (`REQUOTE`), a price change must create a new version and approval; B03's outcome changes. B02's version v2 increases quantity to 12, so approval of the old version cannot cover it. B07 allows partial fulfillment only with an explicit policy and consent.

The CSV uses UTF-8, commas and `true`/`false` booleans. Preserve identifiers as text. An empty field means **unknown or not applicable**, never zero. Ready and pending quantities are only specified for confirmed cases; they do not establish dispatch, delivery, payment or invoicing.

## Expected observations

| Case | Change or attempt | Expected state | Confirmed orders at the end of this case | Evidence to request |
| --- | --- | --- | --- | --- |
| B01 | Current version, both approvals and current conditions | CONFIRMED | 1 | ORD-100 linked to v1, actor, time and price rule. |
| B02 | v2 requests 12; v1 approval is submitted | STALE_APPROVAL | 0 | Request for v2 approval; no confirmation based on old approval. |
| B03 | Catalog moves to LISTA-A-v2; locked quote remains valid | CONFIRMED | 1 | LISTA-A-v1 honored under the agreed policy; no silent price change. |
| B04 | Company B attempts to read, approve or download A's document | DENIED | 0 | Server rejection for all three actions; no A document or price exposed. |
| B05 | Buyer approved; supplier has not accepted | AWAITING_SUPPLIER | 0 | Internal approval separate from acceptance; no implicit confirmation, payment or reservation. |
| B06 | Both approvals ready; credit is on hold | CREDIT_HOLD | 0 | Buyer cannot release hold; review by supplier's authorized owner. |
| B07 | Order for 10, immediate stock of 8 and authorized partial fulfillment | CONFIRMED | 1 | 8 ready and 2 visibly pending; total quantity 10, no complete-delivery claim. |
| B08 | Repeat already-confirmed op-COT100-v1 | CONFIRMED | 1 | Same ORD-100 returned without another order, reservation or charge. |

B04 includes three separate actions: reading, approval and download. Hidden buttons do not prove isolation; test a direct link and request with an unauthorized user. B08 requires supported deduplication and a stable key. Without that mechanism, a reference written in a log is not a passing test.

## Additional exceptions

- **Unknown response:** after a timeout, the number of orders remains unknown until lookup and reconciliation. Leave it blank/unknown, not zero. Do not blindly repeat creation.
- **Expired quote:** hold confirmation and apply the agreed renewal or new-quote process. Previous approval does not override expiry.
- **Revoked permission:** reject the next read, approval or download attempt even with an open session. Validate company, location, document and action on the server.
- **Partial without consent:** when two units are unavailable and there is no approved policy and consent, hold or revise the order. Do not silently change 10 to 8.
- **Release of credit hold:** an authorized review does not guarantee automatic confirmation; revalidate expiry, version, permissions, price and availability.

The credit hold is a fictional commercial condition. This material establishes no financial eligibility criteria, legal terms, tax obligations or credit-scoring method.

## Record the demonstration

For each attempt retain case, environment and version, actor/role, approved rule, observed result, returned document/operation and evidence without secrets. Mark a case passed only after the vendor executes the action and exception in the environment you will receive. This pack describes expected results; it does not certify Nightly or another product. Do not use real customer documents or credentials in a public demonstration.

[Scope worksheet](https://nightlysoftware.com/en/how-we-work#plantilla-alcance) · [Free consultation](https://nightlysoftware.com/en/book)
