参考自http://fragmentedthought.com/fragments/programatically-creating-sales-rule-coupon-code

上面的代码只能生成Coupon Code,却不能使用,需加入

$coupon->setType(Mage_SalesRule_Helper_Coupon::COUPON_TYPE_SPECIFIC_AUTOGENERAT‌​ED)->save();

整合后可以使用的代码如下:

 // Get the rule id
$rule = Mage::getModel('salesrule/rule')->load(1); // Define a coupon code generator model instance
// Look at Mage_SalesRule_Model_Coupon_Massgenerator for options
$generator = Mage::getModel('salesrule/coupon_massgenerator'); $parameters = array(
'count'=>1,
'format'=>'alphanumeric',
'dash_every_x_characters'=>4,
'prefix'=>'test',
'suffix'=>'test2',
'length'=>12
); if( !empty($parameters['format']) ){
switch( strtolower($parameters['format']) ){
case 'alphanumeric':
case 'alphanum':
$generator->setFormat( Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHANUMERIC );
break;
case 'alphabetical':
case 'alpha':
$generator->setFormat( Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHABETICAL );
break;
case 'numeric':
case 'num':
$generator->setFormat( Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_NUMERIC );
break;
}
} $generator->setDash( !empty($parameters['dash_every_x_characters'])? (int) $parameters['dash_every_x_characters'] : 0);
$generator->setLength( !empty($parameters['length'])? (int) $parameters['length'] : 6);
$generator->setPrefix( !empty($parameters['prefix'])? $parameters['prefix'] : '');
$generator->setSuffix( !empty($parameters['suffix'])? $parameters['suffix'] : ''); // Set the generator, and coupon type so it's able to generate
$rule->setCouponCodeGenerator($generator);
$rule->setCouponType( Mage_SalesRule_Model_Rule::COUPON_TYPE_AUTO ); // Get as many coupons as you required
$count = !empty($parameters['count'])? (int) $parameters['count'] : 1;
$codes = array();
for( $i = 0; $i < $count; $i++ ){
$coupon = $rule->acquireCoupon();
$coupon->setType(Mage_SalesRule_Helper_Coupon::COUPON_TYPE_SPECIFIC_AUTOGENERATED)->save();
$code = $coupon->getCode();
$codes[] = $code;
}
return $codes;
}

最新文章

  1. ubuntu下安装mysql, eclipse, tomcat
  2. Windows 2003上 SaltStack/Salt 和 psutil 可能存在的问题及解决
  3. Spring4.1.6 标签注解大全以及解释
  4. 转:Java NIO系列教程(九) Pipe
  5. ML 03、机器学习的三要素
  6. BZOJ 4285 使者
  7. QTP插入Output Value和插入CheckPoint,注意点
  8. -bash: ulimit: open files: cannot modify limit: Operation not permitted
  9. Hive 5、Hive 的数据类型 和 DDL Data Definition Language)
  10. asp.net repeater控件操作
  11. java基础之操作符
  12. 字符串a-b
  13. python3.7之12306抢票脚本实现
  14. mysql8:caching-sha2-password问题
  15. Linux Time_wait网络状态 调优
  16. ros新建的包找不到
  17. android -------- Data Binding的使用(二)
  18. PHP之高性能I/O框架:Libevent(一)
  19. 20155333 《网络对抗》Exp4 恶意代码分析
  20. 记spring mvc传入List&lt;Object&gt;的一次尝试

热门文章

  1. sendEmail实现邮件报警发送
  2. 【nginx】【转】Nginx核心进程模型
  3. Centos 6.x 安装Nagios及WEB管理nagiosql实现windows及linux监控指南
  4. VS2015 android 设计器不能可视化问题解决。
  5. Deepin-安装QQ音乐(Windows程序)
  6. android 自己主动拒接后再取消自己主动拒接,该联系人来电界面无图标显示,且点击挂断无反应
  7. linux入门基础——linux软件管理RPM
  8. [转] logback 常用配置详解(序)logback 简介
  9. druid 参考配置
  10. iOS开发——高级篇——iOS涂鸦画板效果实现