2017-06-21 4 views
1

Pour mon projet Opencart 1.5.4, nous avons fixé la quantité minimum de 12 pour le produit. Si l'utilisateur sélectionne la quantité inférieure à 12, il ne permettra pas à l'utilisateur de l'acheter (Opencart valide ceci sur la page du panier). Mais si l'utilisateur sélectionne le même produit dans le groupe de l'option différente (petite, moyenne, grande) individuelle de moins de 12, alors il peut passer la commande.Opencart 1.5.4 - ne pas valider la quantité de commande minimum pour différentes options du même produit

Par exemple.

Produit A (faible) 6 Quantité

A du produit (moyenne) 6 Quantité

Un produit (large) 10 Quantité

quantité totale est de 22.

Mais je veux que la quantité d'article individuel est minimum 12 comme ci-dessous,

Un produit (petit) 12 Quantité (minimum 12)

A du produit (moyenne) 12 Quantité (minimum 12)

Un produit (large) 12 Quantité (minimum 12)

Opencart n'est pas traitée différentes options que les différents produits dans le panier et l'utilisateur peut facilement acheter un produit individuel en moins de 12 quantité.

Quelqu'un peut-il me suggérer pourquoi cela se produit et comment résoudre ce problème? Toute extension est disponible pour cela?

+0

Je ne sais pas, mais si vous définissez une règle personnalisée pour cette validation? –

+0

@SougataBose Opencart ne fournit pas de fonction de règle personnalisée par défaut. – Narayan

+0

@SougataBose vérifier la réponse J'ai trouvé la solution :) – Narayan

Répondre

1

J'ai trouvé la solution de ce problème, pour cela je dois faire des changements dans le et le contrôleur de caisse. Par défaut, Opencart calcule la quantité de produit sur la page du panier par identifiant de produit. J'ai personnalisé le code et maintenant il va vérifier la quantité individuelle de chaque produit dans le panier.

contrôleur Panier ==> Cart.php \ catalog \ contrôleur \ caisse \ cart.php apporter des modifications dans la ligne n ° 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']) 
    } 
} 

Pour

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

Contrôleur de caisse ==> checkout.php \ catalog \ controller \ checkout \ checkout.php faire des changements dans la ligne n ° 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']; 
      } 
     } 

Pour

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