[Teanary]又一个开源外贸电商系统及技术细节分享

简介: Teanary 是一款支持多节点部署、AI自动翻译与商品采集的全球化电商平台系统。基于 Laravel 与 Filament 构建,实现跨国数据同步、本地化运营与高可用架构,助力企业高效管理全球电商业务。

Teanary - 全球多节点电商平台系统

一个支持多节点部署、AI自动翻译、商品采集的现代化全球电商平台系统。专为解决跨国电商运营难题而设计。

代码已通过单元测试和静态分析,普通bug反馈请通过Issues提交;安全相关bug请通过Email(hello@teanary.com)提交

🎮 在线演示

前端地址: https://demo.chatterup.fun:2003
后台管理: https://demo.chatterup.fun:2003/m

测试账号(前后端通用):

  • 邮箱: demo@demo.com
  • 密码: demo123456

重要说明:

  • ⚠️ Demo 数据每 8 小时自动重置一次
  • 💻 当前 Demo 服务器运行在一台树莓派上,性能有限,请谅解
  • 🌐 如果您愿意赞助服务器资源部署 Demo,我们可以部署多节点同步演示环境,展示完整的多节点同步功能
  • 📧 如有赞助意向或想了解更多信息,请联系:hello@teanary.com

🌟 核心特性

🌍 多节点数据同步系统

解决的核心问题:

  • 跨国服务器管理难题:服务器在国外,管理网站不方便?在中国部署管理节点,数据自动同步到全球各节点
  • 本地化运营:不同国家/地区运行独立节点,提供本地化服务,提升用户体验
  • 数据一致性:多节点数据自动双向同步,以最新数据为准,确保全球数据一致
  • 故障容灾:单个节点故障不影响其他节点,系统自动重试同步

技术特点:

  • 🔄 双向同步:支持任意数量节点间的数据双向同步
  • 📦 批量同步:多条记录打包同步,大幅提升效率
  • 🔐 安全可靠:API Key 验证,支持 HTTPS 加密传输
  • 📁 文件同步:自动同步媒体文件(图片、资源等)
  • 🔁 自动重试:同步失败自动重试,确保数据不丢失
  • 📊 同步监控:完整的同步日志和状态跟踪

适用场景:

  • 中国管理节点 + 美国/欧洲/亚洲等多个销售节点
  • 不同国家/地区独立运营,数据统一管理
  • 需要本地化服务但统一数据源的场景

🤖 AI 自动翻译系统

功能特点:

  • 🌐 多语言支持:支持 8 种语言自动翻译(中文、英文、西班牙语、法语、日语、韩语、德语、俄语)
  • 📝 内容翻译:自动翻译商品信息、文章内容、分类描述等
  • 🎯 智能识别:自动识别 HTML 内容,保留标签结构
  • 批量处理:支持批量翻译,提升效率
  • 🔄 状态跟踪:翻译状态实时跟踪(待翻译、翻译中、已完成、失败)

技术实现:

  • 集成 Ollama 本地 AI 模型,无需第三方 API
  • 支持自定义翻译提示词,优化翻译质量
  • 异步队列处理,不阻塞主流程

🛒 Chrome 插件商品采集

功能特点:

  • 🛍️ 1688 商品采集:一键采集 1688 商品信息
  • 📸 图片自动下载:自动下载商品图片并上传到服务器
  • 🌐 多语言处理:自动提取中文信息,准备翻译
  • 📋 批量导入:支持批量商品导入
  • 🔄 数据同步:采集的商品自动同步到所有节点

使用场景:

  • 从 1688 等平台快速采集商品
  • 批量导入商品到电商平台
  • 自动化商品管理流程

🛍️ 完整电商功能

  • 产品管理:多规格、多图片、多语言产品信息
  • 分类系统:灵活的层级分类和属性筛选
  • 购物车:实时购物车功能
  • 订单管理:完整的订单流程和状态跟踪
  • 支付集成:支持 PayPal 等多种支付方式
  • 促销系统:灵活的促销规则和优惠券
  • 用户系统:用户注册、登录、个人中心
  • 内容管理:多语言文章系统
  • SEO 优化:自动生成 SEO 标签

