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