2017-12-18 13 views
1

私はOpencart 2.0xウェブサイトのOption to Product拡張を使用しています。それはすべて期待通りに機能します。オプション選択ボックスにオプションの在庫状況を表示したいと思います。たとえば、次のようにOpencart - 製品オプション数量またはストックテキストを取得する(製品モジュールへのオプション)

電流:
ブルー
レッド
オレンジ

私が欲しいもの:(在庫あり)
ブルー
レッド(在庫)(在庫切れ)
オレンジ

上記のようなものです。だから私はストックテキストまたは数量を取得し、手動で数量に応じてテキストを追加する必要があります。

私がするビュー/テーマ/ * /テンプレート/製品/ product.tplにコードを変更しよう:カタログ/コントローラ/製品/ product.phpで

<?php 
foreach ($option['option_value'] as $option_value) { 
if ($option_value['quantity'] == "0") { 
$stock = "Out of Stock"; 
} else { 
$stock = "In Stock"; 
} 
?> 
<option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> (<?php echo $stock ?>) </option> 
} 

'option_value_id'   => $option_value['option_value_id'], 

私は何を取得

'quantity'   => $option_value['quantity'], 

を追加!


は、私も直接データベースにアクセスしようとしたが、それは動作しません - 私は私が私を知っている

$product_id = $product_id; 
$option_id = $option_value['option_value_id']; 

$get_otp_id = $this->db->query("SELECT id from oc_otp_option_value where product_id = $product_id AND parent_option_value_id = $option_id"); 

を使用する - 私は、データベースから必要な値を取得する方法を確認していませんこれはMVC設定であるため、製品テンプレートページに追加することはできませんが、モデルにこれを追加する方法はわかりません。コントローラを使用してデータを取得し、ビューテンプレートに表示します。 OpenCart。

助けてください - 私はあなたを永遠に愛します!

おかげ

これは私の作品
+0

あなたのOCバージョンは正確ですか? 2.0.0.0? – DigitCart

+0

こんにちは@DigitCart - ありがとう - バージョン2.0.3.1です –

答えて

1

、このファイルを編集します。

catalog\controller\product\product.php 

検索:

foreach ($option['product_option_value'] as $option_value) { 

それの後に追加:

$stock_text = $option_value['quantity'] > 0 ? '(In Stock)' : '(Out Of Stock)'; 

検索:

'name'     => $option_value['name'], 

と交換してください:

'name'     => $option_value['name'] . $stock_text, 

をすべてあなたのキャッシュ(ocmod、vqmod、...)すると明らか。

注:オプション値が在庫切れの場合、OpenCartは、「No」を選択しない限り、そのオプションを製品ページに表示しません。

+0

ありがとうございます。それは残念ながらそれをしていません。 vqmodのキャッシュファイルを編集して、問題がある場合はキャッシュをクリアしてすべて問題ないようにしました。したがって、私はそれがキャッシングの問題ではないことも知っています。 オプションの製品拡張機能を使用していて、デフォルトのOpencartオプションではないことがわかりましたか?助けをありがとうございます –

+0

これはデフォルトのオプションで動作し、テストされています。 – DigitCart

+0

よろしくお願いいたします。はい、私はそれがデフォルトで働いている - しかし、私はデフォルトのバリアントフィールドを使用していないオプションをPtoductに使用しています。 –

関連する問題