如何使用 EC-CUBE4 取消指定县的免费送货条件(多个地区)
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 取消指定县的免费送货条件(多个地区)相关推荐
- 如何使用 EC-CUBE4 取消指定县的免费送货条件(单个地区)
1,如果您只在冲绳县取消免费送货条件 在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreproce ...
- ECCUBE4 取消部分地区的免运费条件,将地区的运费减半至设定金额的一半时
在Customize/Service/PurchaseFlow/Processor目录下设置如下DeliveryFeeFreeByShippingPreprocessor.php. namespace ...
- excel怎么批量提取指定网站内容-免费指定网站提取导出excel软件
excel怎么批量提取指定网站内容?Excel是人们经常使用的一种办公软件,掌握正确的使用方法和技巧是很有用的Excel是Microsoft为使用Windows和Apple Macintosh操作系统 ...
- oracle 只导出指定的表格,expdp带条件导出单个表的数据
[oracle@testdb dmp]$ expdp \"testuser/testuser\" DIRECTORY=dpump_dir dumpfile=kevin.dmp ta ...
- java中map删除指定元素_Map中根据条件删除元素
今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...
- NopCommerce功能与特点介绍
[本文转自]http://www.cnblogs.com/nopcommerce-b2c/p/3758676.html 前两节我们主要介绍了NopCommerce下载与安装和NopCommerce中文 ...
- 取消显示fps的指令_机器人控制指令介绍(一)
本文旨在通过指令介绍及程序示例帮助读者了解和学习I/O指令.IF\SELECT指令.WAIT指令.JMP/LBL指令.CALL指令以及FOR\ENDFOR指令的使用方法及注意事项.1.I/O指令I/O ...
- C语言指定编译对齐方式
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就 ...
- 微信小程序图片上传和预览以及取消上传图片案例
前言: 做小程序项目遇到一个需求,就是上传图片和预览,以及取消指定的图片,其实这个功能挺好搞的,借助微信官方的API结合实现,只不过注意一点细节.不多说了直接上代码和效果图.大家可以直接复制我的代码进 ...
最新文章
- usaco shuttle puzzle(dfs剪枝)
- C#:CsvReader读取.CSV文件(转换成DataTable)
- where 1=1 是什么鬼?
- Maximum XOR Sum 系列问题
- 基于APK的自动化测试
- linux+路由器信号检测工具,Linux下常用网络故障调试工具介绍之Ping命令使用
- C和指针之字符串编程练习11(统计一串字符包含the的个数)
- 美图技术博客之地理空间距离计算优化
- android cygwin离线安装包,Cygwin配合NDK开发Android程序
- mysql odbc 没有_如何解决mysql odbc安装丢失的问题
- 启动错误Passenger::SecurityException “Line too long”
- HHTC第十二届程序设计竞赛
- 抖音同款 抖音 城堡 微信背景图,抖音城堡微信背景图
- 【Java】SpringBoot后端格式转换:把Word转成PDF再按页转成图片在前端展示(Linux)
- mysql基础入门SQL基本语法
- Shell/Linux使用Jq操作Json
- Oracle数据库文件
- 抗疫行动题材网页设计 大学生最美逆行者感动人物网页代码 众志成城万众一心抗击疫情HTML网页设计
- 2020,我用Python写春联
- python实现给pdf文件加骑缝章效果
热门文章
- Typecho博客搭建教程
- .NET转JAVA之拼音组件
- 冷饮热饮都能做,七彩叮当破壁机体验
- 他们靠什么取胜电商大战
- python处理文件常用到的函数
- 单片机中的液晶显示器
- 用Github pages搭建自己制作的网页
- 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String异常的
- 激光雷达建图之cartographer建图
- 如何区别python的主程序和子程序_主程序和子程序的区别