You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于用户的Woocommerce购物车REST API开发需求咨询

WooCommerce 安卓端可用用户维度购物车REST API实现方案

核心设计思路

WooCommerce默认购物车基于Cookie会话实现,不支持多端用户维度的购物车数据同步,因此需要自定义独立的购物车数据存储与API逻辑,完全绕开默认会话机制,直接绑定用户ID或未登录用户的设备唯一标识。

前置准备

在WordPress数据库中新增自定义购物车表wp_custom_user_cart,字段定义如下:

字段名类型说明
cart_idbigint(20)主键,自增
user_idbigint(20)登录用户ID,未登录用户为0
device_uuidvarchar(100)未登录用户安卓端传的设备唯一标识,登录用户可为空
product_idbigint(20)商品ID
variation_idbigint(20)变体商品ID,普通商品为0
quantityint(10)商品加购数量
created_atdatetime创建时间
updated_atdatetime更新时间

自定义API开发步骤

所有代码可写入当前主题的functions.php文件,也可封装为独立插件部署。

1. 注册REST API路由

add_action('rest_api_init', function () {
    // 加购接口
    register_rest_route('custom-cart/v1', '/add', [
        'methods' => 'POST',
        'callback' => 'custom_cart_add_item',
        'permission_callback' => '__return_true',
    ]);
    // 查询购物车接口
    register_rest_route('custom-cart/v1', '/list', [
        'methods' => 'GET',
        'callback' => 'custom_cart_get_list',
        'permission_callback' => '__return_true',
    ]);
    // 修改商品数量接口
    register_rest_route('custom-cart/v1', '/update-quantity', [
        'methods' => 'POST',
        'callback' => 'custom_cart_update_quantity',
        'permission_callback' => '__return_true',
    ]);
    // 删除商品接口
    register_rest_route('custom-cart/v1', '/delete', [
        'methods' => 'POST',
        'callback' => 'custom_cart_delete_item',
        'permission_callback' => '__return_true',
    ]);
});

2. 通用用户身份识别逻辑

封装公共函数获取请求对应的用户标识:

function get_custom_cart_user_identity() {
    $user_id = get_current_user_id();
    $device_uuid = isset($_SERVER['HTTP_X_DEVICE_UUID']) ? sanitize_text_field($_SERVER['HTTP_X_DEVICE_UUID']) : '';
    return [
        'user_id' => $user_id,
        'device_uuid' => $device_uuid
    ];
}

3. 各接口业务逻辑实现

  • 加购接口逻辑
    接收product_id、quantity、variation_id(可选)参数,先校验商品是否存在、库存是否充足,再查询当前用户/设备是否已加购该商品,已加购则累加数量,未加购则新增记录,返回最新购物车列表。
  • 查询购物车接口逻辑
    根据用户身份查询对应所有购物车条目,组装商品名称、缩略图、单价、小计等信息返回。
  • 修改数量接口逻辑
    接收cart_id或product_id+variation_id、quantity参数,更新对应条目数量,数量为0时自动删除该条目。
  • 删除商品接口逻辑
    接收cart_id参数,删除对应购物车条目。

安卓端调用规范

  • 登录用户请求接口时需在请求头携带WooCommerce JWT验证信息,确保能正常获取到user_id
  • 未登录用户需在请求头携带X-Device-UUID参数,值为安卓端生成的设备唯一标识
  • 用户登录成功后可调用合并接口,将当前设备UUID对应的购物车数据全部合并到登录用户的user_id下,清空原设备UUID对应的购物车记录

注意事项

  • 所有操作前必须遵循WooCommerce原生商品规则校验,比如商品是否上架、库存是否足够、是否限购等,避免出现非法加购的情况
  • 接口返回格式统一为JSON,状态码遵循REST规范:200为操作成功、400为参数错误、403为权限不足、404为商品/购物车条目不存在

内容的提问来源于stack exchange,提问作者kuldeep kush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:06:08