Skip to content

Requirements and install

B2B Pricing installs like every other extension sold here. Follow the shared procedure rather than a B2B Pricing-specific one:

Check your OpenCart version before you buy

B2B Pricing needs OpenCart 4.1.0.1 or newer. Your version is printed at the bottom of every page of your admin.

OpenCart changed how it stores a price, twice:

  • On the 4.0.2 releases, a product's special price lives in a table of its own, which the catalogue reads and the cart resolves differently. A list would win on the product page and lose in the cart.
  • On 4.1.0.0, the column the cart keeps a line's agreed price in is declared as a whole number, so a negotiated price of £9.40 does not fit in it. The page would print your customer's price and the cart would charge OpenCart's.

Both are the same failure: the price shown and the price charged differ. That is the failure this extension exists to prevent, so it declines to install below 4.1.0.1 rather than half working. It creates none of its tables, and writes the version you have and the one you need to the shared log.

Above the floor, the releases with a pass behind them are 4.1.0.1, 4.1.0.2, 4.1.0.3 and 4.1.0.4. 4.1.0.4 moved SKU and the other product codes into a table of their own. Every screen that prints one reads them where that release keeps them, by looking at the schema rather than at the version number, so one build serves all four.

What is specific to B2B Pricing

The permission entry to tick at step 3 of the shared procedure is:

extension/b2b_pricing/module/b2b_pricing

Tick it under both Access Permission and Modify Permission, for every user group that should be allowed to use B2B Pricing.

That one entry covers the settings screen. The three working screens under Catalog → B2B Pricing have permissions of their own, and a user group that has not been given one does not see that screen's menu entry:

extension/b2b_pricing/catalog/price_list
extension/b2b_pricing/catalog/case_quantity
extension/b2b_pricing/catalog/price_check

Bulk set has a fourth:

extension/b2b_pricing/catalog/bulk

It has no menu entry of its own (it is a button on Price Lists and on Case Quantities), and it needs Access only: writing through it is refused unless the user group also has Modify on the screen that owns what is being written, Price Lists for a price and Case Quantities for a case size.

Installing grants all four to the user group you install with, and nobody else. Every other group is granted them by hand, once, under System → Users → User Groups.

Price check is worth granting more widely than the other screens. Access without Modify makes it a read-only why is this customer paying that? screen for whoever answers the telephone, and it changes nothing at all.

Once it is installed

Your price lists live under Catalog → B2B Pricing → Price Lists, with Case Quantities and Price check beside them. There is nothing to configure before it is useful. The settings screen carries the module's own status switch, the switch for the JSON API (off until you ask for it), and detailed logging.

Quick start is the shortest path from here to a customer paying a price you set.

What uninstalling leaves behind

The steps are the shared ones, in removing an extension. What is specific to B2B Pricing is what stays.

Uninstalling deletes no price list, no row, no assignment and no case quantity. An OpenCart update is an uninstall followed by an install, so an extension that dropped its tables on the way out would lose every negotiated price on a routine update. The permissions you granted stay granted for the same reason.

What goes is behaviour: prices stop being worked out from your lists, and a price already written onto a shopper's cart line by B2B Pricing is cleared, so nobody goes on being charged a list price after the extension is gone. Your settings are kept aside and put back when you install again, with the exceptions listed under What an update keeps in the changelog.

Removing what B2B Pricing holds about people, without uninstalling it, is a screen of its own: see what this holds about a person.