使用cronjob更新OpenCart中的库存状态

时间:2014-12-15 13:13:56

标签: cron opencart

我打算设置一个cronjob来将所有零产品(数量= 0)状态更新为禁用(0)。

您建议将此脚本放在管理员或根目录下?

这种剧本有什么危险吗?

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

这是我正在尝试的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

2 个答案:

答案 0 :(得分: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来运行代码

答案 1 :(得分:0)

只要cron有权访问目录,您就可以将文件放在任何需要的位置。存储它的位置没有区别。我总是建议用这种脚本运行一些测试,但如果你正确编码,不应该有任何不良副作用。

我个人认为将cron运行的文件存储在一个单独的文件夹中是有意义的,以便以后更容易找到它们,因为您可以为此文件夹设置所有权为cron。 (但这更基于意见)。