如何使用shopify api更新特定line_item的属性?
似乎没有一种方法可以直接更新特定的订单项.
然后我尝试更新整个订单对象,但似乎它没有保存我的属性.如果我使用以下json保存订单,api将返回完整的订单对象,但我的line_items有一个空属性[]行.
{"order":{"id":94202342,"line_items":[{"id":615546756,"variant_id":627937216,"properties":[{"my_test_key":"This_is_a_test"}]}]}}
Run Code Online (Sandbox Code Playgroud) 我对 Liquid 环境相当陌生,想知道您是否可以像 JS 一样在 Liquid 文件中启动对象变量?
let person = [{
'name' : 'John Doe',
'age' : '20'
}];
Run Code Online (Sandbox Code Playgroud)
我知道液体正在使用 {% allocate %} 那么它有什么工作方法吗
{% assign person = [{
'name' : 'John Doe',
'age' : '20'
}]; %}
Run Code Online (Sandbox Code Playgroud)
这是直接初始化它,而不从元字段中提取任何数据。
提前致谢!
我正在开发Shopify应用程序,该应用程序使用Shopify的DaisyAPI动态图像服务.为了正确调用Daisy API,我需要知道客户正在查看哪些产品.似乎,为了可靠地做到这一点,我将需要操纵他们的product.liquid主题来插入包含Product ID的隐藏值,以便Jquery可以获取该值并将其插入到API调用中.
什么是确保每个产品页面都包含产品ID的最佳方法,jQuery可以通过这种方式可靠地找到它?我忽略了一些明显的东西吗
非常感谢!
我已经在OAuth的第1步中检索了授权代码而没有任何问题,但是对于我的生活,我无法完成一个帖子来获取访问令牌.我总是得到同样的错误:
content: "{"error":"invalid_request","error_description":"Could not find Shopify API appli... (length: 103)"
这是我的代码看起来像... Meteor.http.post是一个标准的发布请求.我没有运气就尝试过各种各样的组合.我正在开发localhost:
var url = 'https://' + shopName + '/admin/oauth/access_token';
var data = { client_id: apiKey, client_secret: secret, code: code };
Meteor.http.post(url, data,
function(error, result) {
debugger;
});
Run Code Online (Sandbox Code Playgroud)
Meteor.post是此处记录的标准服务器端发布请求.我尝试过params(比如Node Wrapper),一个数组(比如PHP)和其他东西的组合.我不知道.
是因为我正在开发localhost,而服务器调用现在需要https吗?我的帖子数据结构错了吗?
我做错了什么其他的想法?
我正在使用Tampermonkey 翻译Shopify的仪表板/管理员.
出于安全考虑,Shopify管理员仪表板的某些部分我不想使用Tampermonkey.商家创建的文本(产品,页面,集合,模板......)是Tampermonkey取代的,这是非常危险的.
有两种方法可以解决这个问题:
@exclude指令.我使用了后者,但脚本没有收听@exclude.这是用户脚本:
// ==UserScript==
// @name Shopify_Admin_Spanish
// @namespace http://*.myshopify.com/admin
// @version 0.1
// @description Tu tienda Shopify, por detrás, en español!
// @exclude https://*.myshopify.com/admin/products
// @exclude https://*.myshopify.com/admin/collections
// @exclude https://*.myshopify.com/admin/blogs
// @exclude https://*.myshopify.com/admin/pages
// @exclude https://*.myshopify.com/admin/themes
// @match https://*.myshopify.com/*
// @copyright microapps.com
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud)
PS.我使用谷歌浏览器进行了所有检查,并且不愿意使用任何其他浏览器.
我使用Shopify作为我的商店页面来销售商品,Mixpanel集成在整个购买过程中跟踪用户.有4个不同的活动:产品已查看,已添加到购物车,开始结帐和订单已完成.
在实时视图中,所有这些都相应地出现,但我的问题是,当用户完成结账时,Mixpanel似乎正在分配完全不同的distinct_id.因此,在"漏斗"部分中,由于ID不同,用户在途中丢失,因此未显示完成率.
我在附加内容和脚本部分中有以下代码(以及启动Mixpanel代码):
<script type="text/javascript">
mixpanel.track("Checkout",
{ "Checkout Total": "{{ total_price | money_without_currency }}" });
mixpanel.identify({{ customer.id }});
mixpanel.people.set({
"$name": "{{ customer.first_name }} {{ customer.last_name }}",
"$email": "{{ customer.email }}",
"last_updated": new Date()
});
mixpanel.people.track_charge({{ total_price | money_without_currency }});
</script>
Run Code Online (Sandbox Code Playgroud)
用户没有注册,我在Shopify主题中的其他必要代码段中使用'customer.id'.
有谁知道如何解决这个问题所以我可以看到Funnels的完整用户旅程与完成率?
我在Shopify上有一小段代码,感谢您建立一个家庭成长系统.在过度简化的术语中,它输出带有使用该{{id}}字段的模板代码的URL .
<p>
Your order information is {{id}}! This is not the actual code,
this is just an oversimplified version for this question
</p>
Run Code Online (Sandbox Code Playgroud)
直到几周前,{{id}}模板变量将输出订单对象的ID.我使用此ID和Shopify RESTapi来获取订单信息.现在,由于我不清楚的原因,这会输出一个看起来像是不同的数字checkout-id.
这是预期的行为吗?反正有没有获得旧的,真实的订单对象ID?我可以想出很多解决这个问题的方法,但是我宁愿不搞乱过去5年以稳定的方式运作的系统.
我有一个基于产品的网站构建在WordPress,我已经使用shopify添加到购物车,但有一些问题,以添加多元产品.
我正在使用此脚本添加到购物车
function buyButtonClickHandler(evt) {
evt.preventDefault();
evt.stopImmediatePropagation();
var id = product.selectedVariant.id;
var id = evt.target.id;
var quantity;
var cartLineItem = findCartItemByVariantId(id);
quantity = cartLineItem ? cartLineItem.quantity + 1 : 1;
addOrUpdateVariant(product.selectedVariant, quantity);
setPreviousFocusItem(evt.target);
$('#checkout').focus();
}
Run Code Online (Sandbox Code Playgroud)
这用于产品的更新数量
function updateQuantity(fn, variantId) {
var variant = product.variants.filter(function (variant) {
return (variant.id === variantId);
})[0];
var quantity;
var cartLineItem = findCartItemByVariantId(variant.id);
if (cartLineItem) {
quantity = fn(cartLineItem.quantity);
updateVariantInCart(cartLineItem, quantity);
}
}
Run Code Online (Sandbox Code Playgroud)
任何好友都有一个想法,请帮忙.
我使用 Shopify 店面 API 来查询产品列表并将所选项目添加到购物车。
我能够使用 API 列出所有产品,并返回找到的产品的变体 ID
这是返回产品的 GraphQL 查询
{
shop {
name
products(first: 1, query:"title=configurable-handmade-concrete-ball") {
edges {
cursor
node {
id
title
handle
variants(first:1) {
edges {
node {
id
title
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果
{
"data": {
"shop": {
"name": "VonageTest",
"products": {
"edges": [
{
"cursor": "eyJvZmZzZXQiOjF9",
"node": {
"id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwNTU2MjYxNTE4",
"title": "Configurable Handmade Concrete Ball",
"handle": "configurable-handmade-concrete-ball",
"variants": {
"edges": [
{
"node": {
"id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0VmFyaWFudC80MDIwOTc1NjQzMA==",
"title": …Run Code Online (Sandbox Code Playgroud)