How to Set Up Company-Specific Pricing in nopCommerce, Step by Step

Store setup & growth 9 min read October 14, 2026

How to Set Up Company-Specific Pricing in nopCommerce, Step by Step

Price lists with global or company scope, priority and start and end dates, plus fixed-price and percentage contract prices, built and checked one step at a time.

BE
nopCommerce Development Team · Bangladesh Software Solution
Layered stack of four paper slabs ranking which price a company pays in nopCommerce: contract price on top, then the highest-priority price list, then other price lists, with the standard price at the bottom.

On Monday morning your biggest wholesale account writes in. Last quarter you agreed 15% off one product through the end of July, and their buyer has just logged in to find the same price a stranger would see.

That gap is what company-specific pricing in nopCommerce has to close. When we set up wholesale stores, the discount rate is rarely the hard part; agreeing who a deal belongs to and when it ends is.

This guide builds it in five steps with the BSS B2B Management plugin on nopCommerce 4.90: price lists with global or company scope, priority and start and end dates, then fixed-price and percentage contract prices on top, then a check of what each buyer sees.

Why one price list stops working at the first negotiated deal

Before-and-after comparison on a dark navy field: on the left one standard price shown to every company, on the right the same three companies each holding their own company price.

nopCommerce can already price by quantity and by customer role. Tier prices give a better unit price at higher quantities, and customer roles control who sees what, as our guide to tiered pricing and custom catalogs for electronics distribution shows.

What neither tool does is attach a price to one company. Roles are shared by many accounts, so the workaround is a role or a discount per customer, and every renewal means hunting through them. The nopCommerce project's own feature request for native price lists names the same gap: discounts, tier prices or plugins are the options today.

Key fact: A company-specific price needs a scope (who it is for), a rank (which price wins when several apply) and dates (when it starts and stops). A contract price then sits on top for a deal negotiated with one company.

nopCommerce 5.0 is in beta and adds native price lists; our 5.0 guide covers what changes and when moving is worth it. This guide is for 4.90 stores, the version the plugin supports today.

Want this set up for you? The BSS team configures wholesale pricing on nopCommerce, from company records to price lists and contract prices.

Talk to a nopCommerce expert

Step 1: Install the plugin and get your companies in

The Configure B2B Management page in the nopCommerce admin with Enable B2B plugin, Require admin approval for registration and Enable order approval workflow ticked, and the B2B Management menu listing Configuration, Companies, B2B Orders, Price Lists, Contract Prices and Distributor Tiers.

The pricing engine in this guide is the BSS B2B Management plugin. It needs the BSS Core plugin first, so upload both under Administration → Configuration → Local plugins, install BSS Core, then B2B Management, and restart the application.

BSS plugin
BSS B2B Management

Companies, global and company price lists, contract prices and Quick Order in one plugin for nopCommerce 4.90.

View the plugin

Open B2B Management → Configuration, enter your license string, save, and tick Enable B2B plugin. The plugin's documentation also recommends switching off JavaScript and CSS bundling in App Settings while you set up.

Prices belong to companies, so the companies must exist first. Review them under B2B Management → Companies, where each one carries a status (Pending, Active, Rejected or Suspended), a contact person, a Tax ID and admin notes.

How applications reach that list is its own workflow, and our guide to a B2B registration workflow that doesn't slow you down covers it.

Ready before you build a list

  • BSS Core and B2B Management are installed and the application has restarted.
  • The license string is saved and Enable B2B plugin is ticked.
  • Every company you will price has a record under Companies, approved and Active.
  • Optional: companies sit in distributor tiers, such as Main Distributor or Retailer, so a global list is easy to reason about.

Step 2: Create a price list with the right scope, priority and dates

The Create Price List form in the nopCommerce admin with Name, Scope type set to Global, Priority, Active, Start date and End date fields.

Open B2B Management → Price Lists and click Add new. The Create Price List form has six fields, and three of them decide who pays what.

Scope type
Global applies to all distributor tiers. Company applies only to the companies you assign, and the list page shows which.
Priority
When several lists contain the same product, the higher-priority list overrides the lower one.
Start and end date
A list runs from its start date to its end date. After the end date it stops applying.

Name and Active are housekeeping, but do not skip Active: an unticked list stays on file and does not apply.

Priority matters most, so here is the plugin documentation's own example. One product at 360.00 sits on two lists, and the buyer is charged 288.00.

Price list Priority Discount Price Result
Summer Offers 2 10% 324.00 Overridden
Winter Deal 1 20% 288.00 Buyer pays this

In that example the list set to priority 1 beats the one set to priority 2, so the smaller number is the stronger list. Confirm that on one test product before you number the rest.

Priority only settles a tie between lists that already apply. A list must be active, inside its dates and in scope for the company before rank matters.

Monoline decision tree asking which price list applies: is the list active, is today inside its start and end dates, does its scope cover this company, and if so the highest priority wins.

Watch out

Put the real contract end on the list the day you create it. A date nobody typed in is a price nobody remembers to retire.

From the BSS team

On the wholesale stores we build, we give every company-scope list a contract reference in its name before anyone adds a product. Our nopCommerce setup service starts from that structure.

Step 3: Put products on the list, one by one or by category

