更新prestashop产品数量

时间:2014-11-10 11:23:06

标签: database prestashop

我注意到数量更新后出错了。似乎更新产品列表中的库存保持OLD。如果我在产品中写一个新的值 - >数量让它恢复良好。

这是示例:我们可以看到产品列表中的http://prntscr.com/54wjk7 - 3 如果我打开产品数量,我可以看到:http://prntscr.com/54wk2m - 1库存

所以这是一个问题。

我更新数量的功能:

function update_database($code,$count){
            $res = mysql_query('SELECT `id_product_attribute`,`id_product` FROM `'._DB_PREFIX_.'product_attribute` WHERE `ean13` = \''.$code.'\' LIMIT 1');
            if(mysql_num_rows($res)){
                                echo " ++. ".$count."<br/>";
                $row = mysql_fetch_object($res);    
                mysql_query('UPDATE `'._DB_PREFIX_.'product_attribute` SET `quantity` = \''.$count.'\' WHERE `ean13` = \''.$code.'\' ');
                mysql_query('UPDATE `'._DB_PREFIX_.'product` SET `quantity` = \''.$count.'\' WHERE `id_product` = \''.$row->id_product.'\' ');
                                $id_product_attribute = $row->id_product_attribute;
                                mysql_query('UPDATE `'._DB_PREFIX_.'stock_available` SET `quantity` = \''.$count.'\' WHERE `id_product_attribute` = \''.$id_product_attribute.'\' ');
            }else{
                $res = mysql_query('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `ean13` = \''.$code.'\' LIMIT 1');
                if(mysql_num_rows($res)){
                                        echo " +++. ".$count."<br/>";
                                        $row = mysql_fetch_object($res);   
                                        $id_product = $row->id_product;
                                        mysql_query('UPDATE `'._DB_PREFIX_.'product` SET `quantity` = \''.$count.'\' WHERE `ean13` = \''.$code.'\' ');
                    mysql_query('UPDATE `'._DB_PREFIX_.'stock_available` SET `quantity` = \''.$count.'\' WHERE `id_product` = \''.$id_product.'\' ');
                }else{
                                        echo " --.";
                    //echo 'Prekė barkodu:'.$code.' nerasta duomenų bazėje';
                }
            }

            mysql_close($this->db);
        }

我正在使用BAR代码进行更新。我的错在哪里?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您没有说明您的PS版本,但我使用

StockAvailable::setQuantity($product->id, 0, 10000);

这是方法定义

public static function setQuantity($id_product, $id_product_attribute, $quantity, $id_shop = null)