[-] MO loyalty : categories are now taken into account when creating discount vouchers
#PNM-1492 #PNM-1191 #PNM-1223
This commit is contained in:
@@ -106,10 +106,39 @@ class LoyaltyDefaultModuleFrontController extends ModuleFrontController
|
||||
$cart_rule->name[(int)$language['id_lang']] = $text ? strval($text) : strval($default_text);
|
||||
}
|
||||
|
||||
if (is_array($categories) && count($categories))
|
||||
$cart_rule->add(true, false, $categories);
|
||||
else
|
||||
$cart_rule->add();
|
||||
|
||||
$contains_categories = is_array($categories) && count($categories);
|
||||
if ($contains_categories)
|
||||
$cart_rule->product_restriction = 1;
|
||||
$cart_rule->add();
|
||||
|
||||
//Restrict cartRules with categories
|
||||
if ($contains_categories)
|
||||
{
|
||||
|
||||
//Creating rule group
|
||||
$id_cart_rule = (int)$cart_rule->id;
|
||||
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule_group (id_cart_rule, quantity) VALUES ('$id_cart_rule', 1)";
|
||||
Db::getInstance()->execute($sql);
|
||||
$id_group = (int)Db::getInstance()->Insert_ID();
|
||||
|
||||
//Creating product rule
|
||||
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule (id_product_rule_group, type) VALUES ('$id_group', 'categories')";
|
||||
Db::getInstance()->execute($sql);
|
||||
$id_product_rule = (int)Db::getInstance()->Insert_ID();
|
||||
|
||||
//Creating restrictions
|
||||
$values = array();
|
||||
foreach ($categories as $category) {
|
||||
$category = (int)$category;
|
||||
$values[] = "('$id_product_rule', '$category')";
|
||||
}
|
||||
$values = implode(',', $values);
|
||||
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule_value (id_product_rule, id_item) VALUES $values";
|
||||
Db::getInstance()->execute($sql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Register order(s) which contributed to create this voucher
|
||||
if (!LoyaltyModule::registerDiscount($cart_rule))
|
||||
|
||||
Reference in New Issue
Block a user