当我通过Shopify 产品更新 API ( https://ashop.myshopify.com/admin/products/product_id.json PUT)使用以下 JSON 将published_at 设置为未来日期时。
{
"product": {
"id": 632910392,
"published": false,
"published_at": "2015-01-01T00:00:00+11:00"
}
}
Run Code Online (Sandbox Code Playgroud)
它返回 200 和以下 JSON
{
"product": {
"body_html": "something",
"created_at": "2014-01-07T14:49:00+11:00",
"handle": "test-product",
"id": 206281997,
"product_type": "MERCHANDISE",
"published_at": "2015-01-01T00:00:00+11:00",
"published_scope": "",
},
/* some other JavaScript properties*/
}
Run Code Online (Sandbox Code Playgroud)
Shopify 接受了发布日期,但产品仍然可见。下面是产品可见性的截图

但是,如果我从请求 JSON 中删除 "published_at": "2015-01-01T00:00:00+11:00" ,该产品将更改为隐藏。
如何通过 Shopify API 设置发布日期?是否可能是 Shopify API 的错误?
谢谢你的帮助。
我使用CakePHP的插件进行调用以获取某些订单。我可以调用具有特定字段的所有订单,但我想知道如何调用才能获取具有特定名称或 order_number 的订单?这是调用Shopify的来源。它已经通过身份验证和一切:
public function call($method, $path, $params=array())
{
if (!$this->isAuthorized())
return;
$password = $this->is_private_app ? $this->secret : md5($this->secret.$this->ShopifyAuth->token);
$baseurl = "https://{$this->api_key}:$password@{$this->ShopifyAuth->shop_domain}/";
$url = $baseurl.ltrim($path, '/');
$query = in_array($method, array('GET','DELETE')) ? $params : array();
$payload = in_array($method, array('POST','PUT')) ? stripslashes(json_encode($params)) : array();
$request_headers = in_array($method, array('POST','PUT')) ? array("Content-Type: application/json; charset=utf-8", 'Expect:') : array();
$request_headers[] = 'X-Shopify-Access-Token: ' . $this->ShopifyAuth->token;
list($response_body, $response_headers) = $this->Curl->HttpRequest($method, $url, $query, $payload, $request_headers);
$this->last_response_headers = $response_headers;
$response = json_decode($response_body, true);
if (isset($response['errors']) …Run Code Online (Sandbox Code Playgroud) 我正在尝试做与 Shopify 的“handleize”对字符串所做的相同的事情,但使用 jQuery。
https://docs.shopify.com/themes/liquid-documentation/filters/string-filters#handle
基本上我想将任何字符串转换为句柄,所以
你好,我叫科里。
会成为
你好,我的名字是科里
使用 jQuery 函数。
我正在为运行基于会员的网站的客户定制 Shopify 网站。
他们希望会员运作的方式是每个会员每月以折扣价获得 3 件商品,然后订购的每个后续产品都以正常价格购买。
我已经弄清楚如何限制每个订单订购的折扣产品数量,但我无法弄清楚如何使用 Shopify 的 API 来查询该客户的订单历史记录,以便我可以查看会员每月订购了多少产品并根据需要调整价格(我正在使用客户定价插件来管理当前的定价折扣)。
我一直在研究 Liquid 文档,我可以看到订单标签和客户标签的位置,但不一定是如何将它们循环在一起。
有没有比我更熟悉 Shopify API 的人能够指出正确的方向?
我有一些内容,例如:产品类型 - 颜色名称(此更改但格式始终相同,我只想显示“颜色名称”
它输出为:
{{ product.title }}
Run Code Online (Sandbox Code Playgroud)
我需要做的是使用可用的字符串过滤器并查找并删除“-”及其之前的内容,以便它只显示连字符“-”之后的部分
有没有人有任何想法?
我们的一些客户希望向他们报告他们的 Google Analytics ID。得到它并不难。
ga.getAll()[0].get('clientId');
还有一个排队语法,以便在设置 GA 时完成操作。
但是不想在 GA 准备好时发送 GA 事件。准备好后我想问 GA 一个问题。
也许有某种方式可以对 GA 说“当你准备好了,运行这个函数,我传递给你。”
或者,GA 是否在准备好时发出自定义事件?
目前,当窗口发出加载事件时,我的客户正在调用我的代码。但即便如此,仍有一小部分时间 ga 未定义。如果您等待几秒钟,则它已定义。也许一些奇怪的cdn系统。无论如何,我需要一种可靠的方法来确定 GA 何时准备就绪。
(我无法使评论中的格式配合,所以我改变了我的问题来回应 Feathercrown。)
听起来不错!唯一的问题是 ga 尚未定义。这是我自己发送的错误消息示例。
"type": "Page View",
"data": {
"error": {
"message": "ga.getAll is not a function. (In 'ga.getAll()', 'ga.getAll' is undefined)",
"message2": "window.GoogleAnalyticsObject = ga",
"message3": "typeof ga is not Object"
}
},
也许 _gxx 符号已经可用?
我有一个使用以下架构的自定义部分:
{% schema %}
{
"name": "Custom",
"settings": [
{
"type": "textarea",
"id": "custom_text_product",
"label": "Insert name of the product here",
"default": "Product"
},
{
"type": "textarea",
"id": "custom_text_msg",
"label": "Custom text",
"default": "Insert text here"
}
]
}
{% endschema %}
Run Code Online (Sandbox Code Playgroud)
基本上我想要的是从每个 textarea 中获取文本,通过 Javascript 进行操作,然后将其添加到 DOM 中。
通过.liquid我会简单地做{{ section.settings.id }},但我不知道如何在 Javascript 中访问它们。因为它是一个大文本,我也不能将它作为数据属性添加到 DOM 中。
我试过遵循这个,但没有成功。
有人可以帮助我或向我推荐有关这方面的文件吗?
非常感谢!
我在 Shopify 上使用“阁楼”主题。当我在产品页面上选择一个变体时,它们会将 SKU 和价格更新为该变体,我需要比这更多的功能,因为我想使用元字段显示每个变体的尺寸。
我创建了一个函数并在变体选择上调用它,如下所示:
jQuery(function($) {
new Shopify.OptionSelectors('productSelect', {
product: {{ product | json }},
onVariantSelected: selectCallback,
enableHistoryState: true
});
});
Run Code Online (Sandbox Code Playgroud)
我的函数被调用,我可以执行我想要的操作。但这会阻止默认操作的发生,例如更新价格和 SKU。有没有办法可以同时调用两者?
当商店所有者安装我的应用程序时,我将访问令牌保存到数据库中以备后用。拥有来自商店的访问令牌是一项巨大的安全责任,因为拥有这些令牌的任何人都可以从任何域/地址修改商店,没有 IP 或域锁定。
我可以使用什么方法来使这更安全?我想离线保存令牌,然后仅在需要时上传(以防我需要对所有商店进行一些全局更新),然后再次删除它。如果商家在管理员中访问应用程序配置,我会将其保存到会话中。有没有更好的方法?
每次我尝试命令“主题观看”时,它都会向我发送此错误:
[开发] 这是 Nhan 测试商店的直播主题。如果您想对其进行更改,则必须传递 --allow-live 标志无法在没有覆盖的情况下对实时主题进行更改
我该如何解决?
shopify ×10
javascript ×4
liquid ×4
access-token ×1
api ×1
cakephp ×1
callback ×1
html ×1
jquery ×1
restful-url ×1
shopify-app ×1
smarty ×1