繁体   English   中英

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

[英]Update product quantity manually (external script) in prestashop

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

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

(prestashop 版本是 1.6)

_DB_PREFIX_product选择id_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 用户可以为每个属性组合添加库存, eg 300 quantity for blue color and Mediam size 因此,如果您想更新特定组合的数量,则必须将该组合的 id 作为id_product_attribute传递。 0作为id_product_attribute传递将更新产品的总体数量和库存。

如果您不想使用 prestashop 类并希望从外部类更新数据库,那么查询将是UPDATE _Db_PREFIX_stock_availble SET quantity='$quantity' WHERE id_product='$productID' AND id_product_attribute=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);
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM