2012-05-10 21 views
10

Tengo que recuperar la regla asociada a un código de cupón para mostrar el porcentaje de descuento de esa regla. la forma más sencilla es calcular directamente a partir de los importes de las cotizaciones, pero quiero recuperar directamente la regla y luego obtener el porcentaje de descuento de la misma.Magento: obtener la regla del código de cupón

esto es lo que he intentado:

$rule = Mage::getModel('salesrule/coupon'); 
$rule->load($couponCode); 

de esta manera yo todavía havent reglas recuperados atributos. ¿alguna ayuda?

gracias.

Respuesta

29

Para cargar un cupón por código, pase 'code' como 2do parámetro a load(). A continuación, se puede obtener la instancia de norma adecuada utilizando el valor de la instancia rule_id cupón:

$oCoupon = Mage::getModel('salesrule/coupon')->load($couponCode, 'code'); 
$oRule = Mage::getModel('salesrule/rule')->load($oCoupon->getRuleId()); 
var_dump($oRule->getData()); 
+0

Funcionan correctamente. – jruzafa

3

En primer lugar obtener el código de cupón

$orderNumber = 100000105; //order number with coupon code 

$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber); 

$orderDetails = $order->getData(); 

$couponCode = $orderDetails['coupon_code']; 

entonces utilizar la solución de Jürgen Thelen.

0

Puede ser esta solución le ayudará a obtener la cantidad de código de cupón por código de cupón.

$ couponCode = 'SU COUPONCODE';

$ oCoupon = Mage :: getModel ('salesrule/cupón') -> load ($ couponCode, 'code');

$ oRule = Mage :: getModel ('salesrule/rule') -> load ($ oCoupon-> getRuleId());

print_r ($ oRule-> getData()); exit();

Cuestiones relacionadas