2017-09-18 2 views
0

私はcodeigniterに外部アプリケーションを作成しています。これは、Prestashopデータベースの製品と更新量のバーコードを読み取ります。今私はどのテーブル/テーブルを更新すべきかわからない。 db内に_DB_PREFIX_product、_DB_PREFIX_product_attribute、_DB_PREFIX_stock_availableテーブルがあり、product idとquantityカラムが使用可能です。製品番号を手動で更新する(外部スクリプト)

およびバーコード列(ean13)は、最初の2つのテーブルで使用できます。 私は適切に

(PrestaShopのバージョンは1.6である)_DB_PREFIX_productから

+0

は、私は大きなお店のシステムで、それはにISN ...その利用できるためのWebサービスがあるかなり確信しているだろうあなたのコメントのために直接 – sintakonte

+0

ありがとう、ありそうであるかもしれないデータベースの上の在庫などのデータを更新するための良いアイデア。しかし、更新する前にいくつかのカスタマイズが必要で、私はそのコードを修正するためのプレスタッシュの専門家ではない。だから私は外部アプリケーションを使用する必要があります。 –

答えて

0

選択id_productが、その後_DB_PREFIX_stock_availableで数量を更新し、製品の数量を変更するために更新する必要のあるテーブルまたはテーブルお知らせください。

prestashopクラスを使うことができます。私はバーコードで作業したことがないので、ean13はわかりませんが、コードは必須です。私はid_product_attributeとして0を渡す理由

ここ
<?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); 2番目のパラメータはid_product_attributeであるpestashopユーザーであるすべての属性の組み合わせe.g 300 quantity for blue color and Mediam sizeのための在庫を追加することができます。したがって、特定の組み合わせの数量を更新する場合は、その組み合わせのIDをid_product_attributeとして渡す必要があります。 0id_product_attributeとすると、製品の総量と在庫が更新されます。あなたはPrestaShopのクラスを使用し、外部のクラスからDBを更新したいしたくない場合は

問合せはUPDATE _Db_PREFIX_stock_availble SET quantity='$quantity' WHERE id_product='$productID' AND id_product_attribute=0

+0

こんにちは、どうもありがとうございました。私もそれを推測しましたが、問題は各製品IDの 'stock_available'テーブルに複数の行があることです。 uniqueはproduct_attribute ID列です。だから、私は 'product'テーブルや' product_attribute'テーブルでバーコードを探していなければならないのか分かりません。 –

+0

'PREFIX_stock_availble'の1行に複数の行がある場合は、すべての組み合わせ(サイズと色)に別々の在庫があることを意味します。 – Sama

関連する問題