2014-12-15 2 views
1

Я планирую настроить cronjob для обновления всех нулевых продуктов (количество = 0) до отказа (0).Использовать cronjob для обновления состояния запасов в OpenCart

Где бы вы порекомендовали поставить этот скрипт под администратором или в корне?

Любые опасности с помощью этого сценария?

================================================================================================================================== =============

Это SQL Я пытаюсь сделать работу:

UPDATE product p 
SET p.status = 0 
FROM product_to_store p2s, product p 
WHERE p2s.product_id = p.product_id AND p.quantity=0 AND p.status=1 AND p2s.store_id=0 

Но я получаю сообщение об ошибке с этим.

РЕШЕНИЕ !!!

UPDATE product p 
JOIN product_to_store p2s ON p.product_id = p2s.product_id 
SET p.status=0 
WHERE p2s.store_id=0 AND p.quantity=0 

ответ

0

Вы можете поместить файл туда, где захотите, если у cron есть разрешения на доступ к каталогу. Это не повлияет на то, где его хранить. Я всегда рекомендую запускать некоторые тесты с такими сценариями, но если вы правильно его кодируете, не должно быть никаких плохих побочных эффектов.

Я лично считаю, что имеет смысл хранить файлы, запущенные cron, в отдельной папке, чтобы впоследствии их легче найти и потому, что вы можете установить право собственности на cron для этой папки. (но это больше основано на мнениях).

1

Если вы собираетесь реализовать это правильно, вам необходимо создать его на стороне catalog. Я бы рекомендовал использовать vQmod для добавления функции cron с проверкой ключа, чтобы никто не запускал код. Например, добавив в вашей /catalog/controller/common/home.php

public function cron() { 
    if(empty($this->request->get['key']) || $this->request->get['key'] != 'Your-Key-Here') die('ERROR'); 

    // Run SQL update code 
    $this->db->query(" 
     UPDATE 
      `" . DB_PREFIX . "product` 
     SET 
      `status` = IF(`quantity` < 1, 0, 1) 
    "); 
} 

Тогда вы могли бы назвать http://yoursite.com/?route=common/home/cron&key=Your-Key-Here запустить код

+0

Jay - ТНХ для наконечника! Похоже, это хорошая идея. Я добавил инструкцию SQL, которую планирую запускать, но я не могу заставить ее работать. Любая идея, как это сделать? –

+0

Нужно ли добавлять файл модели или я могу написать SQL непосредственно в коде home.php? –

+0

@ HansLernestål - Если вы хотите сделать это правильно, вы должны использовать переменную 'DB_PREFIX' и использовать объект базы данных. Вам также не нужно использовать таблицу хранилища и любые соединения. См. Выше edit, который будет включать и отключать продукты на основе их значений количества. –

Смежные вопросы