[Blog](<https://nightlysoftware.com/en/blog>)Sales 

# Customer prices in a B2B portal: validity, discounts and tests

Customer pricing needs priority, validity and a calculation sales can explain. Test agreements, quantity tiers and old orders with a free worksheet.

**[Jonathan Perez](<https://nightlysoftware.com/en/company#jonathan-perez>)**Co-founder · Design, product and sales October 8, 2026 · 8 min read 

**Short answer**

To apply customer prices in a B2B portal, define priority across agreements, lists and promotions; validity with a time zone; and how packaging counts. Check pricing at confirmation and retain the accepted rule in the order. A list update should explain changes for a new purchase and preserve the agreement for a confirmed purchase according to your policy.

## B2B customer pricing tests

Ten synthetic cases covering priority, validity, packaging and repeated confirmation. Fill in your observed results and evidence.

[Download CSV worksheet](<https://nightlysoftware.com/plantillas/precios-cliente-portal-b2b-en.csv>)

In this guide

-   [Decide which price wins when several rules match](<https://nightlysoftware.com/en/blog/b2b-customer-price-lists#priority>)
-   [Worked example: special agreement and a list change](<https://nightlysoftware.com/en/blog/b2b-customer-price-lists#example>)
-   [Test quantity boundaries and rounding](<https://nightlysoftware.com/en/blog/b2b-customer-price-lists#quantities>)
-   [What should happen in a realistic purchase test](<https://nightlysoftware.com/en/blog/b2b-customer-price-lists#acceptance>)
-   [Configure what you can verify before developing exceptions](<https://nightlysoftware.com/en/blog/b2b-customer-price-lists#preparation>)

## Decide which price wins when several rules match

A customer price list is useful when the same result appears in the catalog, quote and order. Before choosing a portal, write down the priority: individual agreement, segment list and general price. Decide whether a promotion stacks with negotiated pricing or replaces it. Two successive 10% discounts leave 81 from a base of 100; they are different from a single 20% discount.

Platforms have specific rules. [Shopify documents](<https://help.shopify.com/en/manual/b2b/catalogs/creating-catalogs>) that a fixed catalog price overrides that catalog’s overall adjustment; it also distinguishes capabilities by plan and assignment to markets or company locations. That describes Shopify rather than a universal rule. Ask for a demonstration on your plan with your products and customers.

| Decision |Write down |Demonstrating test |
| --- | --- | --- |
| Priority |Which rule wins and which rules are excluded |Agreement and promotion overlap |
| Packaging |Unit, box and units per box |Box price never becomes unit price |
| Validity |Start, end and time zone |Purchase before and after cutoff |
| Quantity |Tier applies to all units or only the excess |9, 10 and 11 units |
| Currency and charges |Currency, tax and shipping included or separate |Visible total before confirmation |
| Approved order |Keep price or require acceptance of changes |List changes after order confirmation |

## Worked example: special agreement and a list change

**Synthetic test scenario, without customer results**

The fictional distributor sells V-20 valves individually. All amounts are illustrative MXN, excluding tax and shipping. Proposed policy: an individual agreement replaces the list and promotions do not stack. Validity ends October 9, 2026 at 00:00 Mexico City time; that instant is already outside the agreement.

The general price is 125, distributor price is 110 and Customer North’s agreement is 100 until cutoff. On October 8, 12 units cost 1,200. A general 10% promotion does not reduce the agreement to 90 because this policy excludes it. Customer South has no agreement and buys the same 12 at 110: total 1,320. Every price needs an explanation identifying the customer, rule, version and date.

| Time |Action |Expected result |
| --- | --- | --- |
| October 8, 16:00 |North confirms P-81: 12 × 100 |P-81 retains 1,200 and the agreement version |
| October 8, 17:00 |Distributor list changes from 110 to 115 |P-81 stays at 1,200 |
| October 9, 00:00 |North opens a new order for 12 |Agreement expired; 12 × 115 = 1,380 |
| October 9, 00:01 |Old cart attempts confirmation at 100 |Show 1,380 and require renewed acceptance |
| October 9, 00:02 |Repeat P-81 confirmation |Retrieve P-81; no new order or recalculation |

An old cart may still show a price stored on the phone. Final validation therefore needs to consult the authorized rule and explain changes before accepting the order. Repeating an already confirmed request should retrieve its original result. Changing quantities afterward may require another version; the [quote-to-order guide](<https://nightlysoftware.com/en/blog/quote-to-order-b2b-portal>) explains that commercial acceptance.

## Test quantity boundaries and rounding

With a proposed tier of 1–9 units at 110 and 10 or more at 105 for every unit, 9 cost 990, 10 cost 1,050 and 11 cost 1,155. A discount applying only to extra units gives a different result. Have sales approve the intended interpretation; a “volume discount” label is insufficient. Also define how many decimal places each price stores and when the total is rounded.

Check that a box of 12 units is not counted as one unit when evaluating a tier. When packaging changes, retain the approved conversion and show both quantities. A correct price with an incorrect quantity remains an incorrect order. For assignments across branches, review [portal access tests](<https://nightlysoftware.com/en/blog/customer-portal-access-tests>) too.

## What should happen in a realistic purchase test

1.  Normal purchase: each customer sees and confirms the correct rule, currency, packaging and total; sales can reconstruct the calculation.
2.  Exception: an expired agreement or incompatible rules stop confirmation until pricing is resolved. Do not silently apply a different list.
3.  Access change: switching company or branch revalidates pricing; an earlier tab cannot retain another account’s prices.
4.  Lost response: repeating confirmation returns the same order and amount. Two genuinely separate orders retain different references.
5.  Stale data: when an ERP list has not arrived, show its update time and follow the agreed decision: wait or review. Do not label a price current without evidence.

## Configure what you can verify before developing exceptions

You can start with a configurable catalog when its priority and validity cover your agreements. An integration or additional development requires identifying who maintains each list, which access the existing system permits and how it recovers a failed update. The [ERP connection guide](<https://nightlysoftware.com/en/blog/connect-erp-without-replacing-it>) helps assess access before budgeting.

The downloadable worksheet contains ten synthetic cases, including the exact expiration instant, another account and a packaging change. Replace the amounts, record the observed result and attach evidence; a row without an observation is still untested. To evaluate a [customer portal](<https://nightlysoftware.com/en/solutions/customer-portal>), bring your lists and an order where two rules compete. The discussion then starts with a specific difference the portal must resolve.

## Review a price that causes disagreements today

In a free consultation we can review the rule your portal needs and the capabilities of the system maintaining the lists.

-   Two current lists and an individual agreement with currency and dates.
-   An anonymized order where a discount competes with a special price.
-   The pricing system’s name, version and plan, and who can change prices.

[Book a free consultation](<https://nightlysoftware.com/en/book>)[Ask on WhatsApp](<https://wa.me/524622212236?text=I%20want%20to%20review%20customer%20pricing%20for%20a%20B2B%20portal.%20I%20have%20lists%2C%20an%20agreement%20and%20an%20order%20with%20competing%20rules.>)

Related

-   [Sales and customer portal](<https://nightlysoftware.com/en/solutions/customer-portal>)
-   [Custom ERP and CRM](<https://nightlysoftware.com/en/solutions/custom-erp>)

## Frequently asked questions

### Do discounts always stack? 

That depends on your policy and verified configuration. Write down which combine, which replace others and their order. Two successive 10% discounts leave 81 from 100; a single 20% discount leaves 80.

### What happens to a cart when an agreement expires? 

Revalidate validity at confirmation. If the amount changes, show the new calculation and ask for acceptance. Define cutoff and time zone before testing.

### Should previous orders change price? 

Decide in writing when an accepted price remains and which edits require another version. In this example, updating the list does not change a confirmed order.

### Can I test this before building a portal? 

Yes. Use representative lists, customers and quantities in a product demonstration or your current process. Record results and evidence; verify the required plan and access.

## Sources

1.  [Customizing B2B pricing using catalogs](<https://help.shopify.com/en/manual/b2b/catalogs/creating-catalogs>)Shopify 

Last updated: October 8, 2026

## Keep reading

[SalesOct 8, 2026

### Customer credit: order approval rules with visible exceptions](<https://nightlysoftware.com/en/blog/customer-credit-order-controls>)[B2B portalsOct 5, 2026

### From quote to order in a B2B portal: approvals and changes](<https://nightlysoftware.com/en/blog/quote-to-order-b2b-portal>)[PortalsOct 8, 2026

### Portal permissions: each customer sees permitted records](<https://nightlysoftware.com/en/blog/customer-portal-access-tests>)

---

Canonical: https://nightlysoftware.com/en/blog/b2b-customer-price-lists

Updated: 2026-10-08

Description: Define price priority, expiration, discounts and packaging in a B2B customer portal. Includes a worked example and a downloadable acceptance worksheet.

