Opencart 1.5.4 - 不验证同一产品不同选项的最小订购量

Opencart 1.5.4 - not validate minimum order quantity for different option of same product

对于我的 Opencart 1.5.4 项目,我们已将产品的最小数量设置为 12。如果用户 select 数量少于 12 个,则不允许用户购买(Opencart 在购物车页面上验证了这一点)。但是,如果用户select在不同选项(小,中,大)组中的相同产品小于12,则他可以下订单。

例如

Product A (small) 6 Qty

Product A (medium) 6 Qty

Product A (large) 10 Qty

Total quantity is 22.

但是我想要单个商品的数量是 minimum 12,如下所示,

Product A (small) 12 Qty (minimum 12)

Product A (medium) 12 Qty (minimum 12)

Product A (large) 12 Qty (minimum 12)

Opencart 不会将不同的选项视为购物车中的不同产品,用户可以轻松购买数量少于 12 件的单个产品。

谁能告诉我为什么会发生这种情况以及如何解决这个问题?有任何扩展可用吗?

我找到了这个问题的解决方案,为此我必须在 购物车和结帐控制器 中进行更改。默认情况下,Opencart 根据产品 ID 计算购物车页面上的产品数量。我已经自定义了代码,现在它会检查购物车中每个产品的单独数量。

Cart controller ==> Cart.php \catalog\controller\checkout\cart.php make changes in line no 192 to 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']) 
    }
}

To

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>";
                }

Checkout controller ==> checkout.php \catalog\controller\checkout\checkout.php make changes in line no 15 to 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'];
            }
        }

To

foreach ($products as $product) {
    $product_total = 0;         
    $product_total += $product['quantity'];