Reputation: 1
We had a price change (increase) for some products, so I updated them. On first check it looked okay, on the catalog page the right new price was shown. However, the product had a sale label? On the product page it still showed the old (lower) price.
In the admin I set the scope to the store view and then it still shows the old price. I tried to update it, but after the save it will show the old price again? No matter what I do, it will not save the new price on the store view.
I looked in all the database catalog_product_index_price_* tables but all the tables contains the new price. (assigned to the product_id)
I flushed the cache and reindexed everything, but no luck. How is it possible that the product shows a price that is not even listed in the database? Or are there other tables where the price is listed?
I'm really confused now.
UPDATE: To be clear, I can change the price on the product when in default store view. When I change the price in the specific store view, the new price will not save. When I go back to the product in the admin, the old price is still there. For some reason the new price is listed in category view, but not on product view.
Upvotes: 0
Views: 4438
Reputation: 21
May be you have indexing issue due to catalog_product_price invalidate status.
You can check status of indexers by following command:
> bin/magento indexer:status
If you have any of indexer with invalidate status and/or you have Schedule status with suspended you can run following command by respective index:
> bin/magento indexer:reset <indexer_name>
After you can again run indexing command and caching command
Upvotes: 2
Reputation: 950
On catalog/category/view pages prices are getting from database (they are not collecting on the fly, how it does for catalog/product/view). So if you have in database in index table correct values - it doesn't matter which values do you have inside your product (if you will not make reindex).
Firstly check if you have any caching module like memcached / varnish / any magento booster module, which can load cached page. You can check this in app/etc/local.xml
Then you need to find template which responsible for grid output. In default magento it is template/catalog/product/list.phtml (don't forget that this template file contains two similar parts. One is responsible for list output, another for grid output. It means that one part is not working always.) Try to find which template you are using. Try to put there breaks/changes. Try to look at the $productCollection property check prices there. for example near row.
<?php foreach ($_productCollection as $_product): ?>
put following: (AND DON'T FORGET TO REMOVE IT AFTER DEBUG)
Mage::log($_product->getData(), false, 'product.log', true);
upd.1
Sorry. I misread. As I have already said this price is collecting on the fly. It means magento ignores index table and trying to collect price again. So you need to check price in adminarea/catalog/product edit. Then you need to look at your modules which can affect on total price calculation (or better totally disable all modules and enable default theme).
Upvotes: 2