Magento折扣优惠券代码是动态创建的,但工作不正常

Magento折扣优惠券代码是动态创建的,但工作不正常,magento,Magento,以下是我的代码,用于动态创建优惠券代码: $productId = (int) $this->getRequest()->getParam('id'); $discountprice=$_POST['product']['discountprice']; $model = Mage::getModel('salesrule/rule'); $couponCode=generateUniqueId(8); $mode

以下是我的代码,用于动态创建优惠券代码:

$productId  = (int) $this->getRequest()->getParam('id'); 
        $discountprice=$_POST['product']['discountprice']; 
        $model = Mage::getModel('salesrule/rule');
        $couponCode=generateUniqueId(8);
        $model->setName($couponCode);
        $model->setCouponCode($couponCode);
        $model->setDescription('Discount coupon for Surger.');
        $model->setUsesPerCoupon(1);
        $model->setUsesPerCustomer(1);
        $model->setCustomerGroupIds('0,1');
        $model->setIsActive(1);
       // $model->setConditionsSerialized('a:6:{s:4:\"type\";s:32:\"salesrule/rule_condition_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        //$model->setActionsSerialized('a:6:{s:4:\"type\";s:40:\"salesrule/rule_condition_product_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        $model->setStopRulesProcessing(0);
        $model->setIsAdvanced(1);
        $model->setProductIds($productId);
        $model->setSortOrder(1);
        $model->setSimpleAction('by_percent');
        $model->setDiscountAmount($discountprice);
        $model->setDiscountStep(0);
        $model->setSimpleFreeShipping(0);
        $model->setTimesUsed(0);
        $model->setIsRss(0);
        $model->setWebsiteIds('1');
        $model->save();
但是,当我检查特定产品时,折扣会自动应用,我的要求是在“折扣代码”框中输入代码后必须应用折扣,而且当我在“折扣代码”框中输入代码时,显示代码无效


请帮助任何人。我也在尽力解决这个问题;如果我找到了任何解决方案,我会把它放在这里。

感谢您查看我的问题答案代码在这里您可以自己设置coupan代码,并在结帐时应用它

function generateUniqueId($length = null)
    {
        $rndId = crypt(uniqid(rand(),1));
        $rndId = strip_tags(stripslashes($rndId));
        $rndId = str_replace(array(".", "$"),"",$rndId);
        $rndId = strrev(str_replace("/","",$rndId));
            if (!is_null($rndId)){
            return strtoupper(substr($rndId, 0, $length));
            }
        return strtoupper($rndId);
    }
    /* create unique coupan code */

        $productId  = (int) $this->getRequest()->getParam('id'); 
        $discountprice=$_POST['product']['discountprice']; 
        $model = Mage::getModel('salesrule/rule');
        $couponCode=generateUniqueId(8);
        $model->setName($couponCode);
        $model->setDescription('Discount coupon for Surger.');
        $model->setUsesPerCoupon(1);
        $model->setUsesPerCustomer(1);
        $model->setCustomerGroupIds('0,1');
        $model->setIsActive(1);
       // $model->setConditionsSerialized('a:6:{s:4:\"type\";s:32:\"salesrule/rule_condition_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        //$model->setActionsSerialized('a:6:{s:4:\"type\";s:40:\"salesrule/rule_condition_product_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        $model->setStopRulesProcessing(0);
        $model->setIsAdvanced(1);
       // $model->setProductIds($productId);
        $model->setSortOrder('0');
        $model->setSimpleAction('by_percent');
        $model->setDiscountAmount($discountprice);
        $model->setDiscountStep(0);
        $model->setSimpleFreeShipping(0);
        $model->setCouponType(2);
        $model->setCouponCode($couponCode);
        $model->setUsesPerCoupon(1);
        $model->setTimesUsed(0);
        $model->setIsRss(0);
        $model->setWebsiteIds('1');
        $model->save();
