2.在多个都道府县取消免运费条件时

在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreprocessor.php。

<?phpnamespace Customize\Service\PurchaseFlow\Processor;use Eccube\Annotation\ShoppingFlow;
use Eccube\Entity\BaseInfo;
use Eccube\Entity\ItemHolderInterface;
use Eccube\Entity\Order;
use Eccube\Repository\BaseInfoRepository;
use Eccube\Repository\Master\PrefRepository;
use Eccube\Service\PurchaseFlow\ItemHolderPreprocessor;
use Eccube\Service\PurchaseFlow\Processor\DeliveryFeePreprocessor;
use Eccube\Service\PurchaseFlow\PurchaseContext;/*** @ShoppingFlow()** Class DeliveryFeeFreeByShippingPreprocessor* @package Customize\Service\PurchaseFlow\Processor*/
class DeliveryFeeFreeByShippingPreprocessor implements ItemHolderPreprocessor
{/*** @var BaseInfo*/protected $BaseInfo;/*** @var PrefRepository*/private $prefRepository;public function __construct(BaseInfoRepository $baseInfoRepository,PrefRepository $prefRepository){$this->BaseInfo = $baseInfoRepository->get();$this->prefRepository = $prefRepository;}/*** @param ItemHolderInterface $itemHolder* @param PurchaseContext $context*/public function process(ItemHolderInterface $itemHolder, PurchaseContext $context){if (!($this->BaseInfo->getDeliveryFreeAmount() || $this->BaseInfo->getDeliveryFreeQuantity())) {return;}// Orderif ($itemHolder instanceof Order) {/** @var Order $Order */$Order = $itemHolder;foreach ($Order->getShippings() as $Shipping) {$isFree = false;$total = 0;$quantity = 0;foreach ($Shipping->getProductOrderItems() as $Item) {$total += $Item->getPriceIncTax() * $Item->getQuantity();$quantity += $Item->getQuantity();}// 配送金额超if ($this->BaseInfo->getDeliveryFreeAmount()) {if ($total >= $this->BaseInfo->getDeliveryFreeAmount()) {$isFree = true;}}// 配送数量超if ($this->BaseInfo->getDeliveryFreeQuantity()) {if ($quantity >= $this->BaseInfo->getDeliveryFreeQuantity()) {$isFree = true;}}// 免费处理if ($isFree) {foreach ($Shipping->getOrderItems() as $Item) {if ($Item->getProcessorName() == DeliveryFeePreprocessor::class) {$Prefs = $this->prefRepository->findBy(['name' => ['沖縄県', '東京都']]);foreach ($Prefs as $Pref) {if ($Shipping->getPref() === $Pref) {$Item->setQuantity(1);break;}}}}}}}}
}

如何使用 EC-CUBE4 取消指定县的免费送货条件(多个地区)相关推荐

  1. 如何使用 EC-CUBE4 取消指定县的免费送货条件(单个地区)

    1,如果您只在冲绳县取消免费送货条件 在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreproce ...

  2. ECCUBE4 取消部分地区的免运费条件,将地区的运费减半至设定金额的一半时

    在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreprocessor.php. namespace ...

  3. excel怎么批量提取指定网站内容-免费指定网站提取导出excel软件

    excel怎么批量提取指定网站内容?Excel是人们经常使用的一种办公软件,掌握正确的使用方法和技巧是很有用的Excel是Microsoft为使用Windows和Apple Macintosh操作系统 ...

  4. oracle 只导出指定的表格,expdp带条件导出单个表的数据

    [oracle@testdb dmp]$ expdp \"testuser/testuser\" DIRECTORY=dpump_dir dumpfile=kevin.dmp ta ...

  5. java中map删除指定元素_Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...

  6. NopCommerce功能与特点介绍

    [本文转自]http://www.cnblogs.com/nopcommerce-b2c/p/3758676.html 前两节我们主要介绍了NopCommerce下载与安装和NopCommerce中文 ...

  7. 取消显示fps的指令_机器人控制指令介绍(一)

    本文旨在通过指令介绍及程序示例帮助读者了解和学习I/O指令.IF\SELECT指令.WAIT指令.JMP/LBL指令.CALL指令以及FOR\ENDFOR指令的使用方法及注意事项.1.I/O指令I/O ...

  8. C语言指定编译对齐方式

    什么是对齐,以及为什么要对齐:    现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就 ...

  9. 微信小程序图片上传和预览以及取消上传图片案例

    前言: 做小程序项目遇到一个需求,就是上传图片和预览,以及取消指定的图片,其实这个功能挺好搞的,借助微信官方的API结合实现,只不过注意一点细节.不多说了直接上代码和效果图.大家可以直接复制我的代码进 ...

最新文章

  1. 远程控制软件VNC教程和对内网机器控制的实现
  2. 2021-07-23 B站观看力扣算法视频第一天
  3. hdu2722 简单最短路,处理好输入就行
  4. c语言mfc弹出窗口函数,CMFCDesktopAlertWnd实现桌面弹出消息框
  5. java查询数组中元素的索引
  6. Jeewx企业号系统入门配置指南
  7. 05引用类型以及特殊引用类型string
  8. Hyper-V Server 虚拟光纤通道
  9. 从原子操作走向模板部署,详解云上资源自动化部署新模式
  10. 国考地市级各题型分值分布(数量关系10题,其他题型同省级试题相同,共130题)——仅供参考
  11. 计算机的标准输入法,维语输入法电脑版
  12. 在虚拟机下安装配置Linux和Oracle
  13. 计算平均成绩 (10分)
  14. html颜色代码 糖果色,75平米糖果色跃层家 绚丽色彩散发迷人魅力
  15. 研发团队角色与职责分析
  16. monthly rollup和security only的区别
  17. Linux升级gcc到最新版本--gcc-9.1.0
  18. 2021年N1叉车司机证考试及N1叉车司机模拟考试题库
  19. 机器学习_深度学习毕设题目汇总——皮肤_癌症_糖尿病
  20. python 圆形的词云

热门文章

  1. 工业液晶触摸屏检测修复有哪些方式?
  2. AVL树(平衡二叉搜索树)
  3. Spring+SpringMVC+MyBatis框架的整合详细过程
  4. 浏览器对于网络安全做了什么
  5. 5.监听器(Listener)
  6. MySQL日期格式化函数 DATE_FORMAT
  7. 图灵学院java架构师VIP课程学习总结
  8. 用Python做数据商品情感分析(商品评论数据情感分析)
  9. linux tail 自动刷新,Linux命令: tail
  10. 小红书22届校招薪资待遇怎么样?值得进吗?