Злітають правила каталогу в Magento 1: як швидко виправити проблему


Magento - досить складна система управління Інтернет-магазином і далеко не все при роботі з нею гладко. Одна з найчастіших проблем – перестають працювати цінові правила каталогу, в результаті не працюють знижки для різних груп товарів. Про те, як допомогти справі, буде показано у цій статті.

Допомагаємо системі вручну

Найпростіший спосіб виправити ситуацію - це перейти в розділ Маркетинг, Цінові правила для каталогу і натиснути кнопку Застосувати правила.

Спосіб простий і підійде, якщо правила злітають не дуже часто. Якщо це відбувається раз на місяць або хоча б раз на тиждень – можна терпіти, доки не буде з'ясовано причину збою. Все одно адміністратор хоча б раз на тиждень та й заходить у панель управління, тому натиснути кнопку та почекати пару хвилин, доки правила будуть застосовані – не проблема.

Милиця для лінивих

Дана ситуація погана тим, що причин збою цінових правил - досить багато. На пошуки проблеми можна витратити багато часу. Адже менеджери будуть бити на сполох, користувачі магазину будуть незадоволені, начальство теж. Тому ми пропонуємо своєрідну милицю, а саме автоматизацію натискання кнопки Застосувати правила.

Перейдіть до кореневого каталогу документів веб-сервера. Якщо в ньому немає каталогу shell, створіть його. У каталозі shell створіть файл apply_rules.php наступного вмісту:


echo "Apply rules\n";
require_once '../app/Mage.php';
$app = Mage::app('admin');
$rule = новий 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

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

chmod +x apply

Все можна тестувати:

./apply

Якщо після виконання цього сценарію правила були застосовані, ви все зробили правильно. Далі потрібно забезпечити постійний запуск цього сценарію, для цього виконайте команду

crontab -e

Додати до розкладу наступний рядок:

00 8 * * * sh /шлях/apply

Збережіть зміни та зробіть вихід із редактора. Даний рядок буде запускати наш сценарій о 8 ранку щодня. Якщо правила пропадають частіше ніж раз на добу, можна запускати цей сценарій частіше – хоч щогодини.