在prestashop中手动更新产品数量(外部脚本)

时间:2017-09-18 07:39:55

标签: php codeigniter prestashop prestashop-1.6

我正在codeigniter中编写一个外部应用程序,它将读取产品的条形码并更新 Prestashop 数据库中的数量。现在我不确定我应该更新哪些表/表。数据库中有_DB_PREFIX_product,_DB_PREFIX_product_attribute,_DB_PREFIX_stock_available表,其中,产品ID和数量列可用。

和条形码列(ean13)在前2个表中可用。 请让我知道我应该更新哪些表格来正确更改产品数量

(prestashop版本为1.6)

2 个答案:

答案 0 :(得分:1)

id_product选择_DB_PREFIX_product,然后在_DB_PREFIX_stock_available更新数量。

你可以使用prestashop类,我从未使用过条形码所以不知道ean13是什么,但代码必须是。

<?php 
include('config/config.inc.php');
include('init.php'); 
$ean13 = "ean13";
$sql = "SELECT id_product FROM _DB_PREFIX_product WHERE ean13='$ean13'";
//replace _DB_PREFIX_ with your prefix or define _DB_PREFIX_ on top.
$product_id = Db::getInstance()->getValue($sql);
if (!empty($product_id)) {
$quantity = 100;
StockAvailable::setQuantity((int)$product_id, 0, $quantity);
}
?>

StockAvailable::setQuantity((int)$product_id, 0, $quantity);这里的第二个参数是id_product_attribute为什么我通过0,因为id_product_attribute在pestashop用户可以为每个属性组合e.g 300 quantity for blue color and Mediam size添加股票。因此,如果您要更新特定组合的数量,则必须将该组合的ID传递为id_product_attribute。将0作为id_product_attribute传递将更新产品的总数量和库存。

如果您不想使用prestashop类并希望从外部类更新db,则查询将为UPDATE _Db_PREFIX_stock_availble SET quantity='$quantity' WHERE id_product='$productID' AND id_product_attribute=0

答案 1 :(得分:0)

我如何更新所有产品数量类型的包装?

<?php 
include('config/config.inc.php');
include('init.php'); 
$sql = "SELECT id_product_pack FROM _DB_PREFIX_pack";
$product_id = Db::getInstance()->getValue($sql);
if (!empty($product_id)) {
$quantity = 100;
StockAvailable::setQuantity((int)$product_id, 0, $quantity);
}
?>