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

如何控制Shopify商品AJAX接口返回货币及获取cart_currency Cookie?

问题描述

通过Shopify商品API接口(https://e453eb.myshopify.com/products/chakananecklace.json)发起jQuery AJAX请求获取商品数据时,返回的data.variants[0].price是用户本地货币而非店铺默认货币。核心诉求:

  • 如何获取店铺默认货币的价格?
  • 能否通过请求头/设置Cookie指定目标货币(比如USD)?
  • 若无法指定,如何确认返回价格对应的货币类型?

原请求代码:

$.ajax({
    url: 'https://e453eb.myshopify.com/products/chakananecklace.json',
    type: 'GET',
    success: function(data) {
        // 处理成功逻辑
        console.log(data);
    },
    error: function(xhr, textStatus, errorThrown) {
        // 处理错误逻辑
    }
});
解决方案

1. 指定目标货币获取对应价格

Shopify商品API支持通过URL参数或请求头直接指定货币,返回对应计价的价格:

  • URL参数方式:在请求地址后追加?currency=目标货币代码
$.ajax({
    url: 'https://e453eb.myshopify.com/products/chakananecklace.json?currency=USD',
    type: 'GET',
    success: function(data) {
        console.log("USD计价价格:", data.variants[0].price);
    },
    error: function(xhr, textStatus, errorThrown) {
        // 错误处理
    }
});
  • 请求头方式:在AJAX请求中添加Shopify-Currency头指定货币
$.ajax({
    url: 'https://e453eb.myshopify.com/products/chakananecklace.json',
    type: 'GET',
    headers: {
        'Shopify-Currency': 'USD'
    },
    success: function(data) {
        console.log("USD计价价格:", data.variants[0].price);
    },
    error: function(xhr, textStatus, errorThrown) {
        // 错误处理
    }
});

跨域场景下无法直接设置Shopify店铺域名下的cart_currency Cookie(受同源策略限制),仅同域名内请求适用,因此不推荐跨域时使用这种方式。

3. 确认返回价格的货币类型

如果无法指定货币,可通过两种方式获取当前价格对应的货币:

  • 解析响应头的Set-Cookie字段:从响应头中提取cart_currency的值
$.ajax({
    url: 'https://e453eb.myshopify.com/products/chakananecklace.json',
    type: 'GET',
    success: function(data, _, xhr) {
        const setCookie = xhr.getResponseHeader('Set-Cookie');
        const currencyMatch = setCookie.match(/cart_currency=([^;]+)/);
        if (currencyMatch) {
            console.log("当前价格货币:", currencyMatch[1]);
            console.log("对应价格:", data.variants[0].price);
        }
    },
    error: function(xhr, textStatus, errorThrown) {
        // 错误处理
    }
});
  • 检查返回数据中的货币字段:部分Shopify API版本会在返回的data对象中包含currency字段,或在data.shop(若返回)中展示店铺默认货币设置。

内容的提问来源于stack exchange,提问作者Aleks Per

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:18:23