1.基本情况... 2
2.商业模式... 2
2.1战略目标... 2
2.2目标用户... 3
2.3产品与服务... 3
2.4盈利模式... 3
2.5核心能力... 4
3.经营模式... 4
3.1低价抢占市场... 4
3.2扩大宣传推广... 4
3.3采取多种促销手段... 5
3.4外包物流配送... 5
4.管理模式... 5
4.1组织结构... 5
4.3物流配送管理... 6
4.4支付管理... 6
4.5客户管理管理... 6
5.资本模式... 7
6.结论与建议... 7
当当网上购物中心
1.基本情况
1999年11月正式开通。
商品包括了家居百货、化妆品、数码、家电、图书、音像、服装及母婴等几十个大类,逾百万种商品,在库图书达到60万种。
目前每年有近千万顾客成为当当网新增注册用户,遍及全国32个省、市、自治区和直辖市。
每天有上万人在当当网买东西,每月有3000万人在当当网浏览各类信息,当当网每月销售商品超过2000万件。
当当网上购物中心价值网络
2.商业模式
2.1战略目标
当当网的使命是“更多选择、更低价格”,让越来越多的顾客享购网上购物带来的方便和实惠,全球使用中文上网的人们享受网上购物带来的乐趣——丰富的种类、7×24购物的自由、优惠的价格、架起无界限沟通的桥梁。
2.2目标用户
目标客户主要定位于网络购物活跃用户。
网络购物活跃用户(一个月至少有过1次网购行为的用户)的特征包括:19-35岁用户是主体、学历水平整体较高;华东、华南地区用户比例高;中低收入者为主。
2.3产品与服务
(1)在线直销
目前,当当网在线销售的商品包括了家居百货、化妆品、数码、家电、图书、音像、服装及母婴等几十个大类,逾百万中商品,在库图书达60万种。
(2)网上店铺出租
当当网为具有独立法人资格的生产型或零售批发型企业,包括生产商、代理商、经销商、零售商、专卖店或者淘宝网、易趣网及其他电子商务网站的优质商户(单位或个人)提供电子商务平台。
(3)广告发布
当当网主页上发布广告种类很多,包括横幅广告、按钮广告、插页广告、移动广告等。而且最主要的一点是绝大部分广告所宣传的商品在当当网上都可以购买到。且当当网上也有若干公益广告,体现其网站人性化的一面。
2.4盈利模式
当当网的盈利模式主要包括直接销售收入、店中店租金、广告收入。
其中店中店租金是指当当网对在其网站上出租的店中店按分类和配置推广资源收取固定租金。当当网可以为这些合作伙伴提供相应的技术支持、独立的网上商店、协助签订物流配送快递公司,帮助将销售商品送至客户手中、帮助收银等服务。
2.5核心能力
当当网的可信能力主要体现在商品种类齐全、物流体系完善、客户服务优质等方面。
当当网经营家居百货、化妆品、数码、家电、图书、音像、服装及母婴等几十个大类,逾百万中商品,在库图书达60万种,是中国经营商品种类最多的网上零售店之一。
当当网耗时10年修建了庞大的物流体系,仓储中心分布在北京、华东和华南,覆盖全国范围。在全国360个城市里。大量本地快递公司为当当网的客户提供“送货上门,当面收款”的服务。
当当网在一直贯彻了以客户为中心的市场战略,并树立了“让客户的购买越来越方便”的企业宗旨,使客户的购买体验越来越好,客户忠诚度也越来越高。
3.经营模式
3.1低价抢占市场
在当当网上购物,商品价格比较低,其目的就的要抢占市场份额,把用户拉到自己手中。
为了达到薄利多销的目的当当网采取了一系列的措施。首先,压低商品的成本和企业运营成本。当当网和出版社直接联系减少了中间的环节,降低图书的成本;再加上没有传统的书店、商场那些租用店面的成本;其次在运营上,当当网更注重工作的效果。最终达到薄利多销的成果。
3.2扩大宣传推广
当当网通过发放礼券、网络广告的形式来扩大自己的知名度,推广自己的产品。
3.3采取多种促销手段
当当网以打折销售树立起低价的形象并吸引了众多用户,并首创了智能比价系统,保证其在价格竞争上的优势。常年保持打折低价,在节假日大推打折降价优惠策略,每年年终还会推出年底大促销活动等。20##年4月24日网民读书节”与世界读书日不期而遇。为了庆祝这一“双节”的到来,当当网日前发起了自涉足网上书店以来降幅最大的一次图书打折活动——除了出版社限折的特例品之外,图书全场65折封顶。围绕本次读书节,当当网还携手腾讯及众多名人发起了“2011中国首届#微书评#大赛”,并有苹果、果itouch4、500元当当网礼券等大奖奉上。
3.4外包物流配送
在消费者不受“鼠标轻轻一点,精品尽在眼前”的背后,是当当网耗时10年修建的“水泥支持”——庞大的物流体系,仓库中心分布在北京、华东和华南,覆盖全国范围。 员工使用当当网自行开发、基于网络架构和无线技术的物流、客户管理、财务等各种软件支持,每天把大量货物通过空运、铁路、公路等不同运输手段发往全国和世界各地。在全国超过360个城市里,大量本地快递公司为当当网的顾客提供“送货上门,当面收款”的服务。
4.管理模式
4.1组织结构
当当网在组织结构的重组过程中,把经营活动按照电子商务的特点进行分解,将规律性的、机械化的工作赋予信息系统实现,使组织结构从三级管理简化为两级管理。扁平化的管理结构强化了管理质量,加快了业务的响应速度。
4.2供应链管理
当当针对出版商和批发商具有的不同资源,采取不同的合作方式。比如向出版商开放查询系统,提供本版书的销售数据信息、商品库存信息,在与供应商共享信息资源的基础上,共同分析市场需求,在最短的时间形成补货决策;与批发商之间利用EDI等信息技术,进行多元数据交换;通过库存商品的信息交换,缩短了供销距离;用多频度小数量配送方式连续补充商品,有效地缩短了商品交纳周期。
4.3物流配送管理
在全国360个城市提供送货上门服务 ,在北京、华东和华南设立了仓储中心。
当一笔订单产生时,当当将判断从哪个仓库调货最优,然后订单被发送到该仓库。
仓库的工作人员接到订单后,配货、检验并包装,然后由托运公司发往用户所在的城市。该城市的快递公司收到货后立即送货上门。
4.4支付管理
汇款和货到付款,是当当网的用户使用得最多的支付方式。
使用汇款支付,是先到款再发货。货到付款方式,则是通过快递公司送货上门时收款。
货到付款的额度一般占到当当网总销售额的70%以上。当然,当当网也在积极推进其他的各种支付方式:信用卡付款、银行转账等。
4.5客户管理管理
完善用户 “零风险”网购经历。在服务方面,当当网在全国360个城市送货上门、货到付款,给网购消费者提供了极大的便利;7天无条件退货、15天换货的宽心服务和上门退换货的方式令用户购物更放心;全场免运费、VIP折上折等政策都体现着当当网用户至上的理念。
不断努力提升用户的购物体验。包括“个性化商品推荐”、高级搜索服务
5.资本模式
1999年11月份,由IDG、卢森堡剑桥集团、软银和北京科文经贸总公司共同投资,李国庆和俞渝任联合总裁的当当网正式投入运营。
IDG、卢森堡剑桥、软银等向当当网投入800万美元风险投资,换取当当网59%股份,俞渝、李国庆夫妇及其创业团队通过北京科文经贸总公司共持有当当网41%的股份。
20##年2月,老虎科技基金风险投资1100万美元,获得17.5%的股份,IDG、卢森堡剑桥、软银等几家减持为23%,当当网管理层的股份变为59.5%。
20##年7月,当当网获得第三轮风险投资,DCM、华登国际和Alto Global联合投资当当网2700万美元。换取当当12%的股份
6.结论与建议
通过以上分析我们科技看出当当网成功的原因在于价格优势+渠道优势+本土化优势。
随着互联网的普及,在日常生活和工作当中,网上购物将逐渐成为一件习以为常的事情,成为人们日常消费的重要渠道。但是,随着而来的是网上商店不断涌现出新的进入者,占领不同的商品门类、另外针对不同年龄阶段的人群的网上商店网站将越来越多。
同时。网上商店的各种细分模式之间界限逐渐模糊、呈融合趋势。例如淘宝进入B2C的传统品牌淘宝商城,百度的C2C平台融合了更多的传统品牌商。因此当当网如何与日益细分的专业性网上商店进行竞争,如何应对网上商店模式的融合趋势,成为其当下应当思考的问题。
第二篇:当当网整理
当当网项目描述
(GWAP通用电子商务平台项目)
如何描述项目?
(a) 讲需求
(b) 讲架构
(c) 讲体会
(1) 需求
1) 电子商务的基本发展
B to B 企业—企业应用系统
当当网、支付宝 阿里巴巴
淘宝网 B to C 企业—消费者的应用系统 C to C 消费者—消费者的应用系统
B to G 企业—政府的应用系统
2)基本需求
A、功能性需求
a、门户:可以登录、注册、浏览商品、购物 b、后台管理:商家管理订单
业务流程:一般的用户可以浏览商品,要购买商品需要登
录,如果是首次登录则必须先注册一个当当网账号。
B、其它 安全和(性能)方面的需求
SSL安全协议最初由Netscape企业发展,现已成为
- 1 -
网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通信的全球化标准。 公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥)其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
- 2 -
SLL应用了非对称加密(内用了RSA公钥加密算法)
RSA公钥加密算法,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
Java中的MD5加密算法
gwap项目做到SSL安全,在登陆注册的时候: public class MD5Utils { public static String md5(String str) { try {
MessageDigest md =
MessageDigest.getInstance("MD5");
byte[] b1 = md.digest(str.getBytes()); // !!! BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(b1); } catch (Exception e) { return null; } }
}
调用: MD5Utils.md5(“”));
(2) 架构
- 3 -
1) 应用层次结构
经典的基于MVC的JSP、Model、Struts2 架构方式
C 控制层 应用了Struts2核心控制组件。
V 表现层 服务器端:JSP和Struts标记库;
客户端:根据特定的需要应用了Ajax的异步方式。 M 没有分离出持久层,应用了Hibernate访问数据库。 问题:
? 应用Struts2的好处?
a、提供了一个基于MVC的控制流程的实现。
Struts2的流程是:
- 4 -
Struts2的核心工作流程大致分为以下几个步骤:
1)、客户端初始化一个指向Servlet容器的请求;
2)、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做
ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其它框架的集成很有帮助,如:SiteMesh Plugin)。
3)、FilterDispatcher被调用,FilterDispatcher询问
ActionMapper来决定这个请求是否需要调用某个Action;
4)、如果ActionMapper决定需要调用某个Action,
FilterDispatcher把请求的处理交给ActionProxy;
5)、ActionProxy通过Configuration Manager询问框架的配置文
件,找到需要调用的Action类;
6)、ActionProxy创建一个ActionInvocation的实例;
7)、ActionInvocation实例使用命名模式来调用,在调用Action的
过程前后,涉及到相关拦截器(intercepter)的调用;
8)、一旦Action执行完毕,ActionInvocation负责根据Struts.xml
中的配置来找到相应的返回结果。返回结果可能是另外一个Action链,一个JSP或者FreeMarker的路径。表示过程中可能使用Struts2框架的标签。
b、能够做到数据方式访问的一致性,在控制流程中,业务数据存在
于ValueStack中,通过标准的OGNL进行访问。(Action即是控制组件,也用来存储数据,但是这些数据最终存在于
- 5 -
ValueStack中,通过OGNL进行访问)
c、基于动态代理模式的Interceptor和Result方式。(通过代理模
式把Interceptor、Action、Result绑定在一起)
(可以在Action前面增加拦截器,不用改变Struts2的核心组件,
项目中增加了一个Interceptor,用来关闭Session。
public class SessionCloseInterceptor implements Interceptor { public void destroy() { } public void init() { }
public String intercept(ActionInvocation invocation) throws Exception {
}
在Struts.xml中,
<package name="base-package" extends="json-default"
abstract="true"> <interceptors> <interceptor name="closeSession" class="org.gwap.interceptor.SessionCloseInterceptor" /> HibernateUtils.closeSession(); return invocation.invoke(); } - 6 -
<interceptor-stack name="gwapStack"> <interceptor-ref name="closeSession" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="gwapStack" /> </package>
Result负责把Action里的数据通过ValueStack转换成不同的方式输出(转发,复位向)(json方式)。
表单验证方面:
只做了一个客户端验证,没有做服务器端验证。项目中用到了Ajax、JQuery框架。
Ajax (asynchronous javascript and xml)
在客户端的JS异步的访问服务器,返回的是xml,现在被JSON所取代。
Ajax异步访问服务器的步骤: <script type=”text/javascript”> function testAjax(){ var req=new XMLHttpRequest(); var url=document.getElementById(?address?).value; //打开连接 req.open(?get?,url,true); //设置回调方法
- 7 -
req.onreadystatechange=function(){ if(req.readyState==4){ var html=req.responseText; var d1=document.getElementById(?d1?); d1.innerHTML=html;
}
} } //发送请求 req.send(null);
</script>
用一句话简单的概括为:在客户端的JS异步的访问服务器,返回的是xml
? 什么地方用了Ajax的异步方式?
主页的地方用到了Ajax的异步方式
注册页面也用到了Ajax的异步方式
? 为什么要用Struts2标记?
项目中用了两种Struts2标记
(1)控制标记if else 、iterator,它和JSTL差不多,只是
Struts2标记对数据的访问全是OGNL。
(2)UI(表单)标记:Struts2标记的表单标记是基于theme(主
题),在项目中可以自定义主题,这样对UI可以很好的封
装,但是我在项目没有使用,把样式改成了theme=simple,
- 8 -
这样可以和ValueStack中的Action的数据同步。
有时为了方便也用了el表达式${emp.name}
Struts2标签库:<s:property value=”emp.name”>
? Struts2为什么可以支持el表达式?
用Wrapper机制改写了…方法。
2) 数据库的设计
数据库设计的不足?
我设计了两个表t_product和t_category 这两个表是多对多的关系(一对多的关系也存在这种问题),所以又设计出了一个二级关联表t_category_product表,但是这种设计无法实现Hibernate的分页显示,因为Hibernate不知都在什么地方分页,所以必须先把所有的数据取出来才能知道。解决这种问题就是不用二级关联表,在t_product中增加一个字段cat_value =”1,3,5”;
在主页中显示编辑推荐、热销图书、最新上架图书的时候可以在t_product表中加入闲的字段t_热销,t_推荐,t_最新上架,如果运行了一段时间,可以在不修改t_product表的前提下增加新的表。 数据库中用到的表:
一共8张表,分别为:
d_category;
private Integer id; private String name; private String description;
- 9 -
private Integer parentId; private List<Category> subCats; private int productNum;
d_category_product;
id
product_id
cat_id
d_product;
private Integer id; private String productName; private String description; private long addTime; private double fixedPrice; private double dangPrice; private String keywords; private Integer hasDeleted; private String productPic; private Set<Category> categorys; d_book;
private String author; private String publishing; private long publishTime; - 10 -
private String wordNumber; private String whichEdtion; private String totalPage; private Integer printTime; private String printNumber; private String isbn; private String authorSummary; private String catalogue;
d_item;
private Integer id; private Order order; private Integer productId; private String productName; private double dangPrice; private Integer productNum; private double amount;
d_order;
private Integer id; private Integer userId; private Integer status; private long orderTime; private String orderDesc; - 11 -
private double totalPrice; private Set<Item> items = new HashSet<Item>(); private Address receiveAddress; d_receive_address;
id user_id receive_name full_name postal_code mobie phone
d_user;
private Integer id; private String email; private String name; private String password; private Integer userIntegral; private boolean verify; private String verifyCode; private Integer lastLoginTime; private String lastLoginIp; 类:CartItem
- 12 -
private Product product; private int number; private boolean status;
(3) 体会
1) 数据库的设计:
a、
b、
c、
d、
e、
f、
加不加外键约束:不加能提高访问效率。如果前面有程序来维护数据的一致性,后台的数据库可以不加外键约束。 关联表的问题:有些地方加关联表的时候可以实现多对多,一对多的问题,但是分页会比较麻烦,如:t_category和t_product 关联表t_product和t_book用关联实现继承。 关联表t_product和t_hot用关联实现扩展 Hibernate延缓加载问题:(1)全部用了延缓加载OpenSessionInView,Session在显示result之后再关闭。(2)不用延缓加载join fetch 联合抓取。(3)join fetch 和分页的矛盾,显示商品目录,由于商品目录比较多,必须采用分页的形式,但是由于查阅必须要用joinfetch查询,表面上分页,但是实际上底层没有分页,hibernate把所有数据都取出来了。 Hibernate级联操作和关联关系维护的问题 Order Set<Item> items 这是业务的需要 - 13 -
Item Order order 这是性能的需要
cascade=”save-update”
inverse=”true”
g、 继承关系的映像方式
继承方式如何只取主表字段
select new Product(id,name,price)from Product h、
i、 通过公式实现子查询 一对多join fetch是重复问题,distinct
Hibernate3.2以后
j、 Struts2 Action的编程理念 根据输入(属性)算输出
(属性)
k、
l、 Struts2基本控制流程和体系结构问题。 Struts2编码问题(有一个bug)和国际化问题(资源文
件的级别)
m、 Struts2其它Result的应用
json?生成异步调用
stream—>生成验证码
m、 什么是拦截器?
在SpringAOP中用于在某个方法或者字段访问之前,进行拦截然后在之前或者之后加入某些操作。
在Webwork的文档中解释为-拦截器是动态拦截Action调用的对象。它提供了一种机制可以是开发者
- 14 -
可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。
项目中用于关闭Session与身份验证。
n、
o、 Struts2标记库如何看待theme的问题 JQuery和核心理念
JQuery对象、数据、方法、选择器
p、 Ajax 基本理念,以及在项目中的应用
优势:提高用户体验,不用整个页面刷新。
q、
r、 JQuery插件的使用,validation 在用户注销的时候把购物车的数据也存入到数据库
中,这样做Session的持久化
别改Session.setMaxInactiveInterval()这样做回事服务器端的压力太大了。
s、Http协议的安全问题
- 15 -