Sale Price and Regular Price


(Mike Tarantino) #1

Does commerce offer a way to list a regular price and a sale price?


(Mark Hamstra) #2

Not at the moment. This was planned for 0.12.0-rc1 but the implementation I have in mind is a little more complex (and vastly more powerful) than just a secondary price field*, which unfortunately had to be delayed to get 0.12 out.

I have been doing a bit more work on 0.12 over the holidays and might still see if I can get it into rc2, but as I want to get that out by the end of next week I’m not quite sure it’ll be ready at that point. If it’s not ready then, it will be in 1.0.


(*) For context, what I have in mind is something I call “Price Strategies”. The price that products have right now will remain as some sort of “retail” or “base” price. Alongside those, you’ll have an “Add Price” button of sorts that lets you choose the type of price and fill in whatever options that price type offers.

There are 2 strategies/types I plan to add to the core initially:

  • Sale price, where you get a “from” and “until” date selector with a price field
  • User/Usergroup price, where you get a usergroup selector with a price field.

When a product is added into the cart it’ll evaluate the price strategies and use the appropriate price.

It’ll be an extendable system, so you could build custom strategies/types, like bulk pricing where you set prices in quantity ranges (might do that one in the core if I have the time).

When that’s in place, that should make pretty much all product-specific pricing needs a possibility, but that’s also why it takes more time to build than expected as I need to get it right :smiley:


(Helen Warner) #3

Hey Mark - how far along with this are you? I have a client who would like to offer RRP and Trade price on products. Trade price would only be visible to those in the right User Group. Would be a great addition thats for sure


(Mark Hamstra) #4

Price Types are included in 1.0: https://docs.modmore.com/en/Commerce/v1/Products/Price_Types.html :tada:

(At the moment, 1.0 is in the pre-release channel)

Looks like the implementation changed a bit from the original plan; instead of the user(group) pricing I added the quantity-based pricing option into the core. The system as architected should have no problem with adding user(group) prices, including from a standalone module, but that’s not readily available just yet.


(Helen Warner) #5

I’ve downloaded and tested this, but not quite what I needed for this client. I will have to consider a different approach - perhaps a discount code.


(Mark Hamstra) #6

If you’re looking to offer a fixed percentage discount for specific usergroups, the user(group) discounts module might be useful to you. Added in 0.12: https://docs.modmore.com/en/Commerce/v1/Modules/Discounts/UserDIscounts.html


(Helen Warner) #7

Is it possible to show sale price based on user group? I have tried placeholder [[+price_rendered]] and it shows both prices, whereas [[+price_formatted]] only shows the sale price (if there is one). Client needs to have option to show 2 prices based on user group status. Discounts wouldn’t work unfortunately as price differences vary so much.


(Mark Hamstra) #8

The get_product(s) snippets only looks at pricing (standard price and price types, evaluated without order/customer context and a quantity of 1). The [[+price_rendered]] placeholder contains a from/for price, price_formatted only the currently best price.

To also evaluate discounts and get the exact same price as adding to the cart would get, you’d need to use the render_taxed_price snippet. That practically adds a an item to the cart to trigger the closest to the actual calculation as possible.