项目分析报告:Grocery Store Android App
项目概述
项目名称: Grocery Store
包名: codecanyon.grocery
版本: 1.6
平台: Android + Web 管理后台
开发语言: Java (Android) / PHP (Web 后台)
数据库: MySQL
开发商: Codecanyon
Grocery Store 是一款完整的杂货店电商解决方案,包含 Android 用户应用、Web 管理后台和配送系统。
功能描述
用户端功能 (Android App)
- 用户认证: 注册、登录、忘记密码
- 商品浏览: 分类浏览、搜索商品
- 商品详情: 查看商品图片、描述、价格
- 购物车: 添加/删除商品、修改数量
- 地址管理: 添加/编辑配送地址
- 订单管理: 下单、查看订单状态、取消订单
- 支付方式: 货到付款
- 配送时间: 选择配送日期和时间
- 订单追踪: 查看订单配送状态
管理后台功能 (Web Panel)
- 仪表板: 销售统计、订单概览
- 商品管理: 添加/编辑/删除商品
- 分类管理: 商品分类管理(支持多级分类)
- 订单管理: 查看订单、更新订单状态
- 用户管理: 查看注册用户
- 配送管理: 配送区域、配送费用设置
- 营业时间: 设置配送时间
- 库存管理: 商品库存管理
- 促销管理: 设置折扣和促销
主要模块
Android 应用模块
| 模块 |
功能说明 |
| SplashActivity |
启动页面 |
| MainActivity |
主界面(商品列表) |
| LoginActivity |
用户登录 |
| RegisterActivity |
用户注册 |
| ForgotActivity |
忘记密码 |
| Fragment/Home |
首页商品展示 |
| Fragment/Cart |
购物车管理 |
| Fragment/Delivery |
配送信息填写 |
| Fragment/Order |
订单管理 |
| Adapter |
列表适配器 |
| Model |
数据模型 |
| Config |
配置常量 |
| FCM |
Firebase 推送通知 |
Web 后台模块
| 模块 |
功能说明 |
| Dashboard |
仪表板统计 |
| Products |
商品管理 |
| Categories |
分类管理 |
| Orders |
订单管理 |
| Users |
用户管理 |
| Settings |
系统设置 |
项目结构
/
├── Grocery/ # Android 应用
│ ├── app/src/main/
│ │ ├── java/codecanyon/grocery/
│ │ │ ├── SplashActivity.java # 启动页
│ │ │ ├── MainActivity.java # 主界面
│ │ │ ├── LoginActivity.java # 登录
│ │ │ ├── RegisterActivity.java # 注册
│ │ │ ├── ForgotActivity.java # 忘记密码
│ │ │ ├── AppController.java # 应用控制器
│ │ │ ├── Adapter/ # 适配器
│ │ │ │ ├── Cart_adapter.java
│ │ │ │ ├── Home_adapter.java
│ │ │ │ ├── Product_adapter.java
│ │ │ │ └── My_order_detail_adapter.java
│ │ │ ├── Fragment/ # 碎片页面
│ │ │ │ ├── Cart_fragment.java
│ │ │ │ ├── Delivery_fragment.java
│ │ │ │ ├── Delivery_payment_detail_fragment.java
│ │ │ │ └── ...
│ │ │ ├── Model/ # 数据模型
│ │ │ ├── Config/ # 配置
│ │ │ ├── util/ # 工具类
│ │ │ └── fcm/ # Firebase 通知
│ │ └── AndroidManifest.xml
│ └── build.gradle
├── grocery store admin panel/ # Web 管理后台 (PHP)
│ ├── admin/
│ │ ├── dashboard.php
│ │ ├── products/
│ │ ├── categories/
│ │ ├── orders/
│ │ └── users/
│ ├── application/
│ │ ├── controllers/
│ │ ├── models/
│ │ └── views/
│ ├── system/ # CodeIgniter 框架
│ ├── index.php
│ └── ps_lang.php # 语言文件
├── assets/ # 静态资源
├── grocery_store_database.sql # 数据库脚本
├── sale_table_update_only.sql # 数据库更新脚本
└── readme.txt # 更新说明
核心业务逻辑
购物流程
1. 用户浏览商品 → 添加到购物车
2. 查看购物车 → 修改数量
3. 填写配送地址 → 选择配送时间
4. 确认订单 → 提交订单
5. 后台处理订单 → 更新订单状态
6. 配送商品 → 用户收货付款
订单状态流程
待处理 → 已确认 → 配货中 → 配送中 → 已完成
↓
已取消
库存管理
- 下单时扣减库存
- 取消订单时恢复库存
- 库存不足时显示缺货
核心代码文件
Android 端
| 文件路径 |
说明 |
SplashActivity.java |
启动页面,检查网络和登录状态 |
MainActivity.java |
主界面,商品列表展示 |
LoginActivity.java |
用户登录 |
RegisterActivity.java |
用户注册 |
Fragment/Cart_fragment.java |
购物车管理 |
Fragment/Delivery_fragment.java |
配送信息填写 |
Adapter/Cart_adapter.java |
购物车列表适配器 |
Adapter/Product_adapter.java |
商品列表适配器 |
fcm/MyFirebaseMessagingService.java |
Firebase 消息服务 |
Web 后台
| 文件路径 |
说明 |
admin/dashboard.php |
仪表板 |
admin/products/ |
商品管理 |
admin/orders/orderdetails.php |
订单详情 |
admin/orders/orderslist.php |
订单列表 |
application/models/Product_model.php |
商品数据模型 |
application/config/config.php |
框架配置 |
技术栈
Android 端
| 技术 |
用途 |
| Android SDK |
应用开发 |
| Firebase Cloud Messaging |
推送通知 |
| Volley/Picasso |
网络请求和图片加载 |
| Material Design |
UI 设计 |
Web 后台
| 技术 |
用途 |
| PHP 7.0+ |
后端开发 |
| CodeIgniter |
PHP 框架 |
| MySQL |
数据库 |
| jQuery/Bootstrap |
前端 UI |
数据库设计
主要数据表
| 表名 |
说明 |
| users |
用户表 |
| registers |
注册用户表 |
| products |
商品表 |
| categories |
分类表 |
| sale |
订单表 |
| sale_items |
订单商品项 |
| addresses |
用户地址表 |
| delivery_details |
配送详情表 |
订单表结构 (sale)
CREATE TABLE `sale` (
`sale_id` INT PRIMARY KEY,
`user_id` INT,
`address_id` INT,
`delivery_date` DATE,
`delivery_time` VARCHAR(50),
`total_amount` DECIMAL(10,2),
`delivery_charge` DECIMAL(10,2),
`status` VARCHAR(50),
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
版本更新历史
| 版本 |
日期 |
更新内容 |
| 1.6 |
– |
新增订单日期字段,支持取消订单时恢复库存 |
| 1.5 |
2018-03-30 |
修复 PHP 7.0 兼容性问题 |
| 1.4 |
– |
新增商品描述,修复管理员资料编辑,支持小数价格 |
| 1.3 |
2017-09-06 |
优化商品图片加载速度 |
| 1.2 |
2017-09-03 |
修复注册用户列表显示 |
| 1.1 |
2017-08-08 |
修复搜索、地址列表、分类显示等 bug |
配置说明
Android 端配置
- API 地址: 修改为后台 API 地址
- Firebase 配置: 添加 google-services.json
- 应用名称: 修改 strings.xml 中的应用名称
- 主题颜色: 修改 colors.xml 中的颜色配置
Web 后台配置
- 数据库连接: 配置 database.php
- Base URL: 配置 config.php 中的 base_url
- Session 配置: 使用 database session driver
- 图片上传路径: 配置上传目录
演示信息
演示后台
- 账号:admin@gmail.com [2]
- 密码:terminal
演示应用
- 账号:user@gmail.com [3]
- 密码:terminal
部署步骤
Android 应用
- 修改 API 地址指向自己的服务器
- 配置 Firebase (google-services.json)
- 自定义应用名称和图标
- 生成签名 APK
Web 后台
- 上传代码到服务器
- 创建 MySQL 数据库
- 导入 grocery_store_database.sql
- 配置数据库连接
- 配置 base_url
- 设置目录权限
总结
Grocery Store 是一款完整的杂货店电商解决方案,包含 Android 用户应用和 Web 管理后台。应用采用 CodeIgniter PHP 框架开发后端,Android 端使用原生 Java 开发。功能涵盖商品管理、购物车、订单管理、配送管理等完整的电商流程。
优势特点:
- 完整的电商功能实现
- 多端支持(Android + Web)
- 实时订单状态更新
- Firebase 推送通知
- 代码结构清晰,易于定制
注意事项:
- 需要 PHP 7.0+ 环境
- 需要配置 Firebase 服务
- 数据库 session 需要额外配置
- 建议根据业务需求调整配送逻辑