How to Create Shopping Cart Price Rule programmatically
Here is the code snippet by wich we can create magento shopping cart price rule, i.e the rule
which is applide on shopping cart while customer add his/her product to shopping cart.
shopping cart price rule can be divided in 3 parts
1. Information of the rule
2. Condition that will be applied on the rule.
3. Action that will be taken.
[php]
$name = "cutom programmatically created rule"; // name of Rule
$websiteId = 1;
$customerGroupId = 2;
$actionType = ‘by_percent’; // discount by percentage(other options are: by_fixed, cart_fixed, buy_x_get_y)
$discount = 10; // percentage discount
$sku = ‘RBT67’; // product sku
$shoppingCartPriceRule = Mage::getModel(‘salesrule/rule’);
$shoppingCartPriceRule
->setName($name)
->setDescription(”)
->setIsActive(1)
->setWebsiteIds(array($websiteId))
->setCustomerGroupIds(array($customerGroupId))
->setFromDate(”)
->setToDate(”)
->setSortOrder(”)
->setSimpleAction($actionType)
->setDiscountAmount($discount)
->setStopRulesProcessing(0);
$skuCondition = Mage::getModel(‘salesrule/rule_condition_product’)
->setType(‘salesrule/rule_condition_product’)
->setAttribute(‘sku’)
->setOperator(‘==’)
->setValue($sku);
try {
$shoppingCartPriceRule->getConditions()->addCondition($skuCondition);
$shoppingCartPriceRule->save();
$shoppingCartPriceRule->applyAll();
} catch (Exception $e) {
Mage::getSingleton(‘core/session’)->addError(Mage::helper(‘catalog’)->__($e->getMessage()));
return;
}
[/php]
How to only create a condition usable in admin ui, based for example on previous orders ? I’d like administrators to be able to create new cart rules based on these new conditions (product types previously bought, number of products in previous orders, or so).
TIA, Thomas