Opencart - 获取产品选项数量或库存文本(产品模块选项)

时间:2017-12-18 16:42:01

标签: php sql opencart opencart2.x

我在Opencart 2.0x网站上使用Option to Product扩展程序。这一切都按预期工作。我想在选项选择框中有选项的库存可用性。例如:

当前:


我想要的是什么:
蓝色(有货)
红色(有货)
橙色(缺货)

像上面这样的东西。因此,我需要获取库存文本或数量,然后根据数量手动添加文本。

我尝试将view / theme / * / template / product / product.tpl中的代码修改为:

<?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>
}

之后的目录/ controller / product / product.php中
'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设置但不知道如何将其添加到模型中,然后使用Controller获取数据并在View模板上显示因为我是MVC和OpenCart的菜鸟。

请帮忙 - 我会永远爱你!

由于

1 个答案:

答案 0 :(得分:0)

这对我有用,编辑此文件:

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将不会在产品页面上显示该选项,除非您选择“否”来减去库存。