Я обновляю цены в пурпурно программно. Как я могу переопределить цены после этого обновления. Теперь я использовал команду SSH:
php indexer.php --reindex catalog_product_price
Я обновляю цены в пурпурно программно. Как я могу переопределить цены после этого обновления. Теперь я использовал команду SSH:
php indexer.php --reindex catalog_product_price
Следующие индексы переиндексируют каждый индекс.
for ($i = 1; $i <= 9; $i++) {
$process = Mage::getModel('index/process')->load($i);
$process->reindexAll();
}
Вы также можете использовать модель коллекции Magento для загрузки каждого индекса, а не жесткого кодирования идентификатора в цикле for.
/* @var $indexCollection Mage_Index_Model_Resource_Process_Collection */
$indexCollection = Mage::getModel('index/process')->getCollection();
foreach ($indexCollection as $index) {
/* @var $index Mage_Index_Model_Process */
$index->reindexAll();
}
Но если вы хотите переиндексировать только цену, то id равен 2
$process = Mage::getModel('index/process')->load(2);
$process->reindexAll();
Вы также можете вызвать функцию getProcessByCode следующим образом:
$process = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price');
$process->reindexAll();
Используя следующую команду SSH, вы можете переиндексировать все индексы.
php shell/indexer.php reindexall
Но если вы хотите переиндексировать только catalog_product_price, вы можете использовать код ниже.
php shell/indexer.php --reindex catalog_product_price
php -f indexer.php help
Вы можете использовать эту команду для всех команд, связанных с reindex через SSH.
php indexer.php -- reindex [process_code]
e.g: php indexer.php --reindex catalog_product_price
Это через SSH, если вам нравятся коды кода, тогда вам нужно пройти код ниже:
$indexer = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price')
$indexer->reindexEverything();
или выполните следующее:
for ($i = 0; $i <= 8; $i++) {
$process = Mage::getModel('index/process')->load($i);
$process->reindexAll();
}
Если у вас есть плоские таблицы и удивляйтесь, почему (как я это делал сегодня), программно обновленные цены не отображаются на лицевой стороне независимо от того, сколько раз вы переиндексируете, скорее всего, вам нужно повторно проиндексировать квартиру продукта ПОСЛЕ пересчета цен
php shell/indexer.php -reindex catalog_product_price
php shell/indexer.php -reindex catalog_product_flat
Если вы делаете обычный:
php shell/indexer.php reindexall
Обратите внимание на порядок переиндексации:
Category Flat Data index was rebuilt successfully in 00:00:00
Product Flat Data index was rebuilt successfully in 00:00:00
Stock Status index was rebuilt successfully in 00:00:00
Catalog product price index was rebuilt successfully in 00:00:00
...
Плоский продукт индексируется ДО цен, поэтому обновления цен не обновлялись в плоских таблицах (например, catalog_product_flat_2). Посмотрите на плоские таблицы, чтобы убедиться, что ваши программно обновленные цены установлены.