标题：B2B2C网上商城开发指南——基于SaaS和淘宝API开放平台
图书信息
B2B2C网上商城开发指南——基于SaaS和淘宝API开放平台
邢波涛  郭  娟  著  ISBN 978-7-121-12983-4
2011年4月出版
定价：49.00元
16开
388 页
内 容 简 介
本书以已经广泛应用到各行各业的进销存软件为需求背景，以流量最大的电子商务网站淘宝网的卖家为需求方，以Java、J2EE和淘宝API开放平台为实现手段，介绍了如何把进销存和淘宝结合起来。对于进销存常见的功能，例如采购管理、库存管理、销售管理，商品管理、统计查询以及淘宝卖家最常用的拆单、合并以及打印，本书都有详细的功能论述以及架构、数据库方面的设计介绍。而对于SaaS（Software as a Service）与管理软件和电子商务的结合，B2B2C（Business to Business to Consumer）的概念和实现，类似ShopEx、Ecshop网上商城的实现，本书也给出了一个完整的例子和有益的探索。
本书适合对电子商务、网上商城的开发以及对SaaS数据隔离感兴趣的Java、J2EE开发者使用，对于PHP和.NET程序员仅具有解决问题思路上的参考价值。
前  言
电子商务、云计算与移动互联网是最近两年最热闹的名词了。云计算有Google、IBM和微软之类的IT巨头领导，形成事实上的寡头垄断。虽是朝阳产业，但无论在技术门槛上，还是产业链上，草根都很难参与；移动互联网在国内有较好的发展，以李开复老师的创新工厂最为有名，但目前还没形成完善的产业链，草根参与进去，短期之内也很难发展；但是在电子商务领域，根据最新的数字统计，淘宝已经超越亚马逊和eBay成为全球最大商圈。在电子商务领域，事实上已经形成了一超（阿里巴巴、淘宝）+多强（慧聪网、京东商城、卓越亚马逊、当当网……）的局面。电子商务有序竞争的整体格局，使得基于电子商务的产业链也健康地发展起来了。早在几年前，淘宝网就率先开放了自己的API平台，使得大卖家和开发者可以通过API的形式来调用淘宝网的商品和订单数据。基于淘宝开放平台生存下来的个体开发者和公司很多。可以说，电子商务的成熟度已经有草根和中小软件公司足够活下去的空间了。事实上，与电子商务相关的软件，也已经如火如荼地发展起来了。国内著名的网上商城软件例如上海商派的Shopex、Ecmall和Ecshop系列，国外著名的例如Zen Cart、Magento和PrestaShop等。
从技术上来说，这些软件大多是用PHP编写的，而本书实际上是我在创业过程中一个实际产品开发的结果，所以实战性非常强。它从Java、J2EE的角度来讲解如何架构自己的电子商务和网上商城软件；从应用上，本书结合已经广泛应用到各行各业的进销存软件，以实际的商业进销存软件为背景，介绍了如何把进销存跟淘宝相结合起来。进销存常见的功能，例如采购管理、库存管理、销售管理，本书都有详细的功能论述以及架构、数据库方面的设计介绍。而在与淘宝API的结合方面，本书是第一本以案例形式分享淘宝开放API用法的第三方（非淘宝官方）书籍。对于SaaS架构方面，我主要介绍了自己对SaaS的理解，并从技术上给出了电子商务在SaaS上的解决方案，即B2B2C平台。书中还掺杂了很多笔者在软件架构、项目管理等方面的个人感悟。电子工业出版社编辑曾建议去掉书中夹杂了太多个人感情色彩的内容，担心会招致口水战。其实我并不想写一本中规中矩的技术图书，书里面很多结论虽然夹杂了笔者的个人喜好，但却是笔者十几年的开发和架构经验的总结。我只是把我的经验写出来，供大家参考，并促使大家养成独立思考的习惯。这也算是本书比较的一个特色吧，欢迎大家沟通、交流和拍砖。
这本书之所以能问世，首先要感谢的就是《程序员羊皮卷》的作者张大志先生，是他点燃了我写此书的希望并最终促成了本书的出版。其次要感谢的是我的妻子郭娟，她不仅编写了本书的部分章节，而且女儿出生后还牺牲了自己的工作全职在家，使我无后顾之忧地全身心投入到工作和写作中。第三个感谢的就是我的天使投资人、北京应天海乐科技发展有限公司创始人和董事长史本才先生，正是由于史先生的支持，才使得书中软件的正式商用成为可能。还要感谢清华大学计算机学院张勇教授、淘宝商城合作伙伴部门负责人罗文军（花名玉关）、阿里巴巴B2B 技术专家李锟、InfoQ中文站张凯峰、文思同事赵焱辉，他们都在百忙之中阅读了全书，提出了很多宝贵的意见并慨然作序。此外，司永靓、金怡为本进销存软件提供了很多有价值的建议，淘宝网员工方胜、雁行、子珺以及淘宝网五皇冠大卖家李杨、孙朝晖和桔子，都为本书中出现的进销存软件提供了宝贵的更改意见，孙朝晖还把他试用过的软件都一并介绍给我，在此一并致谢。
本书编写过程中也遇到过很多技术难题，有关于SaaS架构的，有关于Flex方面的，也有关于淘宝API的，这些具体难点，有的已经解决了，有的还在探索中。主要是因为个人能力确实有限，尤其是对SaaS架构理解方面，我写得还非常的肤浅，敬请读者见谅和海涵。
中国人错过了数次工业革命，但在互联网经济面前，特别是电子商务面前，我们跟发达国家相差不远。让我们为电子商务在国内健康发展贡献出自己的一份力吧。
邢波涛  
2011年3月
序　一
时值初春，想脱开世俗的春节过法，给终年劳顿的身体好好放松一下，便在杭州的莫干山中找了个休闲之处躲了起来，白天游荡在山间：青山、绿水、翠竹、暖阳、小溪、残雪；晚间幽居在住处：星空、炉火、烛光、犬吠、温酒、闲书，好不惬意！我自逍遥之时，唯一的一件正事，就是受邢波涛之托，为这本新书写一个序。
原有受人之托、忠人之事的心态，哪知刚一展卷，便一发不可收拾——灯下一口气看完了这本近10万文字的书稿，掩卷而坐，不由赞叹不已。
熟悉邢波涛的人知道，他是业内资深的J2EE专家。2003年前后，在管理软件在向平台型转型的浪潮中，因为一个偶然的机会认识他时，他还只是一个资深的程序开发人员，但对于业界变化的高度敏感，入木三分的分析，远远超出了他当时应该关注的范围，让我大为惊讶。我们对于业内许多的认知，也有着非凡的默契，从此便结为好友。后来，SaaS的逐步发展、电子商务的逐步成熟，我是一路奔走，在公司之间跳跃着追赶一趟趟行业发展的潮头末班车，而波涛却在继续修炼自己作为程序员的内功的同时，高度关注着SaaS的发展。在业余时间，利用自己丰富的经验独立架构完成了一个SaaS版本的应用系统并已经有了诸多的用户。今天波涛又充分与时俱进，将SaaS与电子商务完美结合起来，从底层的架构，到应用系统，再到兼具前后台的电子商务的平台搭建，这中间，从技术到商业、从理论到实践、从传统管理软件到SaaS再到电子商务的多重跨度，绝非一日之功。
书中结合行业趋势，系统分析了国内外主流的网店产品，并结合自己的实践经验，给出了网店从前台到后台完整的需求分析、设计框架以及技术架构，是不可多得的实践结合理论以及行业现状的实战指南。
另外值得一提的是，这本书，也是我所知范围内，第一本以案例形式分享淘宝开放API用法的第三方书籍——淘宝自2009年6月正式开放API，历时一年多，除了引领得百度、盛大、拍拍等竞相开放之外，也以淘宝特有的优势，吸引了3万多名国内主流的开发者，同时，也造就了超过1000个第三方商业应用在大淘宝的体系内遍地开花、精彩纷呈的格局，中间不乏脱颖而出、年收入超百万的独立开发者。
我在TOP（淘宝网开放平台Taobao Open Platfrom简称）1年多的时间内，一直在努力致力于如何更好的开放、如何搭建更好的开放平台运营支撑体系，以便更好地支持到大淘宝开放体系下的用户——从年销售过亿的大商家、大大小小的开发者再到一名普通的淘客——中间支持过的人数众多，但绝大多数都是以支持对象自用为基调，鲜有第三方能够出来著书立说，结合实践进行充分分享。本书的作者，仅仅是淘宝开放API的诸多用户之一，以这种方式进行大范围内分享，无疑是我所见到的第一个。
在此，我表示敬意，也希望更多的开发者，有志于SaaS以及电子商务的同仁们，能够从中受益，让电子商务的基础设施建设，能够快速跟上行业的发展。
玉关（罗文军）
2011年2月5日于杭州莫干山中
序　二
电子商务已经成为我们这个时代最重要和最成功的互联网应用之一，越来越多的人都在通过网上商城来购买商品。在北京的大街上，每天都可以看到骑着电动自行车带着大箱小包的快递人员；在各个网上商城上闲逛，已成为了某些网虫的“强迫症”。搭建一个功能强大的网上商城，成为各行各业开发电子商务的迫切需要。这里需要弄清楚网上商店和网上商城的区别，前者往往只关心订单和商品，而后者则是需要支持在线分销系统，并且通过SOA架构，跟企业内部管理信息系统做深度集成。
SaaS模式作为一种在线服务模式，中小企业可以按照自己的需要，通过租用方式，获得由第三方专业公司负责的信息化服务，实际上是一种中小企业信息化服务外包的模式。正是由于SaaS模式的出现，才使得中小企业经营网上商城更加便捷。
虽然现在有一些类似的开源软件，但是在真正使用的时候，人们往往会发现这些软件并不太适合自己的需求，必须得二次开发或者改造。本书面向有一定经验的开发者，提供了一个既支持SaaS多租户架构，又支持深度个性定制化的网上商店系统，进而全面整合已有企业业务系统的B2B2C运营平台。
本书的另外一个特色是把淘宝的数据，作为自己进销存销售订单数据来看待，使得淘宝相当于自己的一个最具有人气的销售窗口或者柜台。通过这种整合，使得一个新的网上商城能够很快利用淘宝网的巨大流量上得到收益，同时，也减轻了开发的工作量。
本书语言诙谐，描述生动，易于理解，通过大量的实例来进行讲解，深入浅出，是中小企业开发和经营网上商城的参考宝典。
张　勇　　　　
清华大学计算机学院教授
序　三
马云无疑是中国互联网行业的一个传奇。马云所领导的阿里巴巴集团，是对普通中国人影响力最大的互联网企业之一。而在阿里巴巴集团中，影响力最大的要算是淘宝网。淘宝网在中国，已经成为了网上购物的代名词，其地位是其他同类型网站无法撼动的。在电视剧《婚姻保卫战》中，偶像明星黄磊、佟大为都是淘宝网的忠实用户。偶像的力量是无穷的！
淘宝网取得今天的江湖地位，并不是靠单打独斗，其实围绕着淘宝网形成了一个巨大的电子商务生态系统。淘宝网并不是只想自己赚到钱，而是希望加入到这个生态系统中的合作者们都能赚到钱，共同发展。淘宝网开放平台，对于形成这个生态系统，具有非常重要的作用。
其实建造开放平台，在互联网行业早已是一种潮流。同样属于电子商务企业的eBay和亚马逊，都有自己的开放平台。阿里巴巴所收购的两家美国电子商务企业Vendio、Auctiva都是依托eBay的开放平台来开展自己的业务的，而且业务量都很大。所以我们有理由相信，未来在国内，也一样会出现很多依托淘宝网的中型电子商务企业。为淘宝网上的商家提供各种服务，蕴含着巨大的商机。这块蛋糕，淘宝网自己不可能全部吃掉，也无意全部吃掉。
本书正是基于这股潮流应运而生，为准备依托淘宝网开展电子商务的企业提供了技术方面的全方位指南。对于其他对电子商务感兴趣的网站开发者来说，这同样也是一本非常有价值的书。读者除了可以领略到作者精湛的技术功力之外，也一定不要忽略了体会作者对于电子商务发展趋势的深刻洞察力。我们常常说，开发人员要两条腿走路，技术、业务两方面都不可偏废。但是很少有书能同时带给我们技术和业务两方面的收获，而这本书恰好做到了。我强烈建议国内希望在电子商务领域一展才华的开发者们，都来认真读一下这本书。
李  锟        
阿里巴巴B2B 技术专家
序　四
在好友邢波涛给我发来本书书稿的时候，我刚好在新浪的微博上看到这样一条信息：来自淘宝消息，有个杭州某IT技术人员，基于淘宝开放平台开发了一个“抽奖”产品，花了半年时间，每天20小时的编写代码；该产品一上线，给他带来每月几十万的稳定收入。两点体会：1．一切需要坚韧、执着和极致；2．淘宝开放平台很有前景，好好利用的话，不次于苹果公司的iTune商店。
一条令人震撼的消息，不是吗？蓬勃发展的互联网不仅为企业和希望创业的人们带来各种可能的机会，开放的平台和数据甚至为普通的开发者开辟了一条致富之路，这是一个展现个人才华，并以此创富的时代。
本书在这样的背景下，具有一定的实际意义。在很多人都投身下海开启网店，生意做大甚至开办商城之后，作为开发者的你，有没有嗅到这里面蕴藏着的商机呢？
作者在该书的开篇就介绍了或商业或开源的一些网上商城的特性及优劣，在新的电子商务模式B2B2C以及来自要求集成多方业务数据和遗留系统数据的压力下，现成的商城系统已经不再能满足拿来主义的需要。这就是这本书存在的意义。
作者凭借自己多年积累的丰富的电子商务领域业务经验，和Java EE领域的实践经验，为解决复杂的集成需求并同时保持系统的灵活性和良好的用户体验，从业务分析、系统设计，到后台搭建、前端设计，几乎“手把手”地介绍了这样一个B2B2C模式的网上商城系统的搭建过程。开发者可以基于这样的学习，搭建起一个自己的网上商城系统来，很容易可以集成第三方比如淘宝开放平台的数据，或者租户要求的其他业务系统数据，为租户带来无线商机可能的同时，也会拓宽自己的致富之路。
张凯峰  
InfoQ中文站
目    录
第一部分  网上商城简介
第1章  网上商城与网上商店 2
1.1  网上商城与商店系统的现状 2
1.2  现有网上商店与商城系统分析 4
1.3  新一代电子商务发展趋势 7
1.4  本章小结 10
第2章  网上商城功能需求分析和设计 11
2.1  网上商城后台功能需求列表和设计 11
2.2  网上商城前台功能需求列表和设计 28
2.3  全程电子商务下的网上商城后台设计 33
2.4  网上商城所需软硬件架构分析 33
2.5  本章小结 34
第3章  网上商城架构设计经验谈 35
3.1  软件架构经验总结 35
3.2  网上商城后台架构设计 40
3.3  网上商城前台架构设计及选型 54
3.4  本章小结 55
第二部分  进销存UI开发技术概述
第4章  Flex实用开发概述 57
4.1  Flex与Web应用程序开发技术概览 57
4.2  使用SDK开发包开发Flex应用程序 58
4.3  Flex与J2EE后台交互的三种方式 60
4.4  Flex模块 63
4.5  流行Flex MVC框架综述 66
4.6  本章小结 68
第5章  Flex高级控件使用 69
5.1  DataGrid 69
5.2  Tree 72
5.3  TabNavigator 74
5.4  组合使用TitleWindow和DataGrid 76
5.5  在DataGrid上加Checkbox 79
5.6  扩展Flex控件 81
5.7  本章小结 85
第三部分  构建自己的SSH架构
第6章  创建自己的Struts框架 87
6.1  创建背景 87
6.2  实现自己的MVC 89
6.3  本章总结 111
第7章  打造自己的Hibernate 112
7.1  创建存储框架 112
7.2  自动实现多租户 115
7.3  本章小结 119
第8章  打造自己的Spring 120
8.1  创建简单的业务流程管理框架 120
8.2  创建复杂的业务流程管理框架 123
8.3  本章小结 128
第四部分  网上商城完整实现
第9章  网上商城后台之采购管理 130
9.1  采购订单的实现 130
9.2  采购入库的实现 163
9.3  采购付款的实现 188
9.4  采购退货单的实现 200
9.5  本章总结 206
第10章  网上商城后台之销售管理 207
10.1  销售订单的实现 207
10.2  销售出库的实现 232
10.3  销售收款的实现 242
10.4  销售退货的实现 248
10.5  本章小结 256
第11章  网上商城后台之库存管理 257
11.1  直接入库的实现 257
11.2  直接出库的实现 259
11.3  调拨单的实现 261
11.4  库存台账查询的实现 263
11.5  应付账款查询的实现 264
11.6  应收账款查询的实现 265
11.7  本章小结 266
第12章  网上商城后台之数据字典实现 267
12.1  客户供应商管理的实现 267
12.2  商品维护的实现 269
12.3  商品类别的实现 286
12.4  本章小结 290
第13章  同步淘宝数据 291
13.1  了解淘宝开放平台 292
13.2  如何接入淘宝开放平台 295
13.3  同步淘宝数据到本地 305
13.4  同步本地数据到淘宝 315
13.5  查询自己感兴趣的其他淘宝数据 318
13.6  本章小结 320
第14章  网上商城前台实现技术 321
14.1  模板技术具体实现 322
14.2  实现用户注册 330
14.3  实现商品展示 336
14.4  实现购物车 344
14.5  实现用户中心管理 359
14.6  本章小结 360
附录A  电子商务发展简史 362
A.1  电子商务发展历史 362
A.2  中国电子商务发展简史 367
编辑后记 372