簡體   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