0

I'm looking to build a pricing calendar for each product (i.e. be able to plan in advance pricing for products).

Has anyone had any experience building something like this, or does anyone have any ideas on best practices to implement this?

1 Answer 1

1

Yes I did it a few years ago, the functionality is too complex to include entire here but i can give you an idea of how i resolved it:

First I used the special_price to apply the prices and keep untouched the base price then...

  1. I used a table to save the programmed prices, an csv file uploader, and a backend grid to display them (with flag to display which one is currently applied), something like.

Special Prices Table

price_id PK
store_id FK
product_id FK
special_price
active_from
active_to
is_active
uploaded_date
  1. A Cron.php file running daily responsible of resolve the logic to determine which price should be applied. (Ie: when overlapping the last one wins)

  2. Due to the amount of products and stores (views) in the store I used a custom implementation of ImportEmport module to make save process faster. (but could be perfectly implemented using the standard ORM)

  3. After apply the right prices I updated the special_prices records to is_active=true/false in order to get an "easy to view" status in the backend. (this part isn't strictly necessary neither).

Hope this give you a north.

2
  • thanks, how would you deal with a large product catalog that needs to be updated daily
    – pzirkind
    Jan 15, 2016 at 1:58
  • 1
    IMO (without 3rd party extensions) extends ImportExport is the best way, since ImportExport > import eval every attribute and it eav mapping then saves directly to mysql without dispatch all the orm's events workflow. The Old solution for that was deactivate automatic indexers before save and reactivate them after, forcing a full reindex al the end of the precess, btw after use import export you must reindex manually or by shell (if are using EE 1.13 or higher you just can't reindex by backend) Jan 15, 2016 at 2:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.