Establecer el descuento máximo para la regla de precio del carrito de compras de magento

Estoy tratando de establecer un monto máximo para una regla de precio de carrito de compras en magento. Esto es lo que estoy haciendo hasta ahora, funciona correctamente con un elemento, pero erróneamente con elementos múltiples: escuche el evento “salesrule_validator_process”.

recalcular el porcentaje de una regla

protected function _getPct($address, $rule_pct) { $pct = $rule_pct/100; $maxDiscount = 3000; //the maximum value of the rule $items = $this->_getAllItems($address); $total = 0; foreach($items as $item) { $total += ($this->_getItemPrice($item)); } if (($total*$pct)>=$maxDiscount) { return $maxDiscount/$total; } return $pct; } 

¿Alguien ha sido capaz de evitar eso? Estoy usando magento enterprise 1.13.0.2