🎨 现代化管理后台

  • Filament 3.x:基于 Laravel 的现代化管理面板
  • 实时数据统计:销售数据、用户统计等
  • 多语言管理:统一管理所有语言内容
  • 媒体管理:图片上传、优化、管理
  • 系统设置:灵活的配置管理

🚀 技术栈

后端技术

  • Laravel 12.x - PHP Web 框架
  • PHP 8.1+ - 服务器端语言
  • MySQL 8.0+ - 数据库
  • Redis - 缓存和会话存储
  • Laravel Octane - 高性能应用服务器

前端技术

  • Tailwind CSS 3.x - 实用优先的 CSS 框架
  • Livewire 3.x - 全栈框架
  • Alpine.js - 轻量级 JavaScript 框架
  • Vite - 现代前端构建工具

管理后台

  • Filament 3.x - Laravel 管理面板
  • 自定义组件 - 针对业务定制的管理组件

其他工具

  • Laravel Media Library - 媒体文件管理
  • Laravel Scout - 全文搜索
  • Laravel Queue - 队列处理
  • Laravel Notifications - 通知系统
  • Ollama - 本地 AI 模型(用于翻译)

📦 快速开始

环境要求

  • PHP >= 8.1
  • Composer
  • Node.js >= 16.x
  • MySQL >= 8.0
  • Redis
  • Ollama (可选,用于 AI 翻译)

安装步骤

  1. 克隆项目

    git clone https://gitee.com/teanary/teanary_service.git
    cd teanary_service
    
    git clone https://github.com/TeanaryService/teanary_srvice.git
    cd teanary_service
    
  2. 安装依赖

    composer install
    npm install
    
  3. 环境配置

    cp .env.example .env
    php artisan key:generate
    
  4. 配置数据库
    编辑 .env 文件:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=teanary
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
    
  5. 配置多节点同步(可选)
    ```env
    SYNC_ENABLED=true
    SYNC_NODE=node1

配置其他节点

SYNC_NODE2_URL=https://node2.example.com
SYNC_NODE2_API_KEY=your-secret-api-key
SYNC_NODE2_TIMEOUT=600


6. **运行数据库迁移**
```bash
php artisan migrate
php artisan db:seed
  1. 构建前端资源

    npm run build
    
  2. 启动开发服务器

    php artisan serve
    

访问 http://localhost:8000 查看网站。

🌐 多节点部署指南

为什么选择程序层同步而不是 MySQL 主从同步?

在跨国多节点部署场景下,我们选择了程序层数据同步而非传统的 MySQL 主从同步,主要原因如下:

1. 高网络延迟环境下的可靠性

  • 🌍 跨国网络延迟:中国到美国/欧洲的数据库连接延迟通常在 200-400ms,MySQL 主从同步在高延迟环境下容易出现超时和连接中断
  • 🔄 程序层同步:通过 HTTP/HTTPS API 进行数据同步,可以更好地处理网络波动,支持重试机制和断点续传

2. 灵活的数据同步策略

  • 📦 批量同步:程序层可以智能地将多条记录打包同步,大幅提升效率
  • 🎯 选择性同步:可以只同步需要的数据,避免同步不必要的系统表、日志表等
  • 🔀 双向同步:支持任意节点间的双向同步,而 MySQL 主从通常是单向的

3. 更好的容错和恢复能力

  • 🔁 自动重试:同步失败可以自动重试,不会因为网络波动导致数据丢失
  • 📊 同步监控:完整的同步日志和状态跟踪,可以清楚地知道每条数据的同步状态
  • 🛡️ 冲突处理:可以基于业务逻辑处理数据冲突(如以最新数据为准)

4. 跨数据库兼容性

  • 🗄️ 数据库无关:不依赖特定的数据库类型,可以支持 MySQL、PostgreSQL 等不同数据库
  • 🔧 易于扩展:未来如果需要支持其他数据库类型,只需修改同步逻辑,无需改变数据库架构

