用户选择某些地址时,支付方式里则可以依据此地址来对货到付款选项进行显示或隐藏。目前仅与顺丰合作,以顺丰提供的数据为准。
使用到的数据库分别如下:
ecs_region//地方数据,PRIMARY KEY (`region_id`),
ecs_shipping_area //配送区域(序列配置),PRIMARY KEY (`shipping_area_id`),
ecs_shipping//配送(代码,名称,描述,保价费,状态),PRIMARY KEY (`shipping_id`),
ecs_area_region//配送区域关联(配送区域ID,具体地址ID),PRIMARY KEY (`shipping_area_id`, `region_id`)
ecs_payment //支付工具(代码,名称,费用,描述,排序, 配置,状态,是否货到付款)

页面功能解释:

ecshop采用smarty框架从而使数据与页面分离,购物车以及表单提交确认流程flow.php对应的页面显示为flow.dwt。
lib_order.php是购物流程函数库,用于与数据库ecshop数据库打交道,如取得已安装的配送方式,处理序列化的支付、配送的配置参数等。
shopping_flow.js是购物流程javascript函数库,用于页面上改变配送、支付方式等。
transport.js则是在页面与后台php之间起着传输的桥梁,二者之间采用json方式进行交互,通用接口Ajax.call对应于Transport.run。
通过购物车进行结算进入订单确认checkout的过程中,页面包含配送方式以及支付方式。
配送方式available_shipping_list读取用户的省、市、区编码分别从关联表ecs_region,ecs_shipping_area以及ecs_shipping取得可用的配送方式列表(其中包含支付、配送的配置参数,按照数组序列化方式存储到数据表ecs_shipping_area当中的configure字段)。 
支付方式available_payment_list读取配送方式是否支持货到付款,货到付款手续费及是否支持在线支付几个值来取得可用的支付方式列表。需求要求以顺丰提供的是否收送数据来进行货到付款判断,针对此情况可新建表单
CREATE TABLE `ecs_shipping_region_cod` (
  `shipping_id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', //配送方式id,与ecs_shipping中的shipping_id一致
  `region_id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', //地方ID,与ecs_region中的region_id一致。
  `is_cod` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',     //是否收送到达字段,1为可收送,0为不可收送,需自行到指定地方提取
  PRIMARY KEY (`shipping_id`, `region_id`)
)ENGINE=MyISAM
ROW_FORMAT=FIXED CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
 

在取得配送方式字段support_cod的基础上,通过配送方式shipping_id以及地区ID参数读取ecs_shipping_region_cod,判断`ecs_shipping_region_cod` 中的is_cod为0以及配送方式id为顺丰时,修改support_cod为0.具体如下:

$payment_cod = get_payment_code($shipping_list[$key]['shipping_id'], $consignee['district']);
if($payment_cod['is_cod'] == 0 && $payment_cod['shipping_id'] == 8){
    $val['support_cod'] = 0;
    $shipping_list[$key]['support_cod'] = 0;
}
 

在页面选择配送方式时,需注意shopping_flow.js中的selectShipping函数,此函数直接影响到货到付款radio选项是enable或者disable状态。

ecshop收货地址货到付款修改的更多相关文章

  1. 42 Flutter仿京东商城项目 修改默认收货地址 显示默认收货地址

    CheckOut.dart import 'package:flutter/material.dart'; import '../services/ScreenAdapter.dart'; impor ...

  2. 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器

    加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml city_pickers: ^ AddressAdd.dart import 'packa ...

  3. ecshop 订单-》设置默认收货地址,或者删除

    设置位置:ecs_users标的   country字段,默认是0,默认地址是 users_address 的address_id 设置默认收货地址 /** * 设置默认地址 * * @access ...

  4. 微信共享收货地址 edit_address:fail 吐白沫级解决方案

    又被微信坑了一整天,看完官方文档怎么测试都不通过,我一直怀疑是新版本微信支付我没有设置“共享收货地址”开关造成的. 后来经过验证,新版本不需要做这件事了. 那么,我没错,是微信的文档没及时更新... ...

  5. Django商城项目笔记No.16用户部分-用户中心收货地址

    首先完成省市区三级联动 新建areas应用 python ../../manage.py startapp areas 模型类代码 class Area(models.Model): "&q ...

  6. 微信支付开发(7) 收货地址共享接口V2

    关键字:微信公众平台 JSSDK 发送给朋友 收货地址共享接口 openAddress 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-open ...

  7. 【地图API】收货地址详解2

    上次讲解的方法是: 在地图中心点添加一个标注,每次拖动地图就获取地图中心点,再把标注的位置设置为地图中心点.可参考教程:http://www.cnblogs.com/milkmap/p/6126424 ...

  8. GWYAlertSelectView 选择收货地址和选择联系人

    iOS 开发在app内(特别是在类似购物和旅游类)经常会用到选择,添加联系人和收货地址,而且经常都是在跳转界面,很是麻烦,今天我就自己封装了一个类似弹出视图的代码,方便了很多!demo地址: http ...

  9. 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店

    使用EcStore开展分销的网站,代理需要经常代客下单,每个客户收货地址都不同,要选择和填写多个内容才能完成地址输入:省.市.区.详细地址.收货人姓名.手机电话等,非常麻烦,也容易输入错误.安装EcS ...

随机推荐

  1. JS模式--职责链模式

    职责链模式的定义:使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链, 并沿着这条链条传递下去,直到有一个对象处理它为止. var order500 = f ...

  2. DirectFB 之 动画播放初步

    在基于linux的嵌入式仿真平台开发中,终端的美观和可定制是一个重要的问题.单调的"白纸黑字"型表现方式可谓大煞风景.改造linux控制台使之美观可定制地展示开机信息和logo成为 ...

  3. Centos6.5 rpm方式指定目录安装JDK

    第一步:下载jdk本例使用jdk-7u5-linux-i586.rpm包,登陆到http://www.java.com下载即可. 第二步:检查文件权限及安装情况1.以root权限登陆系统,查看并修改使 ...

  4. Elasticsearch【正则搜索】分析&实践

    在ES中有很多使用不是很频繁的查询,可以达到一些特殊的效果.比如基于行为路径的漏斗模型.本篇就从使用上讲述一下正则表达式查询的用法. Regexp Query regexp允许使用正则表达式进行ter ...

  5. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  6. AOJ/树二叉搜索树习题集

    ALDS1_7_A-RootedTree. Description: A graph G = (V, E) is a data structure where V is a finite set of ...

  7. WOW.js轻松为网页添加动画切入效果

    由于坐忘的需要,经常会有部分功能用的很多,做起来又很繁琐,所以插件也就应运而生了.个人感觉正式js强大的可植入性, 才使他如此的使用火爆,反正博主是特别喜欢这一点  Y(^o^)Y~ . 今天就和大家 ...

  8. Python常见的错误汇总

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...

  9. iOS之copy、strong使用,block特性

    身边一同事,我印象在过去三个月,有两次因为使用“copy”修饰UIKit控件的属性,导致程序崩溃.他还一本正经的说我以前一直使用copy. 好了,到这里我们就不得不说说什么时候使用copy.我的印象中 ...

  10. ContentSize、Contentoffset以及ContentInset属性

    ContentSize UIScrollView可以滚动的区域.在我的理解中,我把UIScrollView看成是具有上下两层的一个复合视图,frame控制着上层的大小,我们看到的UIScrollVie ...