Ciyashop – 基于 WooCommerce 的 Android 电商应用项目分析

作者 : tideit 本文共8928个字,预计阅读时间需要23分钟 发布时间: 2026-03-11 共8人阅读

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)

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)

各种 RecyclerView 适配器:

 

  • CategoryAdapter: 分类列表
  • ProductAdapter: 产品列表
  • CartAdapter: 购物车商品
  • OrderAdapter: 订单列表
  • BannerViewPagerAdapter: Banner轮播
  • NavigationDrawerAdapter: 侧边导航

 

3. 自定义视图 (Custom Views)

丰富的自定义 UI 组件:

 

  • BounceView: 弹跳动画效果
  • CountryCodePicker: 国家代码选择器
  • HtmlTextView: HTML 文本渲染
  • Like Button: 点赞动画按钮
  • PinchToZoom: 图片缩放
  • RangeSeekBar: 价格范围选择
  • RoundedImageView: 圆角图片
  • ScratchView: 刮刮卡效果
  • SwipeView: 滑动操作

 

4. 数据模型 (Models)

核心数据模型:

// 首页数据
public class Home {
    private List banners;
    private List categories;
    private List featuredProducts;
    private List recentProducts;
    private List topRatedProducts;
}

// 产品 public class Product { private int id; private String name; private String price; private String regularPrice; private String salePrice; private List images; private List variations; private List attributes; }

// 购物车 public class Cart { private int productId; private String productName; private int quantity; private String price; private List cartMeta; }

// 订单 public class Order { private int id; private String orderNumber; private String status; private String total; private String dateCreated; private List lineItems; }

5. 网络层 (API Call)

使用自定义 API 库 (Ciyashop Library):

// GET 请求
GetApi getApi = new GetApi(context, "getProducts", this);
getApi.callGetApi();

// POST 请求 PostApi postApi = new PostApi(context, “addToCart”, this); postApi.callPostApi(params);

// 响应回调 public interface OnResponseListner { void onResponse(String response, String methodName); }

6. 数据库层 (SQLite)

本地数据持久化:

public class DatabaseHelper extends SQLiteOpenHelper {
    // 购物车表
    private static final String TABLE_CART = "cart";
    
    // 最近浏览表
    private static final String TABLE_RECENT = "recent";
    
    // 愿望清单表
    private static final String TABLE_WISHLIST = "wishlist";
    
    public void addToCart(CartItem item);
    public List getCartItems();
    public void updateCartItem(int productId, int quantity);
    public void deleteCartItem(int productId);
}

7. 工具类 (Utils)

常用工具方法:

public class Utils {
    // 价格格式化
    public static String formatPrice(String price);
    
    // 日期格式化
    public static String formatDate(String date);
    
    // 图片加载
    public static void loadImage(Context context, String url, ImageView imageView);
    
    // 网络检测
    public static boolean isNetworkAvailable(Context context);
    
    // 显示Toast
    public static void showToast(Context context, String message);
}

后端插件 (PGS Woo API)

功能概述

WordPress 插件,扩展 WooCommerce REST API,为移动应用提供专用接口。

核心功能

 

  • OAuth 1.0a 认证: 安全的 API 认证
  • 首页动态布局: 可配置的首页内容
  • 多语言支持: WPML 集成
  • 推送通知: Firebase 集成
  • 用户管理: 扩展用户资料
  • 订单管理: 增强订单接口

 

API 端点

/wp-json/pgs-woo-api/v1/home           # 首页数据
/wp-json/pgs-woo-api/v1/products       # 产品列表
/wp-json/pgs-woo-api/v1/categories     # 分类列表
/wp-json/pgs-woo-api/v1/cart           # 购物车操作
/wp-json/pgs-woo-api/v1/orders         # 订单管理
/wp-json/pgs-woo-api/v1/user           # 用户资料
/wp-json/pgs-woo-api/v1/wishlist       # 愿望清单

核心业务逻辑

1. 产品浏览流程

打开应用 → 加载首页 → 获取分类 → 选择分类 → 加载产品列表 → 选择产品 → 显示产品详情

2. 购物车流程

浏览产品 → 加入购物车 → 本地存储 → 打开购物车 → 显示商品 → 调整数量 → 结算

3. 结账流程

购物车 → 选择地址 → 选择配送方式 → 选择支付方式 → 创建订单 → 支付 → 订单确认

4. 用户认证流程

登录/注册 → OAuth 认证 → 获取 Token → 存储本地 → API 请求携带 Token

5. 愿望清单同步

登录用户 → 获取服务器愿望清单 → 合并本地数据 → 同步到服务器