5. 业务逻辑集成

  • 🎨 数据转换:可以在同步过程中进行数据转换、验证和业务逻辑处理
  • 📁 文件同步:可以同时同步媒体文件、图片等,而 MySQL 主从同步无法处理文件

6. 安全性考虑

  • 🔐 API 认证:使用 API Key 进行认证,比直接暴露数据库连接更安全
  • 🔒 HTTPS 加密:所有数据传输通过 HTTPS 加密,保护数据安全

总结:在跨国高延迟网络环境下,程序层同步提供了更好的可靠性、灵活性和可维护性,更适合复杂的多节点电商场景。

场景示例

场景 1:中国管理 + 全球销售节点

中国节点(管理节点)
├── 美国节点(销售节点)
├── 欧洲节点(销售节点)
└── 亚洲节点(销售节点)

场景 2:多地区独立运营

北京节点
├── 上海节点
├── 广州节点
└── 深圳节点

配置步骤

  1. 在每个节点配置环境变量
    ```env

    节点 1 配置

    SYNC_ENABLED=true
    SYNC_NODE=beijing
    SYNC_BEIJING_URL=https://beijing.example.com
    SYNC_BEIJING_API_KEY=key-for-beijing
    SYNC_SHANGHAI_URL=https://shanghai.example.com
    SYNC_SHANGHAI_API_KEY=key-for-shanghai

节点 2 配置

SYNC_ENABLED=true
SYNC_NODE=shanghai
SYNC_BEIJING_URL=https://beijing.example.com
SYNC_BEIJING_API_KEY=key-for-beijing
SYNC_SHANGHAI_URL=https://shanghai.example.com
SYNC_SHANGHAI_API_KEY=key-for-shanghai


2. **配置雪花 ID 机器 ID**
每个节点必须配置不同的机器 ID:
```env
SNOWFLAKE_MACHINE_ID=1  # 节点 1
SNOWFLAKE_MACHINE_ID=2  # 节点 2
  1. 启动队列处理
    php artisan queue:work
    

详细配置请参考 SYNC.md

📡 API 文档

商品上传接口

接口地址: POST /api/products/add

功能: 上传商品,支持多语言、多规格、分类自动创建、图片上传

请求示例:

curl -X POST https://your-domain.com/api/products/add \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-token" \
  -d '{
    "slug": "product-slug",
    "translations": [
      {
        "language_id": 1,
        "name": "商品名称",
        "description": "商品描述"
      }
    ],
    "variants": [
      {
        "sku": "SKU-001",
        "price": 99.99,
        "stock": 100
      }
    ]
  }'

文章上传接口

接口地址: POST /api/articles/add

功能: 上传文章,支持多语言、图片上传

详细 API 文档请参考代码中的接口定义。

📄 开源协议

本项目采用 AGPL-3.0 (GNU Affero General Public License v3.0) 开源协议。

协议要点

您可以:

  • ✅ 自由使用、研究、修改代码
  • ✅ 自由分发代码
  • ✅ 用于商业项目

您必须:

  • ⚠️ 如果修改代码并部署为网络服务,必须公开修改后的源代码
  • ⚠️ 保留原始版权声明和协议声明
  • ⚠️ 使用相同的协议发布衍生作品

您不能:

  • ❌ 修改代码后作为闭源商业产品售卖
  • ❌ 移除版权声明

为什么选择 AGPL?

  • 保护开源项目的完整性
  • 防止将开源项目包装成闭源商业产品
  • 鼓励贡献回社区

完整协议内容请查看 LICENSE 文件。

🤝 贡献指南

我们欢迎社区贡献!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

代码规范

  • 遵循 PSR-12 编码标准
  • 使用有意义的变量和函数名
  • 添加适当的注释
  • 编写单元测试
  • 运行代码质量检查:composer check

📊 项目结构

