购物车是做什么的?

我们先来看一下现实超市中的购物车,一个带四个轱辘的铁筐子,客人推来推去,看到什么东西喜欢,就扔进去,觉得东西差不多了,就推到收银台。

那B2C网站中的购物车又是一个什么东西呢?

从广义上说,购物车在B2C网站里无处不在,当客人进入一个B2C网站时,他就相当于推着购物车开始逛超市了,只是客人暂时看不到购物车,直到进入购物车(Shopping cart page)页面,然后去结算,下单成功。本文讨论的购物车是狭义的购物车,是指客人在点商品页面的“加入购物车”(Add to cart)按钮,到进入下“去结算”(Check out)之间的过程。

设计购物车(Shopping cart)时会存在哪些逻辑?

第一个当然是入口逻辑,即从哪些地方可以点击“加入购物车(Add to cart)”按钮,解决的是什么东西可以扔到购物车(Shopping cart)的事情。常见的入口包括:产品列表页、单产品页,另外,在促销活动页面、购物车页面中的推荐产品部分也是常见的入口,根据不同的网站情况还会有其他七七八八的入口。当在不同的入口点击“加入购物车”可能会产生不同的事件。所以我们首先要定义在那那些页面什么情况下可以有“加入购物车)”的按钮。强调一点,千万不要小看定义入口,他可能会对后面的每一步都产生影响,尤其是一些隐性入口,如我们常见的在用户的历史订单中常常会有“再下一单”(Re-order)的功能,这个时候很有可能会有诸如看看这些商品还有没有库存之类的复杂逻辑处理,不关心购物车入口的设计几乎一定是不合格的购物车产品设计。

第二个是添加商品逻辑,解决的是怎么把商品扔到购物车(Shopping cart)的事情。从页面展现来看可能会出现两种情况,一种直接是进入购物车页面,还有一种是提示你“商品已经加入购物车”然后在原页面让你继续购物,这两种表现的结合体就是那种弹出一个小框框问你去购物车页面还是继续购物。无论是那种跳转情况,都会存在一个看不到的逻辑,那就是把放入购物车的商品记录下来了。产品经理必须清楚的知道根据自己网站的实际情况究竟需要记录什么东西。最直接需要记录的,旸仔认为包括两部分,一是什么商品,另一个是添加了多少个商品。可能有人会认为为什么不记录商品的价格呢?旸仔认为,产品的价格应该有单独的计算模块(价格计算器),只要知道什么东西,我们就可以随时获得价格,所以不应该在这里记录。就像我们在超市卖东西,当我把一个东西放到车里的时候,直到结算之前,我们只用知道车里有几个东西,有什么东西就可以了,甚至我们都可以忘记车里有什么东西,反正结算的时候也会知道。

第三个就是购物车的商品处理和页面展现逻辑。就像于我们在超市购物,正式付款之前,需要看看买了哪些东西,一共要花费多少钱。当进入购物车页面时,首先要把我们购物车里的东西计算一下价格,旸仔比较倾向的产品处理方法是,在购物车页面显示之前,将购物车里的东西统一扔到一个价格处理器里,价格处理器计算各种促销活动、打折等等的事情,这个价格处理器就像收银台上的条码枪,把每一个产品的价格返还回来,无论是促销装还是普通商品最终会给商品一个正确的价格。举个例子,买一罐可乐3元,买两罐可乐5元(即单价2.5元),用户当初只是把可乐扔到购物车(相当于我们说的添加商品逻辑),条码枪一扫,如果有一罐可乐,就显示单价3元,如果有两罐可乐就显示单价2.5元。这一部分的重点是价格处理器要和页面展现分离,他对于页面展现或者对于购物车相当于一个黑盒的东西,购物车只要告诉价格处理器有什么东西、数量几个,价格处理器就给出相应的价格,最终显示在购物车页面上。现在我们再说一下展现逻辑的重点,购物车页面的真正作用在于两个:一个是让用户尽快的结算成功下单;另一个是尽可能的让用户再多买点东西(Continue shipping)。关于让用户尽快结算成功,我们只要做好一件事情,让用户在页面一眼就看到“去结算”(Check out)按钮,这件事情说起来很简单,做起来也不难,但确实有很多人都没有做好,包括一些小有名气的网站,我见过一个网站如果买了十几样东西的话,如果想看到“去结算”(Check out)按钮要滚动鼠标3、4下。旸仔的建议是,把“去结算”(Check out)按钮放到右上角,使用和谐而醒目的颜色,同时,在购物车页面尽量不要写太多的文字,如果必须要写,也要离“去结算”(Check out)按钮远一些。

让用户尽可能的再多买点东西,就像我们在超市收银台看到的口香糖、电池之类的一样,所以有一个非B2C网站核心功能的功能就很重要了,今后如果有时间的话,我们也可以单独的讨论商品推荐的产品设计方法。让用户尽可能再多买东西还有一个按钮也很重要,就是“继续购物”(Continue shipping)。在购物车展现页面,有一个重要的问题需要产品经理来思考,就是自己的网站“继续购物”(Continue shipping)更重要还是”去结算”(Check out)更重要,每个产品经理都必须找到自己网站“继续购物”和“去结算”(Check out)的平衡点,在页面显示逻辑上表现出来。旸仔见过的大多数网站仿佛“去结算”(Check out)更为重要,毕竟马上就可以下单,老板一下可以看到钱了。