核心代码示例

首页数据加载

private void getHomeData() {
    if (Utils.isInternetConnected(this)) {
        PostApi postApi = new PostApi(this, "getHomeData", this);
        postApi.callPostApi();
    } else {
        // 从缓存加载
        loadFromCache();
    }
}

@Override public void onResponse(String response, String methodName) { if (methodName.equals(“getHomeData”)) { Gson gson = new Gson(); Home homeData = gson.fromJson(response, Home.class); // 更新UI updateBanner(homeData.getBanners()); updateCategories(homeData.getCategories()); updateProducts(homeData.getFeaturedProducts()); } }

添加到购物车

public void addToCart(Product product, int quantity, List variations) {
    // 检查是否已存在
    CartItem existingItem = databaseHelper.getCartItem(product.getId());
    
    if (existingItem != null) {
        // 更新数量
        existingItem.setQuantity(existingItem.getQuantity() + quantity);
        databaseHelper.updateCartItem(existingItem);
    } else {
        // 新增商品
        CartItem newItem = new CartItem();
        newItem.setProductId(product.getId());
        newItem.setProductName(product.getName());
        newItem.setQuantity(quantity);
        newItem.setPrice(product.getPrice());
        newItem.setVariations(variations);
        databaseHelper.addToCart(newItem);
    }
    
    // 更新购物车数量
    updateCartCount();
    
    // 显示提示
    Utils.showToast(this, "Added to cart");
}

产品图片查看

// 使用 PinchToZoom 实现图片缩放
pinchToZoomImageView.setImageURI(Uri.parse(imageUrl));
pinchToZoomImageView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // 处理缩放手势
        return gestureDetector.onTouchEvent(event);
    }
});

技术栈

Android 端

 

  • Android SDK: Android 开发框架
  • AndroidX: 支持库
  • Material Design: UI 设计
  • Glide: 图片加载
  • Gson: JSON 解析
  • Firebase: 推送通知、分析
  • SQLite: 本地数据库
  • OAuth 1.0a: API 认证

 

后端

 

  • WordPress: CMS 平台
  • WooCommerce: 电商插件
  • PGS Woo API: 移动应用 API 插件
  • WP REST API: WordPress REST API
  • OAuth 1.0a Server: 认证插件
  • WPML: 多语言插件(可选)

 

依赖库

dependencies {
    // AndroidX
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.9.0'
    implementation 'androidx.recyclerview:recyclerview:1.3.0'
    
    // 图片加载
    implementation 'com.github.bumptech.glide:glide:4.15.1'
    
    // JSON 解析
    implementation 'com.google.code.gson:gson:2.10.1'
    
    // Firebase
    implementation 'com.google.firebase:firebase-messaging:23.1.2'
    implementation 'com.google.firebase:firebase-analytics:21.2.0'
    
    // 网络请求
    implementation 'com.squareup.okhttp3:okhttp:4.10.0'
    
    // 其他
    implementation 'androidx.viewpager2:viewpager2:1.0.0'
    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
}

配置说明

1. API 配置 (Config.java)

public class Config {
    // WordPress 站点 URL
    public static final String BASE_URL = "https://your-store.com";
    
    // API 路径
    public static final String API_URL = BASE_URL + "/wp-json/pgs-woo-api/v1/";
    
    // OAuth 配置
    public static final String CONSUMER_KEY = "your_consumer_key";
    public static final String CONSUMER_SECRET = "your_consumer_secret";
    
    // Firebase
    public static final String FCM_SERVER_KEY = "your_fcm_key";
}

2. 插件安装

 

  • 安装并配置 WooCommerce
  • 安装 WP REST API OAuth 1.0a Server 插件
  • 安装 PGS Woo API 插件
  • 配置 OAuth 应用
  • 获取 Consumer Key 和 Secret

 

总结

Ciyashop 是一个企业级的 WooCommerce 移动电商解决方案:

 

  • 功能完整: 涵盖电商所有核心功能
  • 原生体验: 原生 Android 应用,性能优秀
  • 实时同步: 与 WooCommerce 实时数据同步
  • 可定制: 丰富的自定义视图和布局
  • 多语言: 支持 WPML 多语言
  • 营销工具: 推送通知、优惠券、积分系统
  • 扩展性强: 插件架构,易于扩展

 

适合已有 WooCommerce 网站的商家,快速部署移动电商应用,或者作为独立电商应用开发基础。


资源在线 » Ciyashop – 基于 WooCommerce 的 Android 电商应用项目分析

常见问题FAQ

发表评论