require_once('app/Mage.php');
Mage::app('default');
函数generateUniqueId($length=null)
{
$rndId=crypt(uniqid(rand(),1));
$rndId=strip_标记(stripslashes($rndId));
$rndId=str_replace(数组(“.”、“$”)、“$rndId”);
$rndId=strrev(str_替换(“/”,“,$rndId));
如果(!为空($rndId)){
返回strtoupper(substr($rndId,0,$length));
}
返回strtoupper($rndId);
}
/*创建唯一优惠券代码*/
对于($cc=0;$ccgetRequest()->getParam('id');
$discountprice=1;//$\发布['product']['discountprice'];
$model=Mage::getModel('salesrule/rule');
$couponCode=generateUniqueId(8);
$model->setName($couponCode);
$model->setDescription('浪涌折扣券');
$model->setUsesPerCoupon(1);
$model->setUsesPerCustomer(1);
$model->setCustomerGroupId('0,1');
$model->setIsActive(1);
//$model->setConditionsSerialized('a:6:{s:4:\'type\'s:32:\'salesrule/rule\'u condition\'u combine\'s:9:'attribute\'N;s:8:'operator\'N;s:5:'value\'s:1:'s:18:'is\'u value\'u processed\'N;N;s:10:'aggregator\'s:3:'all\';
//$model->setActionsSerialized('a:6:{s:4:\'type\'s:40:\'salesrule/规则条件产品组合\'s:9:'attribute\'N;s:8:'operator\'N;s:5:'value\'s:1:'s:18:'isu value\'processed\'N;s:10:'aggregator\'s:3:'all\';
$model->setStopRulesProcessing(0);
$model->setIsAdvanced(1);
//$model->setproductid($productId);
$model->setSortOrder('0');
$model->setSimpleAction('by_percent');
$model->setDiscountAmount($discountprice);
$model->setDiscountStep(0);
$model->setSimpleFreeShipping(0);
$model->setCouponType(2);
$model->setCouponCode($couponCode);
$model->setUsesPerCoupon(1);
$model->setTimesUsed(0);
$model->setIsRss(0);
$model->setWebsiteIds('1');
$model->save();
}
回声‘ok’;
这是我创建1000张优惠券的代码

  • 将$model->save();置于循环之外

  • 您应该设置正确的$productId


  • 小提示:$model->setUsesPerCoupon(1)在代码中加倍。
    require_once('app/Mage.php');
    Mage::app('default');
    function generateUniqueId($length = null)
    {
        $rndId = crypt(uniqid(rand(),1));
        $rndId = strip_tags(stripslashes($rndId));
        $rndId = str_replace(array(".", "$"),"",$rndId);
        $rndId = strrev(str_replace("/","",$rndId));
            if (!is_null($rndId)){
            return strtoupper(substr($rndId, 0, $length));
            }
        return strtoupper($rndId);
    }
    /* create unique coupon code */
    for($cc = 0 ; $cc<15 ; $cc++){
        $productId  = 297;//(int) $this->getRequest()->getParam('id'); 
        $discountprice= 1;//$_POST['product']['discountprice']; 
        $model = Mage::getModel('salesrule/rule');
        $couponCode=generateUniqueId(8);
        $model->setName($couponCode);
        $model->setDescription('Discount coupon for Surger.');
        $model->setUsesPerCoupon(1);
        $model->setUsesPerCustomer(1);
        $model->setCustomerGroupIds('0,1');
        $model->setIsActive(1);
       // $model->setConditionsSerialized('a:6:{s:4:\"type\";s:32:\"salesrule/rule_condition_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        //$model->setActionsSerialized('a:6:{s:4:\"type\";s:40:\"salesrule/rule_condition_product_combine\";s:9:\"attribute\";N;s:8:\"operator\";N;s:5:\"value\";s:1:\"1\";s:18:\"is_value_processed\";N;s:10:\"aggregator\";s:3:\"all\";}');
        $model->setStopRulesProcessing(0);
        $model->setIsAdvanced(1);
       // $model->setProductIds($productId);
        $model->setSortOrder('0');
        $model->setSimpleAction('by_percent');
        $model->setDiscountAmount($discountprice);
        $model->setDiscountStep(0);
        $model->setSimpleFreeShipping(0);
        $model->setCouponType(2);
        $model->setCouponCode($couponCode);
        $model->setUsesPerCoupon(1);
        $model->setTimesUsed(0);
        $model->setIsRss(0);
        $model->setWebsiteIds('1');
        $model->save();
        }
        echo 'ok';