Слетают правила каталога в Magento: как быстро исправить проблему

14 Декабря 2018

Magento — довольно сложная система управления Интернет-магазином и далеко не все при работе с ней гладко. Одна из частых проблем — перестают работать ценовые правила каталога, в результате не работают скидки для различных групп товаров. О том, как помочь делу, будет показано в этой статье.

Помогаем системе вручную

Самый простой способ поправить ситуацию — это перейти в раздел Маркетинг, Ценовые правила для каталога и нажать кнопку Применить правила.

1.png

Способ простой и подойдет, если правила слетают не очень часто. Если это происходит раз в месяц или хотя бы раз в неделю — можно терпеть, пока не будет выяснена причина сбоя. Все равно администратор хотя бы раз в неделю да и заходит в панель управления, поэтому нажать кнопку и подождать пару минут, пока правила будут применены — не проблема.

Костыль для ленивых

Данная ситуация плоха тем, что причин сбоя ценовых правил — довольно много. На поиски проблемы можно потратить много времени. А ведь менеджеры будут бить тревогу, пользователи магазина будут недовольны, начальство тоже. Поэтому мы предлагаем своеобразный костыль, а именно автоматизацию нажатия кнопки Применить правила.

Перейдите в корневой каталог документов веб-сервера. Если в нем отсутствует каталог shell, создайте его. В каталоге shell создайте файл apply_rules.php следующего содержимого:

<?php
echo «Apply rules\n»;
require_once './app/Mage.php';
$app = Mage:app('admin');
$rule = new Mage_CatalogRule_Model_Rule;
$rule->applyAll();
echo «Done\n»;
?>

Этот сценарий можно создать в любом месте веб-сервера, но тогда нужно отредактировать путь к сценарию Mage.php. Не нужно быть PHP-программистом, чтобы догадаться, что делает сценарий — он получает модель правил каталога и вызывает метод applyAll() для применения всех правил.

После того, как PHP-сценарий создан, нужно автоматизировать процесс его запуска. Создайте файл apply со следующим содержимым:

#!/bin/bash
cd /путь/htdocs/shell
/usr/bin/php apply_rules.php

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Здесь вам нужно изменить путь к каталогу shell, в котором находится наш сценарий apply_rules. Далее нужно сделать файл apply исполняемым:

chmod +x apply

Все, можно тестировать:

./apply

Если после выполнения этого сценарий правила были применены, вы все сделали правильно. Далее нужно обеспечить постоянный запуск этого сценария, для этого выполните команду

crontab -e

Добавьте в расписание следующую строку:

00 8 * * * sh    /путь/apply

Сохраните изменения и произведите выход из редактора. Данная строчка будет запускать наш сценарий в 8 утра каждый день. Если правила пропадают чаще, чем раз в сутки, можно запускать этот сценарий чаще — хоть каждый час.

Получить консультацию специалиста