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. usaco shuttle puzzle(dfs剪枝)
  2. C#:CsvReader读取.CSV文件(转换成DataTable)
  3. where 1=1 是什么鬼?
  4. Maximum XOR Sum 系列问题
  5. 基于APK的自动化测试
  6. linux+路由器信号检测工具,Linux下常用网络故障调试工具介绍之Ping命令使用
  7. C和指针之字符串编程练习11(统计一串字符包含the的个数)
  8. 美图技术博客之地理空间距离计算优化
  9. android cygwin离线安装包,Cygwin配合NDK开发Android程序
  10. mysql odbc 没有_如何解决mysql odbc安装丢失的问题
  11. 启动错误Passenger::SecurityException “Line too long”
  12. HHTC第十二届程序设计竞赛
  13. 抖音同款 抖音 城堡 微信背景图,抖音城堡微信背景图
  14. 【Java】SpringBoot后端格式转换:把Word转成PDF再按页转成图片在前端展示(Linux)
  15. mysql基础入门SQL基本语法
  16. Shell/Linux使用Jq操作Json
  17. Oracle数据库文件
  18. 抗疫行动题材网页设计 大学生最美逆行者感动人物网页代码 众志成城万众一心抗击疫情HTML网页设计
  19. 2020,我用Python写春联
  20. python实现给pdf文件加骑缝章效果

热门文章

  1. Typecho博客搭建教程
  2. .NET转JAVA之拼音组件
  3. 冷饮热饮都能做,七彩叮当破壁机体验
  4. 他们靠什么取胜电商大战
  5. python处理文件常用到的函数
  6. 单片机中的液晶显示器
  7. 用Github pages搭建自己制作的网页
  8. 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String异常的
  9. 激光雷达建图之cartographer建图
  10. 如何区别python的主程序和子程序_主程序和子程序的区别