How to add custom product pricing module
In this tutorial you will learn how to your own custom product pricing module.
Create an application
First you need to create a default Django application (or use an existing one).
If you do not know how to do this, please refer to the excellent Django
tutorial.
Implement the price calculator class
Within __init__.py file of your application (or anywhere you choose) create
a class that inherits from lfs.plugins.PricingCalculator and implement all
inherited methods.
from lfs.plugins import PriceCalculator
class CustomPriceCalculator(PriceCalculator):
def get_price(self, with_properties=True):
return self.get_price_net()
... Other Methods...
Plug in the custom price calculator
- Add your application to the PYTHONPATH.
- Add the application to settings.INSTALLED_APPS.
- If your are using models (which is completely up to you), sync your database.
- Edit the dictionary lfs.core.settings.LFS_PRICE_CALCULATORS to make
your custom pricing calculator available to products in the manage interface
LFS_PRICE_CALCULATORS = [
["lfs.gross_price.GrossPriceCalculator", _(u"Price includes tax")],
["lfs.net_price.NetPriceCalculator", _(u"Price excludes tax")],
["mycustom_price.CustomPriceCalculator", _(u"My Pricing Calculator")],
]
Set the shop default price calculator
- Go to the LFS Management Interface.
- Select Shop / Preferences.
- Select Default Values and go the Price Calculator section.
- Select your new pricing calculator from the drop down menu of choices.
- Save the default values.
Note
All products with an unset price calculator will default to using the shop
price calculator.
Set the product pricing calculator
- Browse to http://yourshopdomain/manage and login.
- Select Catalog / Product.
- Select the product whose price calculator you wish to change.
- Select the Data Tab and scroll to the Prices section.
- Select your new pricing calculator from the drop down menu.
- Click on Save Data.
- Now browse to the customer view of the product and you should see the price
as calculated by your custom pricing calculator.