E-Commerce-Example-Flutter
一个仅供客户使用的Flutter电商应用程序。支持身份验证操作(注册-登录-登出),以两种语言(阿拉伯语和英语)展示市场上的产品,并支持购买和添加到个人购物车。
兼容Android, IOS, Web, Windows, MacOS平台。
功能 ?
- 注册新客户、登录、登出以及保存用户令牌。
- 浏览产品并展示单个产品在自己的页面上。
- 支持分页将文档分成页面。
- 将产品添加到购物车/从购物车中删除。
- 显示购物车摘要以及已购买的产品。
- 支持多种语言(阿拉伯语 – 英语)。
- 适应不同屏幕尺寸的屏幕、尺寸和字体大小。
功能描述
- 采用Clean Architecture Pattern设计。
- 使用的状态管理是Riverpod。
- 使用easy_localization进行本地化。
- 使用dio与RESTful API进行通信。
- 使用freezed进行建模。
- 使用fluro进行导航。
- 使用flutter_screenutil进行屏幕适配。
- 依赖注入使用get_it。
截图 ?
| 浏览产品 | 注册新账户 | 登录 |
|---|---|---|
![]() |
![]() |
![]() |
| 显示产品本身 | 购物车 | 设置 |
![]() |
![]() |
![]() |
应用于您的项目
- 在*lib\core\api\api_config.dart*文件中更改您的基础URL和其他路由。
- 您从API检索到的关于用户的JSON数据(当发送请求时:登录-注册-检查令牌)应包含如下键:
{
"data": {
"id": 278,
"name": "test user",
"email": "[email protected]"
}
}
- 您从API检索到的关于产品的JSON数据(当发送请求时:getProductById-getProducts)应包含如下键:
{
"data": {
"id": 1,
"title": "Maxime qui incidunt quas nobis porro fugit.",
"description": "Asperiores et nihil in sed consequatur at. Quia laboriosam ullam numquam sint unde ipsa eius. Aperiam ad necessitatibus non qui.",
"price": {
"value": "3764.33",
"currency": "SYP",
"formatted": "SYP3,764"
},
"image": {
"id": 1,
"file_name": "Product-1.png",
"conversions": {
"small": "https://your_base_url/storage/1/conversions/Product-1-small.png",
"medium": "https://your_base_url/storage/1/conversions/Product-1-medium.png",
"large": "https://your_base_url/storage/1/conversions/Product-1-large.png",
"default": "https://your_base_url/storage/1/conversions/Product-1-default.png"
}
}
}
}
- 您从API检索到的关于带分页的产品的JSON数据(当发送请求时:getProducts)应包含如下键:
{
"data": [
{
"id": 1,
"title": "Maxime qui incidunt quas nobis porro fugit.",
"description": "Asperiores et nihil in sed consequatur at. Quia laboriosam ullam numquam sint unde ipsa eius. Aperiam ad necessitatibus non qui.",
"price": {
"value": "3764.33",
"currency": "SYP",
"formatted": "SYP3,764"
},
"image": {
"id": 1,
"file_name": "Product-1.png",
"conversions": {
"small": "https://your_base_url/storage/1/conversions/Product-1-small.png",
"medium": "https://your_base_url/storage/1/conversions/Product-1-medium.png",
"large": "https://your_base_url/storage/1/conversions/Product-1-large.png",
"default": "https://your_base_url/storage/1/conversions/Product-1-default.png"
}
}
},
...
],
"links": {
"first": "https://your_base_url/api/product?page=1",
"last": "https://your_base_url/api/product?page=4",
"prev": null,
"next": "https://your_base_url/api/product?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 4,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://your_base_url/api/product?page=1",
"label": "1",
"active": true
},
...
{
"url": "https://your_base_url/api/product?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://your_base_url/api/product",
"per_page": "10",
"to": 10,
"total": 40
}
}
- 您从API检索到的关于购物车的JSON数据(当发送请求时:getCart-addToCart-deleteFromCart)应包含如下键:
{
"data": {
"id": 78,
"total": {
"value": "11292.99",
"currency": "SYP",
"formatted": "SYP11,293"
},
"items": 1,
"products": [
{
"id": 497,
"product_id": 1,
"total": {
"value": "11292.99",
"currency": "SYP",
"formatted": "SYP11,293"
},
"unit_price": {
"value": "3764.33",
"currency": "SYP",
"formatted": "SYP3,764"
},
"total_quantity": 3
},
...
]
}
}
- 或者,您可以通过编辑*models*和*remote_datasources*来定制检索到的数据。