teanary_service/
├── app/
│   ├── Console/          # 控制台命令
│   ├── Enums/           # 枚举类
│   ├── Filament/        # Filament管理面板
│   ├── Http/            # HTTP控制器
│   ├── Jobs/            # 队列任务
│   ├── Livewire/        # Livewire组件
│   ├── Models/          # 数据模型
│   ├── Services/        # 业务服务
│   │   └── SyncService.php  # 多节点同步服务
│   └── Traits/          # 特征类
│       └── Syncable.php     # 同步功能 Trait
├── config/
│   └── sync.php         # 同步配置
├── database/
│   ├── migrations/      # 数据库迁移
│   └── seeders/         # 数据填充
├── lang/                # 多语言文件(8种语言)
├── routes/              # 路由定义
└── tests/               # 测试文件

🧪 测试

# 运行所有测试
composer test

# 运行单元测试
php bin/phpunit tests/Unit/

# 运行功能测试
php bin/phpunit tests/Feature/

📚 相关文档

🌐 部署指南

高性能部署(推荐)

本项目已配置 Laravel Octane 高性能部署。

首次部署

vendor/bin/dep deploy:first teanary

常规部署

vendor/bin/dep deploy teanary

详细部署说明请参考 README 中的部署章节。


Teanary - 让全球电商运营更简单 🌍

相关文章
|
4月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
43112 11
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
2521 0
|
4月前
|
数据采集 存储 JSON
构建1688店铺商品数据集:Python爬虫数据采集与格式化实践
构建1688店铺商品数据集:Python爬虫数据采集与格式化实践
|
3月前
|
弹性计算 运维 小程序
阿里云轻量应用服务器开箱测评:最新升级200M带宽,不限流量
阿里云轻量应用服务器开箱测评:200M峰值带宽、不限流量,2核2G仅38元/年!主打“开箱即用”,支持一键部署WordPress、宝塔等镜像,新手也能快速建站。实测性能稳定,适合个人博客、小程序后端等轻量场景,性价比极高,是入门云服务器的理想选择。
690 7
|
2月前
|
人工智能 API
阿里云百炼平台和通义AI大模型有什么区别?一个是调用api的平台,一个是大模型
阿里云百炼是大模型调用平台,通义大模型是阿里自研的AI模型(如通义千问、万相等)。百炼提供厨房,通义提供食材,你来烹饪。开通百炼可免费领7000万Tokens,用完需付费。
|
4月前
|
存储 机器学习/深度学习 自然语言处理
Transformer参数规模深度解析:从模型聪明说到实际影响
Transformer参数规模显著影响模型能力,参数越多,知识容量与模式识别能力越强,但存在边际效应和过拟合风险。现代大模型通过混合专家、量化压缩等技术提升参数效率,未来趋势是优化参数使用而非盲目扩大规模,实现性能与效率的平衡。(238字)
|
2月前
|
存储 弹性计算 应用服务中间件
2026年阿里云轻量应用服务器测评、选型指南及常见问题解答
阿里云轻量应用服务器是面向轻量至中负载业务设计的集成化云服务,核心优势在于整合计算、存储、网络资源,预装常用应用镜像,简化配置流程,同时标配200M峰值带宽且不限流量,兼顾易用性与高带宽特性。相比传统ECS云服务器,它无需手动拆分资源配置,开箱即用,更适合个人开发者、小微团队及中小企业的轻量业务需求。以下从规格族分类、核心配置、实测性能、价格体系、场景适配及避坑指南等维度,用通俗语言拆解其核心信息,附详细表格对比,帮助用户判断是否值得入手及如何精准选型。
679 0
|
6月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
4219 123
|
3月前
|
人工智能 BI 开发工具
适合个人开发者的5款开发工具,开发者必须知道
2025年,个人开发者迎来工具黄金时代。本文精选5款高效开发利器:GitHub Copilot(AI智能编程)、Trae(中文友好)、Cursor(项目级理解)、VS Code(开源全能)和Zoho Creator(低代码平台),覆盖从代码生成到应用搭建,助你提升效率,快速实现创意。
1447 2
|
8月前
|
存储 前端开发 数据可视化
ThinkPHP在线客服系统源码_可视化开源在线网页客服聊天系统源码uniapp
本文详解在线客服系统源码构建,涵盖系统架构、技术选型、代码实现与功能特性,为开发者和企业提供参考。