最后就是离开购物车的逻辑,B2C网站一定要想好,哪些离开购物车页面是正确的,哪些是错误的,旸仔认为只有用户因为点击“继续购物”(Continue shipping)和“去结算”(Check out)按钮离开购物车(Shopping cart)才是正确的,其他的离开除非有足够充分的理由,否则都是产品设计的愚蠢和混乱导致的。如果用户点击“继续购物”关键的逻辑是在回到那个页面,这个就和前面提到的入口逻辑有很紧密的联系了,产品经理应该视具体情况具体分析。而用户点击“去结算”(Check out),逻辑很简单,就是进入结算流程,具体结算流程的设计今后会专门讨论。

购物车(Shopping cart)基本的产品设计思想说完了,可能缺少细节的东西,旸仔想说的是,细节会根据每个网站的不同会有不同,但核心的产品设计思想是共性的,他才是产品经理应该放在心中的道。

补充说明:千万不要把购物车产品设计等同于购物车页面,购物车页面只是购物车产品设计中主要的页面表现部分。

购物车(Shopping cart) —— B2C网站核心产品设计 (二)的更多相关文章

  1. C#集合Collections购物车Shopping Cart

    这篇是对象与集合操练,物件的创建,集合的一些基本功能,如添加,编辑,删除等功能. 对象,即是网店的商品物件,Insus.NET只为其添加2个属性,物件的ID的Key和名称ItemName以及2个构造函 ...

  2. 常见B2C网站购物车的设计

    对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失.优秀的购物车设计至少需要完成两项使命:一是方便用户多买货多掏银子:二是帮用户保管好待购的 ...

  3. 产品设计中先熟练使用铅笔 不要依赖Axure

    在互联网产品领域,Axure已成为产品经理.产品设计师以及交互设计师的必备工具,从某种程度讲,Axure帮助我们建立低保真模型,便于与用户的需求验证,也帮助我们构思交互细节,使前端和开发人员更容易理解 ...

  4. 产品设计教程:利用“系列位置效应”优化UI

    任何博得人们喜欢的产品都在一定程度上契合了用户的心理需求.设计和心理学息息相关,掌握一些基本心理学知识,设计师的作品更能在潜意识中抓住用户的心. 系列位置效应 “系列位置效应”(The Serial ...

  5. shopping cart

    #Author:Kevin_hou #定义产品列表 product_list =[ ('HUAWEI',5999), ('Watch',500), ('Nike',800), ('Toyota',20 ...

  6. 深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)

    一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景       作为企业Hadoop应用的核心产品,Hive承载着FaceBook.淘宝等大佬 95%以上的离线统计,很多企业里的离线统 ...

  7. 大型B2C网站高性能可伸缩架构技术探秘

    大型B2C网站高性能可伸缩架构技术探秘 2010-07-21 08:51 狂放不羁 JavaEye 字号:T | T 向您介绍大型B2C网站高性能的网站架构技术,包括缓存的使用.应用程序和数据库的拆分 ...

  8. 年轻的心与渐行渐近的梦——记微软-斯坦福产品设计创新课程ME310

    作者:中国科学技术大学 王牧 Stanford  D. School 2014年6月,沐浴着加州的阳光,在斯坦福大学(下文简称Stanford)完成汇报后,历时一年的创新设计课程ME310的项目结束 ...

  9. 浅谈 jQuery 核心架构设计

    jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...

随机推荐

  1. this笔记

    在js中,如果this在全局变量和函数中this指window,在在对象中至所挂载的这个对象.

  2. jQuery复习:第四章

    一.jQuery中的事件 1.加载DOM $(document).ready()和window.onload方法具有类似功能,但是执行时机不同.window.onload方法是在网页中所有的元素都加载 ...

  3. C++静态成员

    类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中 ...

  4. reshape2 数据操作 数据融合( cast)

    我们在做数据分析的时候,对数据进行操作也是一项极其重要的内容,这里我们同样介绍强大包reshape2,其中的几个函数,对数据进行操作cast和melt两个函数绝对少不了. 首先是cast,把长型数据转 ...

  5. WindowsAzure上把WebApp和WebService同时部署在一个WebRole中

    注:本文为个人学习转载,原文地址:http://blog.csdn.net/zztfj/article/details/6740327 最近开发一个和WindowsAzure相关的应用,该应用还调用了 ...

  6. Excel教程(10) - 逻辑运算符

    AND 用途:所有参数的逻辑值为真时返回 TRUE(真):只要有 一个参数的逻辑值为假,则返回 FALSE(假). 语法:AND(logical1,logical2,  ). 参数:Logical1, ...

  7. winform/wpf 程序部署

    (1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...

  8. zabbix 监控mysql主从

    这里记录了,每次都百度查询多次. zabbix默认包含mysql监控 其中包含 mysql的基本状态监控 MySQL主从监控需要结合自定义 1)目前项目需求 只对 Slave_IO_Running . ...

  9. Smarty 注册变量

    关于smarty类的一些解析 特别注意左右分隔符<{}>,display------显示模板的内容(里面是.html文件),assign-------注册变量 <?php //是一个 ...

  10. 1.(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量

    //接口 ShapePara package d922B; public interface ShapePara { int getArea(); int getCircumference(); } ...