# Ciyashop - 基于 WooCommerce 的 Android 电商应用项目分析
## 项目概述
**Ciyashop** 是一个功能完整的原生 Android 电商应用,与 WooCommerce 网站深度集成。通过 WordPress REST API 和 OAuth 1.0a 认证,实现移动端与 WooCommerce 商店的实时数据同步。
- **平台**: Android (Android Studio)
- **开发语言**: Java
- **后端**: WordPress + WooCommerce + PGS Woo API 插件
- **API**: WordPress REST API + OAuth 1.0a
- **最低 Android 版本**: Android 5.0+ (API 21+)
- **版本**: 4.4.1
---
## 核心功能
### 1. 电商核心功能
- **产品浏览**: 分类浏览、产品列表、产品详情
- **购物车**: 添加/删除商品、数量调整、购物车持久化
- **结账流程**: 地址管理、配送方式、支付方式
- **订单管理**: 订单历史、订单详情、订单追踪
- **支付集成**: 支持多种支付方式(PayPal、Stripe等)
- **优惠券**: 优惠券应用和验证
### 2. 用户系统
- **用户注册/登录**: 邮箱注册、社交登录
- **个人中心**: 账户信息、地址管理
- **愿望清单**: 收藏商品、愿望清单同步
- **最近浏览**: 浏览历史记录
- **积分系统**: 奖励积分、积分兑换
- **钱包功能**: 电子钱包、充值、交易记录
### 3. 产品展示
- **产品分类**: 多级分类、分类筛选
- **产品搜索**: 关键词搜索、筛选器
- **产品详情**: 图片画廊、变体选择、评价展示
- **相关产品**: 推荐商品、交叉销售
- **快速查看**: 产品快速预览
### 4. 营销功能
- **首页布局**: 动态首页、Banner轮播、特色产品
- **促销活动**: 特价商品、限时优惠
- **博客集成**: 博客文章、内容营销
- **推送通知**: Firebase 推送、促销通知
- **社交分享**: 产品分享、邀请好友
### 5. 多供应商/多卖家
- **卖家信息**: 卖家资料、卖家产品
- **联系卖家**: 站内消息、卖家沟通
- **卖家评价**: 卖家评分、评价展示
### 6. 本地化功能
- **多语言支持**: WPML 集成、多语言切换
- **货币切换**: 多货币支持
- **国家/地区**: 地区选择、本地化配送
### 7. 其他功能
- **门店查找**: 实体店位置、地图导航
- **产品下载**: 可下载产品支持
- **产品视频**: 视频展示
- **图片查看器**: 产品图片放大查看
- **Scratch Card**: 刮刮卡营销活动
---
## 项目结构
```
Ciyashop/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/example/ciyashop/
│ │ │ │ ├── activity/ # Activity 类
│ │ │ │ │ ├── HomeActivity.java # 首页
│ │ │ │ │ ├── ProductDetailActivity.java # 产品详情
│ │ │ │ │ ├── CartActivity.java # 购物车
│ │ │ │ │ ├── CheckoutActivity.java # 结账
│ │ │ │ │ ├── MyOrderActivity.java # 我的订单
│ │ │ │ │ ├── CategoryListActivity.java # 分类列表
│ │ │ │ │ ├── SearchFromHomeActivity.java # 搜索
│ │ │ │ │ ├── WishListActivity.java # 愿望清单
│ │ │ │ │ ├── AccountActivity.java # 账户中心
│ │ │ │ │ ├── LogInActivity.java # 登录
│ │ │ │ │ ├── SignUpActivity.java # 注册
│ │ │ │ │ ├── BlogActivity.java # 博客
│ │ │ │ │ ├── StoreFinderActivity.java # 门店查找
│ │ │ │ │ └── ... (共50+个Activity)
│ │ │ │ ├── adapter/ # RecyclerView 适配器
│ │ │ │ │ ├── CategoryAdapter.java
│ │ │ │ │ ├── ProductAdapter.java
│ │ │ │ │ ├── CartAdapter.java
│ │ │ │ │ ├── OrderAdapter.java
│ │ │ │ │ └── ...
│ │ │ │ ├── customview/ # 自定义视图
│ │ │ │ │ ├── bounceview/ # 弹跳效果
│ │ │ │ │ ├── contrycodepicker/ # 国家代码选择
│ │ │ │ │ ├── edittext/ # 自定义EditText
│ │ │ │ │ ├── htmltextview/ # HTML文本显示
│ │ │ │ │ ├── like/ # 点赞动画
│ │ │ │ │ ├── pinchtozoom/ # 图片缩放
│ │ │ │ │ ├── progressbar/ # 进度条
│ │ │ │ │ ├── rangeseekbar/ # 范围选择器
│ │ │ │ │ ├── roundedimageview/ # 圆角图片
│ │ │ │ │ ├── scratchview/ # 刮刮卡
│ │ │ │ │ └── swipeview/ # 滑动视图
│ │ │ │ ├── fcm/ # Firebase 云消息
│ │ │ │ ├── helper/ # 辅助类
│ │ │ │ │ └── DatabaseHelper.java # SQLite数据库
│ │ │ │ ├── interfaces/ # 接口定义
│ │ │ │ ├── javaclasses/ # Java工具类
│ │ │ │ │ └── SyncWishList.java # 愿望清单同步
│ │ │ │ ├── model/ # 数据模型
│ │ │ │ │ ├── Home.java
│ │ │ │ │ ├── CategoryList.java
│ │ │ │ │ ├── Product.java
│ │ │ │ │ ├── Cart.java
│ │ │ │ │ ├── Order.java
│ │ │ │ │ └── ...
│ │ │ │ └── utils/ # 工具类
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── Config.java
│ │ │ │ ├── Constant.java
│ │ │ │ ├── RequestParamUtils.java
│ │ │ │ └── Utils.java
│ │ │ ├── res/ # 资源文件
│ │ │ │ ├── layout/ # 布局文件
│ │ │ │ ├── drawable/ # 图片资源
│ │ │ │ ├── values/ # 值资源
│ │ │ │ └── ...
│ │ │ └── assets/ # 资产文件
│ │ │ └── font/ # 字体文件
│ │ └── build.gradle # 模块构建配置
│ └── build.gradle # 应用构建配置
├── gradle/ # Gradle 包装器
├── build.gradle # 项目构建配置
├── settings.gradle # 项目设置
└── ...
后端插件 (pgs-woo-api/):
├── pgs-woo-api.php # 主插件文件
├── inc/ # 包含文件
│ ├── tgm-plugin-activation/ # TGM 插件激活
│ │ └── core/plugins/
│ │ └── rest-api-oauth1.0.3.0.zip # OAuth 1.0 插件
│ └── ...
├── readme.txt # 插件文档
└── wpml-config.xml # WPML 配置
```
---
## 核心模块详解
### 1. 活动层 (Activities)
#### 首页 (HomeActivity)
```java
public class HomeActivity extends BaseActivity
implements OnItemClickListener, OnResponseListner {
// 首页组件
private BannerViewPagerAdapter bannerViewPagerAdapter; // Banner轮播
private CategoryAdapter categoryAdapter; // 分类适配器
private DynamicItemAdapter dynamicItemAdapter; // 动态内容
private RecentViewAdapter recentViewAdapter; // 最近浏览
private TopRatedProductAdapter topRatedProductAdapter; // 热门产品
// 加载首页数据
private void getHomeData() {
PostApi postApi = new PostApi(this, "getHomeData", this);
postApi.callPostApi();
}
}
```
#### 产品详情 (ProductDetailActivity)
- 产品图片画廊
- 产品信息展示
- 变体选择(颜色、尺寸等)
- 加入购物车
- 产品评价
- 相关产品推荐
#### 购物车 (CartActivity)
- 购物车商品列表
- 数量调整
- 删除商品
- 优惠券应用
- 结算按钮
#### 结账 (CheckoutActivity)
- 配送地址选择
- 配送方式选择
- 支付方式选择
- 订单备注
- 订单确认
### 2. 适配器层 (Adapters)
... (content truncated)