2

I am having a bit of an issue with my site at the moment and I just wanted to see if anybody knows what might be the cause of the symptoms going on.

Certain products seem to have different prices once they are added to the cart. The price displays correctly on the actual product page but then once added the total changes (both up and down for different products by varying amounts).

All of the ~100k products on the site have a stock/price updated each morning and so I guessed that it could be a re-indexation issue, however I checked and straight after each import the product price index is re-indexed + cache is cleared.

Most products seem to work just fine as normal but every once in a while an odd one will pop up. If I get news from a customer about a product with the wrong pricing on the cart then simply re-saving the product in the back-end changes it straight back to the normal price without any trouble. Although re-indexing the product price index doesn't change it back.

The nature of the problem and the fact that imports overwrite data each morning means it is quite hard to track down the issue as some days I notice no products like this and other days I'll find one or two.

Any help or direction is greatly appreciated, thanks!

Magento CE v 1.9.1 Running on a debian EC2 instance on AWS.

NOTE: RE-INDEXING DOESN'T RESOLVE THE ISSUE - ONLY MANUAL SAVE OF AFFECTED PRODUCTS

4
  • if you manually re-index does the correct price show?
    – paj
    Commented Aug 24, 2015 at 13:15
  • Hi there, thanks for the reply. I just caught one of these again and quickly cleared the product price index manually and re-checked the product on cart however this still doesn't seem to fix the issue.
    – Alexander
    Commented Sep 15, 2015 at 14:22
  • Just an update. I changed the price by 1p on the product page and saved and this seems to have changed the price back straight away. Any ideas on what causes the save to fix it but not the re-index?
    – Alexander
    Commented Sep 15, 2015 at 14:26
  • I have the same issue, like you I have over 100k products, I am losing money on sales because of this. The only solution I've come up with is to have a script writen that opens and saves products one at a time and updates an attribute called "re saved" once the product is saved the issue is gone, but with this many products its going to take months to complete so I have to batch them. If you find a viable solution please post it.
    – SR_Magento
    Commented Jan 27, 2016 at 13:08

6 Answers 6

3
+50

I had some issue with wrong / old product price in the cart which was not the one displayed to the customer on the product page as well. Running Magento 1.9.2.1.

I was surprised finding out that Magento obviously does not use information from the product price index but from the article flat index instead. Don't know if bug or feature, but it can lead to unclear situations for sure.

If you have a look at the catalog_product_flat tables in the database you will find 2 fields containing the main price information: price and special price. Those are being used for cart, quotes and order.

So updating the price index manually could not solve our problem. But we had article flat index switched on manual mode and updating it finally made the right price to show up in the cart - even in existing quotes.

Maybe this helps to solve your issue as well.

3
  • Do you mean your solution was to set the price index from Manual to Automatic?? Re-indexing hasn't helped.
    – SR_Magento
    Commented Jan 27, 2016 at 13:12
  • can you elaborate please?
    – SR_Magento
    Commented Feb 2, 2016 at 10:54
  • +1 on elaboration, also @SR_Magento did you ever find a solution as this has started to crop up again for me and still no fix?
    – Alexander
    Commented Apr 18, 2017 at 18:45
1

I found the answer on Magento Forums:

https://community.magento.com/t5/Magento-1-x-Technical-Issues/Cart-price-gets-deducted-on-page-reload-when-product-qty-is-more/m-p/94352#M8113

Quoting:

Removing following from the Mage_Sales_Model_Quote_Address_Total_Subtotal _initItem() method solved it for me:

&& !$item->getHasError()

Because we do want to show prices when there's an error, we just don't want them to buy when error.

EDIT:

After inspecting a bit more, I found that the problem was that I didn't set attribute "is_in_stock" when importing products (I thought I didn't need it because "manage_stock" was set to "No"). That was the cause for get getHasError() returning true

1
  • After inspecting a bit more, I found that the problem was that I didn't set attribute "is_in_stock" when importing products (i thought I didn't need it because "manage_stock" was set to "No"). That was the cause for get "getHasError()" returning true.
    – Rok
    Commented May 11, 2018 at 7:46
0

I don't know which method or extension are you using to update stock & prices anyway I guess that the problem comes from the update process (note that if you save the product in the backend the price issue is reverted) means that when the update process run some -after-save- events are not executed.

So my first approach will be very simple just make a basic module and schedule a catalog_product_flat reindex process just after the update/import process.

I'm assuming that you know how to create the module and schedule a cron job, if not just let me know and I'll update the answer with a complete how to example.

TEST: You can try a manual or shell catalog_product_flat reindex just for test, and if it works then create the module.

ALT: Alternatively to the module creation workaround you can use the excellent AOE Scheduler extension for schedule and monitor cron jobs however I believe that isn't any specific cronjob for catalog_product_flat just for full reindex.

7
  • As stated - indexing doesnt solve the problem.
    – SR_Magento
    Commented Jan 31, 2016 at 11:40
  • @SR_Magento the question talk about price reindex nothing about full or catalog flat reindex. Commented Jan 31, 2016 at 11:50
  • I have this issue too, re-indexing doesn't solve anything. I've added the note to the question.
    – SR_Magento
    Commented Jan 31, 2016 at 11:54
  • In that case you need to improve the question with more technical data like db snapshots of the involved products or at least a detail about how the updates are performed. But i think that get a magento dev could be more usefull. Commented Jan 31, 2016 at 12:11
  • What do you think about a script that would take a product price and copy it to the corresponding table in catalog_product_flat ?
    – SR_Magento
    Commented Feb 2, 2016 at 11:00
0

Have you checked Promotion in shopping cart price rules ? could be a promotion on for some of the products or categories you have ?

Double check it.

Hope this helps!

1
  • Definitely not related to shopping cart rules - but thank you
    – SR_Magento
    Commented Feb 2, 2016 at 10:52
0

We had a similar issue with on enterprise version of magento, for some reason after reindexing products flat table values were not always updated. We ended up creating observer for add to cart event, which was checking if price from EAV table matching price from flat table, if no, dummy parameter was added to preloaded model before save.

0

Experiencing this problem on a store. Prices are excluding tax and the store was upgraded from 1.7.

How I fixed this was.

update `catalog_product_index_price` set `final_price` = round(`final_price`,2);
update `catalog_product_index_price` set `price` = round(`price`,2); 
update `catalog_product_index_price` set `min_price` = round(`min_price`,2); 
update `catalog_product_index_price` set `max_price` = round(`max_price`,2); 
update `catalog_product_entity_decimal` set `value` = round(`value`,2) where `attribute_id` = '75';

You may need to check attribute_id 75 is price on your install

0

Your Answer

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

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