Bulk Add Products by Category in the B2B Management plugin: a Books category loaded, default Discount %, Min Qty and Max Qty, and a table of products with original price, new price and quantity limits.

A new list is empty. Add products one at a time, or load a whole category and set Discount %, Min Qty and Max Qty once, then click Apply to All.

The New Price column does the sums. In the documentation's example, 20% off a 27.00 book gives 21.60, and the product page later tells the buyer the quantity band, such as "Available for quantity 10-50".

Loading a price list

  • Pick the category and click Load Products.
  • Set the default Discount %, Min Qty and Max Qty, then click Apply to All.
  • Change any row that needs its own rate or quantity band.
  • Tick the rows and click Add Selected to Price List, then check each product's Active status.

Step 4: Add a contract price for a negotiated deal

The Contract Prices tree view in the nopCommerce admin: variant rows with contract price, discount percent, active flag, start and end dates, and a company group with a base product at 360.00 and a contract price of 306.00 at 15 percent.

A price list sets the rate for many buyers. A contract price is for one company that negotiated beyond it, and while it is active it replaces that company's list price for the product.

One rule catches people out: a contract price only applies if the product is also on an active price list. Put the product on a list first, then add the contract.

The Add New Contract Price form

  • Select Company & Product: choose the Company, narrow with the Category filter, then pick the Product.
  • Contract Terms: set the Start date and End date, and keep Active ticked.
  • Contract Price: enter the negotiated Contract price, or set the Discount % and the price follows.

Fixed price and percentage are two ways to enter the same deal. Use the fixed price when the contract names a number, and the percentage when it names a discount off list.

360.00
Standard price
324.00
List price, 10% off
306.00
Contract price, 15% off

Watch out

A contract replaces the list price; it does not add to it. 306.00 beats a 324.00 list because 15% is deeper than 10%, but if the same company's list gave 20% (288.00), a 15% contract would raise its price. Compare before you save.

Products with sizes or colours get a Variant Contract Price option. Apply one discount to every variant, or select variants and give each its own rate, such as 10% for one size and 20% for another.

From the BSS team

The questions we get after launch are mostly about renewals: which contracts end this month, and what those buyers see next. Keep the contract reference and renewal date in the company's admin notes, which the B2B Management plugin gives every company record.

Step 5: Check what each buyer actually sees

A product page for a signed-in B2B buyer showing the standard price of 360.00 and a Your B2B Price box with 306.00, minus 15 percent, available for quantity 10 to 50, and an Order at B2B Price link.

Sign in as a buyer from the company and open the product. A B2B buyer sees both the standard price and a B2B price box with the discount, the struck-through standard price, the quantity band and an Order at B2B Price link.

Watch out

B2B pricing is only applied through Quick Order. The regular cart and checkout always charge the standard price, and the same item cannot sit in both carts at once.

Return to B2B Price Lists often. The table shows scope, assigned companies, Active, Priority and dates for every list, which is where an expired deal or a forgotten global list shows up.

The B2B Price Lists table with columns for name, scope, companies, active, priority, start date and end date, listing four lists that mix Global and Company scope.

Test before you tell the customer

  • As the company's buyer, open a listed product: the B2B price box shows the rate you expect.
  • Click Order at B2B Price and confirm the Quick Order total.
  • Add the same product to the regular cart: it should charge the standard price.
  • Sign in as a buyer from another company: your company-scope lists and contracts should not appear.
  • When an end date passes, confirm the price falls back to the next list or the standard price.

This is also where many teams see that pricing is one slice of a wider wholesale build. If you would rather hand it over, BSS sets up and launches nopCommerce stores end to end, pricing rules included.

For the rest of the checklist, such as approvals and catalog visibility, see what features a B2B ecommerce website needs.

Frequently Asked Questions

Can nopCommerce set a different price for one company without a plugin?
Not natively. Core nopCommerce prices by quantity with tier prices and by customer role or discount, but none of those belongs to a single company, so most stores end up with a role or a discount per customer. A plugin such as BSS B2B Management adds company records, price lists and contract prices.
What happens when two price lists cover the same product?
The higher-priority list overrides the lower one. In the plugin documentation's example, the list set to priority 1 beats the list set to priority 2, so test one product before you number your lists.
Does a contract price work without a price list?
No. A contract price is only applied if the product is also on an active B2B price list. When it applies, it overrides that company's list price.
What price does a B2B buyer pay in the regular cart?
The standard price. B2B pricing is applied through Quick Order, where the buyer clicks Order at B2B Price, and the same item cannot be in both carts at once.
Can a contract price differ by size or colour?
Yes. Variant contract pricing lets you apply one discount to all variants or set a different discount for each size, colour or attribute combination.

Back to Monday's email

Run the five steps and that email has a short answer. The company exists, its list carries the rate and the dates, the contract sits on top at 15%, and its buyer sees 306.00 against 360.00 until the contract ends.

Start with one company and one product, check the buyer's view, then repeat for the rest of the catalog. The next negotiation becomes a form, not a project.

Work with BSS
Turn these price lists into a working wholesale store

Company records, price lists and contract prices are one part of a B2B build. The BSS team configures them with the rest of your store and hands you something your sales team can run.

Book a free consultation