Magento: setCouponCode no parece aplicar el cupón en el modelo de cotización

estamos utilizando Magento principalmente para transacciones y hemos reescrito la interfaz por completo a través de una aplicación personalizada. Tengo problemas para aplicar un código de cupón (regla de precio del carrito de compras) en un objeto de presupuesto. El código de cupón parece ser rechazado: setCouponCode no devuelve ningún error, pero getCouponCode devuelve una cadena vacía.

He verificado que el código del cupón es válido realizando una transacción a través del backend de administración. Aquí está el fragmento de código a continuación.

¿Puede alguien ayudarme a conseguir que el objeto del modelo de presupuesto acepte y aplique un código de cupón?

function add_coupon ($ shoppingCartId, $ couponcode)

    try {
            $quoteObj = Mage::getModel('sales/quote')->load($shoppingCartId);
            $quoteObj->getShippingAddress()->setCollectShippingRates(true);
            $quoteObj->getShippingAddress()->setCouponCode($coupon)
                    ->setTotalsCollectedFlag(true)
                    ->collectTotals()
                    ->save();
    } catch (Exception $e) {
            return array("status"=>"failed", "message"=>"Error applying coupon.");
    }
    if ($coupon) {
            if (!$coupon == $quoteObj->getCouponCode()) {
                    return array("status"=>"failed", "message"=>"Coupon code is not valid.");
            }
    }
    return array("status"=>"success");

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta