用户选择某些地址时,支付方式里则可以依据此地址来对货到付款选项进行显示或隐藏。目前仅与顺丰合作,以顺丰提供的数据为准。
使用到的数据库分别如下:
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. 初识Kafka----------Centos上单机部署、服务启动、JAVA客户端调用

    作为Apach下一个优秀的开源消息队列框架,Kafka已经成为很多互联网厂商日志采集处理的第一选择.后面在实际应用场景中可能会应用到,因此就先了解了一下.经过两个晚上的努力,总算是能够基本使用. 操作 ...

  2. VirtualBox实现内外网络互访问的配置

    作者 jrl137824675 来源地址:http://www.2cto.com/os/201205/133370.html   环境: 宿主机操作系统            Windows XP s ...

  3. 【数据库系列学习一】Access与Excel的区别和联系

    1.主题对一个主题Access只有一个表,而Excel可以有多个表.2.多表关系Access表各个表间存在严格的关联.Excel表各个表间的关系随意.3.数据计算Excel表中单元格中可以存储数据,也 ...

  4. 北漂面试经历(一(两)年工作经验)-- Java基础部分

    Java基础部分 常量和变量的区别:final 关键词修饰的变量是恒定不变的,如果还有static关键词修饰的话,常常称为编译期常量.变量,运行时可以修改其引用. Java基本类似有哪些 1 Byte ...

  5. Scrollview中嵌套ListView(自定义组件解决)

    首先,ScrollView中只能放一个控件,一般都放LinearLayout,orientation属性值为vertical.在LinearLayout中放需要呈现的内容.ListView也在其中,L ...

  6. 初识Eclipse!!

      Java之路 ——初识Eclipse   零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 ...

  7. hadoop进不去web界面

    查看配置文件是否正确:hdfs-site.xml文件 <property> <name>dfs.http.address</name> <value>h ...

  8. Linux系统档案与文件系统的压缩与打包

    以下文章基于centos6.5 文章引自:http://www.jb51.net/LINUXjishu/105916.html 一.Linux下常见的压缩指令 在linux的环境中,压缩文件的扩展名大 ...

  9. ThreadLocal源码解析

    主要用途 1)设计线程安全的类 2)存储无需共享的线程信息 设计思路 ThreadLocalMap原理 1)对象存储位置-->当前线程的ThreadLocalMap ThreadLocalMap ...

  10. spring boot入门

    一.对spring boot的解释:(百度百科) Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行 ...