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

namespace 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) {// 不适用免费运费条件的都道府县相匹配的话,运费明细的数量为1$Prefs = $this->prefRepository->findBy(['name' => ['沖縄県', '東京都']]);foreach ($Prefs as $Pref) {if ($Shipping->getPref() === $Pref) {$Item->setQuantity(1);// 如果想设定都道府县不同运费的一半的话,请追加这个费用$Item->setPrice(round ($Item->getPrice()/2));break;}}}}}}}}
}

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

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

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

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

    2.在多个都道府县取消免运费条件时 在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreproces ...

  3. 国内免备案条件是什么,网站备案步骤有哪些

      在现在这个数据信息时代,互联网已是覆盖了我们的日常.各大公司企业申请了企业域名,在企业官网上展示企业风采宣传企业文化.在各种电商平台.视频网站.门户网站,有各种各样的商品等着我们购买,各种各样的信 ...

  4. 计算机学院吉林大学夏令营,2020年吉林大学计算机科学与技术学院夏令营接收推免生条件...

    2020年推荐免试硕士研究生招生正在开展,为方便考生深入了解优秀营员及入营名单的相关事宜,中公考研小编整理了"2020年吉林大学计算机科学与技术学院夏令营接收推免生条件"内容,希望 ...

  5. 东南计算机研究生英语免修条件,关于2020级研究生(硕士、博士)办理学位英语免修的通知...

    根据<杭州电子科技大学关于加强研究生课程教学管理的相关规定>(杭电研[2018]155号)有关规定,现将2020级研究生申请学位英语免修的相关事宜通知如下: 一.关于研究生学位英语课程免修 ...

  6. php几个时间段去除重复,一个时间段内各地区数据和,发现重复地区不相加

    有2个表 第一个表是f_city(字段:city_id和字段city_name) 第二个表是f_chengjiao(字段:id.city_id.area.taoshu.fang_time) 关联字段是 ...

  7. java运费模板设计,拼多多运费模板怎么设置

    运费模版的设置尤为重要,常常有商家朋友们来咨询运费模板在哪里设置?运费模板怎么设置?运费模板设置好了要如何使用呢?为什么明明设置好了,买家却购买不了?本章节将会统统告诉您哦! 一.什么是运费模版 1. ...

  8. 数据库地区表sql语句,数据库地区表包含省市县

    数据库地区表sql语句,数据库地区表包含省市县 包含省市县的数据表,需要的可以参考,sql语句一个博客字数太多发布不了,剩下的在下一个博客里面,之前也是在网上找的,感谢分享 -- ---------- ...

  9. 中大计算机研究生英语免修条件,通知|关于接受2017级理科研究生 基础英语课程免修免考申请的通知...

    原标题:通知|关于接受2017级理科研究生 基础英语课程免修免考申请的通知 各院系: 根据<中山大学文理科研究生公共课管理办法>的规定,对第一外国语水平较高的研究生,可申请在读期间免修免考 ...

最新文章

  1. Debug 和 Release 编译方式
  2. 光流 | 稠密光流估计(基于LK光流)(源代码分享)
  3. Linux centos 6.7 设置主机名
  4. 聚类(上)K-mean算法
  5. 官博翻译 | .NET Core 即 .NET 的未来
  6. vue点击切换类名_vue 新用户引导(vue-dirver)
  7. RxJava学习(四利用RxJava打造自己的RxBus)
  8. 离线安装wxpython_windows离线状态下源码安装Robotframework 环境及其依赖包
  9. 开源,自由,免费, 商业,收费,共享. 这些都不矛盾. 细数网络发展中的免费与收费....
  10. 08.存储Cinder→5.场景学习→12.Ceph Volume Provider→5.Detach Volume
  11. pythonATM,购物车项目实战4-settings配置设置
  12. python函数进阶小结_Python 函数3000字使用总结
  13. 商务经济与统计中涉及到的所有公式
  14. 大数据第一季--java基础(day22)-徐培成-专题视频课程
  15. python xlwt_Python xlwt导出excel完整版
  16. BGA封装扇出过孔-BGA芯片的布局布线技巧
  17. DAY1古典概型和几何概型
  18. KILE生成S19或者BIN文件
  19. echarts 立体柱状图(多个柱状图)
  20. 华南师范大学计算机考研考场,华南师范大学2018考研考场安排

热门文章

  1. [nlp] SQuAD 数据集介绍(Q+A+原文)
  2. linux 下串口编程VTIME和VMIN的设置(转)
  3. 逻辑为基、数企赋能(NO.5)—逻辑思维层次
  4. 微型计算机主频的参数是,CPU性能衡量参数-主频,MIPS,CPI,时钟周期,机器周期,指令周期...
  5. SAP B1销售预测报错:物料的xx个预测是同一日期
  6. leetcode 烹饪料理
  7. 新政后上海楼市现奇葩业主:建群广拉中介 “传销式”寻接盘侠
  8. c语言罗马数字转十进制,将罗马数字转换为十进制
  9. html实现表格的跨行、跨列
  10. Cesium 点击广告牌(Billboard)显示自定义文字信息展示弹框(vue项目记录)