Drupal网站开发实践--自定义购物流程
由于Commerce模块自带的购物流程步骤过多,界面不太美观,所以需要重新设计。
改造后的购物流程分成两部:购物车-》结算,就两个页面。购物车页面可以修改商品的数量,删除购物车内商品,查看总金额等信息。
下面来大概的说一下实现的流程:首先是页面,使用hook_menu新建一个页面,我这里地址用的是bag,防止和Commerce自带的cart冲突。
hook_menu() {
//重写购物车页面
'bag' => array(
'type' => MENU_NORMAL_ITEM,
'title' => '购物袋',
'page callback' => 'custom_commerce_cart',
'access callback' => TRUE,
),
}
custom_commerce_cart 方法返回页面内容。
function ajax_plug_commerce_cart() {
global $user;
$order = commerce_cart_order_load($user->uid);
//处理订单内的商品行项
//custom_commerce_cart为hook_theme设置的模版名称。
return theme('custom_commerce_cart', array('vars' => array('rows' => $line_items)));
}
商品数量的修改、删除,都是通过Ajax请求,后端调用Commerce API完成的。前端使用了AngularJS,监听页面动作会比较方便。
例如修改商品数量,自定义一个MENU_CALLBACK类型的菜单,通过请求传递商品的数量、行项号码信息,在后台通过修改行项quantity属性,来设置商品的数量。
更详细的内容请看:https://blog.mulin.tech/archives/1
Drupal网站开发实践--自定义购物流程的更多相关文章
- Drupal网站开发实践系列
这一系列文章会记录我最近一个项目的开发历程.包括用到的模块,功能的具体实现,调用的API,还有主题的制作,一部分前端信息等. 该网站基于Drupal7+Commerce制作,主题部分基本完全自定义,没 ...
- MVC5 网站开发实践 2.2、管理员身份验证
上次完成了管理员的登录,这次要解决对管理员登录后的验证,采用AuthorizeAttribute属性的方式.之前还要解决几个问题,然后才重写验证类,最后稍微改一下界面. 目录 MVC5 网站开发实践 ...
- MVC5 网站开发实践 2.1、管理员登陆
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 1. 创建SHA256加密方法. 在Data项目中添加文件夹[Security ...
- MVC5 网站开发实践 2、后台管理
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 从这一部分开始做后台管理,首先是基本框架的 一.Data项目 1.项目添加EntityFramework引用 在Data项 ...
- MVC5 网站开发实践 1、建立项目
目录 MVC5 网站开发实践 概述 一.建立项目 1.建立团队项目 在办公室和家里使用不同的电脑,为了方便代码的共享将项目建立为团队项目. 如图打开vs2013→新建→团队项目(图1),会自动 ...
- MVC5 网站开发实践 概述
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 MVC5 网站开发实践 2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...
- ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询
上次把咨询的架构搭好了,现在分两次来完成咨询:1.用户部分,2管理部分.这次实现用户部分,包含两个功能,查看我的咨询和进行咨询. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NE ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
随机推荐
- python3中返回字典的键
我在看<父与子的编程之旅>的时候,有段代码是随机画100个矩形,矩形的大小,线条的粗细,颜色都是随机的,代码如下, import pygame,sys,random from pygame ...
- 一些比较常用的Linux命令
我有一些是我是参考别人的,忘记是谁了,在这里要感谢一下ta. #命令格式就是就是由命令+空格+一些命令用法的选项(可以选择多个用法)+空格+/+目录名或者文件名,有些是直接打命令就可以了,比如ls - ...
- Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分
安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...
- DNS配置
配置永久IP: cd /etc/sysconfig/network-scripts/ 主DNS服务器配置: 由于caching-nameserver软件包提供了各种配置文件的模板,大大降低了BIND ...
- rhel7报错整理
报错现象1: 安装过程需要一段时间,等待完成. 重启后进程 输入 q 再次输入 yes 重启后进入 报错现象2: 挂载镜像后,系统一重启报错: 来自 ...
- Oracle sql语句练习
--1.选择在部门 30 中员工的所有信息 ; --2.列出职位为(MANAGER)的员工的编号,姓名 select EMPNO, ENAME from emp where job='MANAGER' ...
- Good Bye ACM
——记于2015.11.9 合肥 合肥区域赛结束了,长舒一口气,这次终于能成功退役了,以后可以不被学弟们吊打了Y(^_^)Y. 这次的比赛让我不禁联想起去年的上海现场赛,出题者防AK防得太过分了,又是 ...
- linux mysql
安装mysql 1.使用rpm 安装mysql 或者使用yum安装 使用rpm 安装 下载 Centos 7 所需要的mysql包 tar -xf 解压整合包 根据依赖 安装 common>li ...
- poj 2142 拓展欧几里得
#include <cstdio> #include <algorithm> #include <cstring> #include <iostream> ...
- java-android推送
之前做的推送,考虑了很多,最后因为各个因素,选择了极光的.