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

如何通过API在第三方Shopify网站实现自动添加商品至购物车?

Shopify 自动添加商品至购物车的PHP实现方案

核心逻辑

Shopify 购物车基于会话(Cookie)维护状态,添加商品的核心是向店铺的 /cart/add.js 端点发送POST请求,传入正确的商品变体ID和数量,同时保留会话Cookie以保证购物车状态一致。

具体实现步骤(PHP + cURL)

1. 获取目标商品的变体ID

Shopify 商品的每个规格(颜色、尺寸等)对应唯一的变体ID,这是添加购物车的关键参数,可通过两种方式获取:

  • 直接查看商品页面源码,搜索 variantId 或 data-variant-id 字段;
  • 调用店铺公开商品API:请求 https://{店铺域名}/products/{商品handle}.json,在返回的JSON中提取 variants 数组里的 id 值。

2. 编写PHP cURL代码实现添加操作

以下是完整示例代码,包含Cookie维护、请求构造和结果处理:

<?php
// 配置参数
$shopDomain = 'your-shop-domain.myshopify.com'; // 目标店铺域名
$variantId = 123456789; // 商品变体ID
$quantity = 1; // 购买数量

// 初始化cURL会话
$ch = curl_init();

// 发送添加商品请求,保存会话Cookie
$addCartUrl = "https://{$shopDomain}/cart/add.js";
$postData = json_encode([
    'id' => $variantId,
    'quantity' => $quantity
]);

curl_setopt_array($ch, [
    CURLOPT_URL => $addCartUrl,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' // 模拟浏览器UA,避免被拦截
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_COOKIEJAR => 'shopify_cookie.txt', // 保存Cookie到本地文件
    CURLOPT_FOLLOWLOCATION => true
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// 处理添加结果
if ($httpCode === 200) {
    $responseData = json_decode($response, true);
    echo "商品添加成功:" . $responseData['title'] . "\n";
} else {
    echo "添加失败,HTTP状态码:{$httpCode},响应内容:{$response}\n";
    curl_close($ch);
    exit;
}

// 引导用户进入购物车页面(两种方式可选)
$cartUrl = "https://{$shopDomain}/cart";
// 方式1:直接跳转
// header("Location: {$cartUrl}");
// 方式2:输出跳转链接
echo "<a href='{$cartUrl}'>点击进入购物车完成支付</a>";

curl_close($ch);
?>

3. 关键注意事项

  • Cookie维护:必须用 CURLOPT_COOKIEJAR 保存Cookie,后续请求若需操作同一购物车,需搭配 CURLOPT_COOKIEFILE 读取Cookie;
  • 请求头设置:务必添加合理的 User-Agent,部分Shopify店铺会拦截无UA的请求;
  • 变体ID正确性:使用错误的变体ID会返回400/422状态码,需确认ID匹配目标商品规格;
  • 批量添加:添加多个商品可构造包含多组商品的请求体,格式如下:
    {
        "items": [
            {"id": 123456789, "quantity": 1},
            {"id": 987654321, "quantity": 2}
        ]
    }
    

JavaScript方案补充(可选)

若需前端实现,可直接调用Shopify的JS API:

// 单个商品添加
fetch('/cart/add.js', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        id: 123456789,
        quantity: 1
    })
})
.then(response => response.json())
.then(data => {
    window.location.href = '/cart'; // 跳转购物车
})
.catch(error => console.error('添加失败:', error));

内容的提问来源于stack exchange,提问作者Jonathon Philip Chambers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:55:21