首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用优惠券代码引用外部脚本Magento

应用优惠券代码引用外部脚本Magento
EN

Stack Overflow用户
提问于 2016-05-28 07:29:15
回答 1查看 874关注 0票数 2

我想应用优惠券代码从外部脚本,这将设置代码和折扣金额报价和最终结果将保存报价与新的总数。我已经做了以下,但没有保留报价。

代码语言:javascript
复制
        $quoteid = "53701";
    $couponCode = "Discount99";
    $oCoupon = Mage::getModel('salesrule/coupon')->load(trim($couponCode), 'code');
    $oRule = Mage::getModel('salesrule/rule')->load($oCoupon->getRuleId());

    if($oRule->getRuleId() && $oRule->getRuleId() > 0){
        try{
            $quoteObj = Mage::getModel('sales/quote')->setCouponCode($oCoupon)->load($quoteid);
            $quoteObj->setTotalsCollectedFlag(true)
                ->collectTotals()
                ->save();
            $returndata["success"] = "1";
            $returndata["message"] = "Coupon Applied Successfully";
            $returndata["data"]["discount_amount"] = $oRule->getDiscountAmount();
        }catch (Exception $e){
            $returndata["success"] = "0";
            $returndata["message"] = "Cart Coupon update Failed";
            $returndata["data"] = null;
        }
    }else{
        $returndata["success"] = "0";
        $returndata["message"] = "Invalid Coupon";
        $returndata["data"] = null;
    }
    echo json_encode($returndata);
    exit;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-28 09:01:26

代码语言:javascript
复制
$quoteid = '53703';
$couponCode = "cvpcode2013";

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

if($oRule->getRuleId() && $oRule->getRuleId() > 0){
    try{
        $quote = $this->_getQuote($quoteid,Mage::app()->getStore()->getStoreId());
        $quote->setCouponCode($couponCode);
        $quote->setTotalsCollectedFlag(false)->collectTotals();
        $quote->collectTotals();
        $quote->save();
    }catch (Exception $e){
            echo $e->getMessage();
    }
}else{
    // invalid coupon
}

// create new function 

protected function _getQuote($quoteId, $store = null)
{

        $quote = Mage::getModel("sales/quote");
        if (!(is_string($store) || is_integer($store))) {
            $quote->loadByIdWithoutStore($quoteId);
        } else {
            $storeId = $store;
            $quote->setStoreId($storeId)
                    ->load($quoteId);
        }
        if (is_null($quote->getId())) {
            $this->_fault('quote_not_exists');
        }

        return $quote;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37496413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档