Settings¶
B2B Pricing keeps its settings in OpenCart's own setting table, under the
module_b2b_pricing group. You set them at
Admin > Extensions > Extensions > Modules > B2B Pricing.
Each key below carries where it applies. per store means a multi-store install can hold a different answer per storefront, and both are honoured: a read takes what that store holds, then what the default store holds, then the shipped default. install-wide means one thing serves every storefront, and the key's own description names that one thing.
Scope¶
| Key | Default | What it does |
|---|---|---|
module_b2b_pricing_statusinstall-wide |
0 |
Whether the module is enabled. Set by the Status switch on this extension's own settings screen. |
module_b2b_pricing_api_enabledinstall-wide |
0 |
Whether this extension answers API requests at all. Off, every API route answers 404 in the API's own JSON envelope, so an extension with its API off is shaped like one that has none. This is a back-office credential with the same reach as the order API OpenCart already ships: anyone holding it can read every price list and every assignment, and therefore what any named customer pays. Read once for the whole installation from the default store, because the credential it checks is OpenCart's own API user, which has no store of its own. |
Advanced¶
| Key | Default | What it does |
|---|---|---|
module_b2b_pricing_diary_verbose_untilinstall-wide |
0 |
When detailed logging stops, as a unix timestamp, and 0 is off. Turning Detailed logging on from this extension's settings form stores the moment two days from now; the writer compares that against the clock every time it is asked for a DEBUG line, so the window closes on its own with no scheduled task and nothing to clean up. While it is open this extension records what it did in far more detail, and the shared diary consequently holds less history. |
What you cannot change, and why¶
These are fixed on purpose. Each one is a decision with a reason beside it rather than a setting nobody got round to adding.
Prices¶
A price-list row holds the price itself, and there is no percentage-off or amount-off rule. A percentage is a number about a base that a catalogue import moves, so the day a supplier raises a list price every negotiated price silently moves with it and nobody is told. OpenCart's own percentage discount shows how far that goes wrong: core resolves it against the bare product price in the catalogue and against an option-inclusive price in the cart, so one row means two different numbers in a single request. All Acme products, 15% off is still one action — the bulk set writes the arithmetic out into rows, once, where you can read it back.
A price list holds no currency, and every price in it is in the store's own. Both the places this extension puts a number sit underneath OpenCart's currency conversion, so a price entered in another currency would be converted a second time on the way to the shopper. This is how core stores every price it has.
Price lists¶
A price cannot be given its own start and end date. The dates are on the assignment — who is on this list, between when and when — so a price that applies for one quarter is a second list with a dated assignment and a higher priority. A date on every row would put a clock on the one table that grows with the catalogue, and a hundred thousand rows would be date-filtered on every category page to answer a question four assignments already answer.
A price-list row is not linked to the product record, so deleting a product neither fails nor quietly shortens your lists. The row stays where it is and prices nothing, because there is no longer a product for it to price. This is deliberate: the alternative is a product you cannot delete, or lists that lose rows without telling you.
A copied list starts with the same prices and nobody on it, and switched off. Copying who is on a list would put two lists in front of the same buyers the moment the copy exists, and which of them wins would then turn on their priorities rather than on anything you decided.
Scope¶
Installing this extension changes none of your existing product discounts or specials, and uninstalling it changes none of them back. They go on pricing every product no live price list prices, and they are never read for one a list does. One list decides a product's price, or OpenCart does, and never both.