# 定制商城 **Repository Path**: new-friends/custom-shop ## Basic Information - **Project Name**: 定制商城 - **Description**: 定制商城,完全自定义的WordPress商城主题,内置商品管理、购物车、订单系统、支付接口。 - **Primary Language**: PHP - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: https://sx.xurei.com - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 定制商城 - WordPress 自定义商城主题 定制商城,一个完全自主开发的 WordPress 商城主题,内置完整的商品管理、购物车、优惠券、订单系统、支付接口、多语言、多币种、会员、积分和 REST API。 [演示地址](https://sx.xurei.com) ## 功能特性 ### 商品管理 - 自定义文章类型 `product`,支持标题、详情、主图、多图画廊 - 商品价格、原价(划线价)、库存、SKU、重量 - 商品规格(颜色、尺寸等多规格组) - 商品分类 `product_cat` 和标签 `product_tag` - 上架/下架状态管理 - 库存自动扣减与恢复 - 支持多种商品类型 ### 购物车 - 游客 Session 购物车 + 登录用户持久化购物车 - Ajax 加购、修改数量、删除商品 - 实时计算总价和运费 - 库存校验,防止超卖 ### 订单系统 - 自定义文章类型 `shop_order` 存储订单 - 订单状态:待付款、已付款、已发货、已完成、已取消、已退款、部分退款 - 订单商品明细 JSON 存储 - 收货信息、支付方式、订单备注 - 后台订单管理:修改状态、填写物流、添加备注 - 前台用户中心:订单列表、订单详情、取消订单、确认收货 ### 支付网关 - 抽象支付网关层,支持扩展 - 内置:彩虹易支付 - 支付回调 REST API 接口 - 支付成功自动扣减库存 ### 用户系统 - 复用 WordPress 原生用户体系 - 用户收货地址管理 - 注册时手机号字段 - 用户列表显示订单数和消费总额 - 前台账户中心 ### REST API 完整的 REST API 接口,可对接小程序、App、Uniapp 等前端: - `GET /wp-json/custom-shop/v1/products` - 商品列表 - `GET /wp-json/custom-shop/v1/products/{id}` - 商品详情 - `GET /wp-json/custom-shop/v1/categories` - 商品分类 - `GET /wp-json/custom-shop/v1/cart` - 获取购物车 - `POST /wp-json/custom-shop/v1/cart/add` - 添加购物车 - `POST /wp-json/custom-shop/v1/cart/update` - 更新购物车 - `POST /wp-json/custom-shop/v1/cart/remove` - 移除购物车 - `GET /wp-json/custom-shop/v1/orders` - 订单列表 - `GET /wp-json/custom-shop/v1/orders/{id}` - 订单详情 - `POST /wp-json/custom-shop/v1/orders` - 创建订单 - `GET /wp-json/custom-shop/v1/user/info` - 用户信息 - `GET /wp-json/custom-shop/v1/user/address` - 用户地址 ## 主题文件结构 ``` custom-shop-theme/ ├── style.css # 主题样式(含全部前端样式) ├── functions.php # 主题核心入口 ├── index.php # 首页模板 ├── header.php # 页头 ├── footer.php # 页脚 ├── archive-product.php # 商品列表页 ├── single-product.php # 商品详情页 ├── inc/ │ ├── helper.php # 工具函数库 │ ├── cpt.php # 自定义文章类型注册 │ ├── meta-boxes.php # 后台元框 │ ├── ajax-cart.php # Ajax 购物车 │ ├── order-process.php # 订单处理逻辑 │ ├── payment-gateway.php # 支付网关抽象层 │ ├── user-profile.php # 用户资料扩展 │ └── rest-api.php # REST API 接口 ├── page-templates/ │ ├── template-cart.php # 购物车页面 │ ├── template-checkout.php # 结算页面 │ ├── template-my-orders.php # 我的订单 │ ├── template-order-detail.php # 订单详情 │ └── template-account.php # 我的账户 ├── assets/ │ ├── css/ │ │ ├── shop.css # 前端补充样式 │ │ └── admin.css # 后台管理样式 │ └── js/ │ ├── shop.js # 前端交互脚本 │ └── admin.js # 后台管理脚本 └── languages/ # 语言文件目录 ``` ## 安装方法 ### 方法一:WordPress 后台安装 1. 将 `custom-shop-theme` 文件夹打包为 zip 2. 进入 WordPress 后台 → 外观 → 主题 → 添加新主题 → 上传主题 3. 选择 zip 文件上传并启用 ### 方法二:FTP 安装 1. 将 `custom-shop-theme` 文件夹上传到 `wp-content/themes/` 目录 2. 进入 WordPress 后台 → 外观 → 主题,启用 "Custom Shop" ### 安装后 主题启用后会自动创建以下页面: - 购物车 (`/cart/`) - 结算 (`/checkout/`) - 我的订单 (`/orders/`) - 我的账户 (`/account/`) 如页面未自动创建,请手动新建页面并在"页面属性"中选择对应的模板。 ## 配置说明 ### 固定链接 请确保 WordPress 固定链接设置为非默认(如"文章名"),否则商品页面和 API 可能无法正常访问。 设置路径:后台 → 设置 → 固定链接 → 选择"文章名" → 保存更改 ### 支付配置 支付网关配置在 `inc/payment-gateway.php` 中: - `custom_shop_get_epay_config()` - 易支付配置 需要填入真实的商户号、密钥等信息才能使用在线支付。 ### 运费规则 默认运费规则在 `inc/helper.php` 的 `custom_shop_calculate_shipping()` 函数中: - 订单满 99 元包邮 - 不足 99 元收取 10 元运费 可根据需要修改。 ## 核心函数说明 ### 商品相关 - `custom_shop_get_product_price($product_id)` - 获取商品价格 - `custom_shop_get_product_stock($product_id)` - 获取商品库存 - `custom_shop_get_product_status($product_id)` - 获取商品状态 - `custom_shop_is_purchasable($product_id)` - 判断商品是否可购买 - `custom_shop_reduce_stock($product_id, $quantity)` - 扣减库存 - `custom_shop_restore_stock($product_id, $quantity)` - 恢复库存 ### 购物车相关 - `custom_shop_get_cart()` - 获取购物车数据 - `custom_shop_save_cart($cart)` - 保存购物车 - `custom_shop_get_cart_count()` - 获取购物车商品数量 - `custom_shop_get_cart_total()` - 获取购物车总价 - `custom_shop_clear_cart()` - 清空购物车 ### 订单相关 - `custom_shop_create_order($args)` - 创建订单 - `custom_shop_get_order_data($order_id)` - 获取订单数据 - `custom_shop_order_payment_complete($order_id)` - 标记支付完成 - `custom_shop_order_ship($order_id, $company, $tracking_no)` - 发货 - `custom_shop_order_complete($order_id)` - 完成订单 - `custom_shop_order_cancel($order_id)` - 取消订单 - `custom_shop_get_user_orders($user_id, $args)` - 获取用户订单列表 ### 支付相关 - `custom_shop_get_payment_methods()` - 获取可用支付方式 - `custom_shop_get_payment_url($method, $order_id)` - 获取支付跳转URL ## 扩展开发 ### 添加新的支付方式 在 `inc/payment-gateway.php` 中: 1. 在 `custom_shop_get_payment_methods()` 中添加新方式 2. 在 `custom_shop_get_payment_url()` 中处理跳转逻辑 3. 在 `custom_shop_register_payment_routes()` 中注册回调路由 4. 实现回调验证逻辑 ### 添加新的商品字段 1. 在 `inc/meta-boxes.php` 的元框中添加输入框 2. 在 `custom_shop_save_product_meta()` 中保存字段 3. 在 `inc/helper.php` 中添加获取函数 ### 自定义样式 主题样式全部在 `style.css` 中,可直接修改或使用子主题覆盖。 ## 系统要求 - WordPress 5.8+ - PHP 7.4+ - MySQL 5.6+ 或 MariaDB 10.0+ ## 注意事项 1. **支付安全**:在线支付需要配置 SSL 证书(HTTPS),确保支付回调安全 2. **库存并发**:高并发场景下建议使用数据库行锁或 Redis 锁防止超卖 3. **数据备份**:定期备份 WordPress 数据库,订单数据存储在 wp_posts 和 wp_postmeta 表中 4. **性能优化**:商品数量较多时建议安装缓存插件(如 WP Rocket、Redis Object Cache) ## 版本历史 ### v1.1.0 - 1.1.0版本发布 - 新增前后台多币种功能,支持前台多币种切换 - 新增前后台会员等级功能,支持会员升级、签到 - 新增前后台积分功能,支持签到获取积分,支付积分抵扣 ### v1.0.0 - 初始版本发布 - 完整的商品、购物车、订单系统 - 易支付支持 - 完整的 REST API - 响应式前端设计 ## 学习交流 ### 技术交流、功能定制、请备注定制商城 ![微信码](https://pb.xurei.com/weixin.jpg) ## 赞赏作者 ### 打赏随意,感谢支持 ![赞赏码](https://pb.xurei.com/zanshang.jpg) ## 许可证 GPL v2 or later。使用、二次开发、商用分发请确认当前仓库许可证授权要求。仓库内包含LICENSE文件。