Какая конкретная работа сбрасывает правила управления каталогом каждый день?


Мы отключили catalogrule_apply_all cronjob Magento из-за системы с несколькими средами (для упрощения: допустим, у нас есть 1 промежуточный сервер и 1 производственный сервер) в одном из наших клиентов. Catalogrule процесс обновления выполняется только в одной среде (промежуточной), а затем мы передаем данные базы данных через системный процесс из этой среды в другие (производственные)

Проблема в том, что у нас есть несколько дней, когда мы не передаем данные между средами, а затем обновление catalogrule не выполняется выполнено, но Magento выполняет сброс в производственной среде.

Кто-нибудь здесь знает, какая конкретная задача Magento cron сбрасывается ежедневно? Или, может быть, это не делается никаким cronjob, поэтому проблема в том, что обновление catalogrule просто необходимо выполнять каждый день, даже если в активных правилах catalogrule нет никаких изменений?

ОБНОВЛЕНИЕ Я подозреваю, что это и есть причина, кто-нибудь может это подтвердить?

<crontab>
    <jobs>
        <catalog_product_index_price_reindex_all>
            <schedule>
                <cron_expr>0 2 * * *</cron_expr>
            </schedule>
            <run>
                <model>catalog/observer::reindexProductPrices</model>
            </run>
        </catalog_product_index_price_reindex_all>
    </jobs>
</crontab>
Author: Commerce Pundit, 2016-06-13

3 answers

Нет задания cron, которое "сбрасывает" правила каталога, но цена, сгенерированная "catalogrule/observer::dailycatalogupdate" только на следующий день.

Итак, если вы отключили эту задачу cron - и она пропустит день - цены не будут продлены.

Вы можете проверить таблицу БД "catalogrule_product_price" - там есть поле "rule_date", в котором указано, на какую дату у вас сгенерированы правила.

 1
Author: Neklo.com, 2016-06-24 02:16:11

Из app/code/core/Mage/CatalogRule/etc/config.xml:

<crontab>
        <jobs>
            <catalogrule_apply_all>
                <schedule>
                    <cron_expr>0 1 * * *</cron_expr>
                </schedule>
                <run>
                    <model>catalogrule/observer::dailyCatalogUpdate</model>
                </run>
            </catalogrule_apply_all>
        </jobs>

\mage_catalogrule_model_observer::Ежедневное обновление каталога:

/**
 * Daily update catalog price rule by cron
 * Update include interval 3 days - current day - 1 days before + 1 days after
 * This method is called from cron process, cron is working in UTC time and
 * we should generate data for interval -1 day ... +1 day
 *
 * @param   Varien_Event_Observer $observer
 *
 * @return  Mage_CatalogRule_Model_Observer
 */
public function dailyCatalogUpdate($observer)
{
    /** @var $resource Mage_CatalogRule_Model_Resource_Rule */
    $resource = Mage::getResourceSingleton('catalogrule/rule');
    $resource->applyAllRules();

    return $this;
}
 0
Author: Neklo.com, 2016-06-21 16:38:11

Чтобы исправить эту "фантастическую функцию" (ошибку чтения), вы должны реализовать задание cron Magento по умолчанию.

Единственное, что вам нужно сделать, это добавить следующее в ваш файл crontab: */5 * * * * / абсолютный/путь/к/bin/php -f/absolute/path/to/magento/cron.php Так что в моем случае это было: */5 * * * * / usr/локальный/bin/php -f/var/www/websitefolder/htdocs/cron.php Чтобы получить это в мой файл crontab через SSH:

1) Войдите на сервер с именем пользователя login 2) станьте корневым "судо-я" 3) редактировать кронтаб: "кронтаб -е" 4) добавьте строку 5) сохраните и закройте файл

Я ссылался на ссылку @ http://www.seankreps.com/magento-tips-faq/magento-catalog-price-rules-disappear-after-a-day/

 0
Author: Rushvi, 2016-06-22 13:29:21