对于我的Opencart 1.5.4项目,我们为产品设置了最少12个数量。如果用户选择小于12的数量,则不允许用户购买(Opencart在购物车页面上对此进行验证)。但是,如果用户在不同选项(小型,中型,大型)的小组中选择相同的产品,那么他可以下订单。
例如
产品A(小)6数量
产品A(中)6数量
产品A(大)10数量
总数量为22。
但我希望单个项目数量为minimum 12
,如下所示,
产品A(小)12个数量(最少12个)
产品A(中)12数量(最少12)
产品A(大)12个数量(最少12个)
Opencart不会被视为不同的选项,因为购物车中的不同产品和用户可以轻松购买少于12个数量的单个产品。
任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?可以使用任何扩展吗?
答案 0 :(得分:1)
我找到了这个问题的解决方案,因为我必须在购物车和结帐控制器中进行更改。默认情况下,Opencart按产品ID计算购物车页面上的产品数量。我已经定制了代码,现在它将检查购物车中每种产品的个别数量。
推车控制器==> Cart.php \ catalog \ controller \ checkout \ cart.php 在第192行至第197行进行更改
foreach ($products as $product) {
$product_total = 0;
$allCartProductId[] = $product['product_id'];
foreach ($products as $product_2) {
if ($product_2['product_id'] == $product['product_id']) {
$product_total += $product_2['quantity'];
}
}
if ($product['minimum'] > $product_total) {
$this->data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum'])
}
}
要
foreach ($products as $product) {
$product_total = 0;
$allCartProductId[] = $product['product_id'];
$product_total += $product['quantity'];
if ($product['minimum'] > $product_total) {
$this->data['error_warning'] .= sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum'])."<br>";
}
结帐控制器==&gt; checkout.php \ catalog \ controller \ checkout \ checkout.php在第15行进行更改 到20
foreach ($products as $product) {
$product_total = 0;
foreach ($products as $product_2) {
if ($product_2['product_id'] == $product['product_id']) {
$product_total += $product_2['quantity'];
}
}
要
foreach ($products as $product) {
$product_total = 0;
$product_total += $product['quantity'];