- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SHOPIFY,我必须说,你的 sdk 支持不足。
我有点菜鸟,但我对 js 足够了解。但这还不够,shopify but sdk support page 告诉我使用像
这样的东西var shopClient = ShopifyBuy.buildClient({
apiKey: 'private',
myShopifyDomain: 'my-leisure',
appId: '6'
});
创建我的 shopClient,就是这样,我不是特别知道我构建了什么,我不知道它是否只是一个具有该数组的对象或更多已构建。
它告诉我使用类似的东西
var cart;
shopClient.createCart().then(function (newCart) {
cart = newCart;
// do something with updated cart
});
所以我知道这使得购物车,虚拟购物车,对前端没有任何帮助和
new CartModel();
创建一个新的购物车模型,这是它的构造函数。但它是什么,我也不知道,它是否包括侧栏购物车 ui 的 css?
然后它告诉我使用
var product;
shopClient.fetchProduct(6829802497)
.then(function (product) {
product = product;
});
..获取我想要的产品。但我什么时候这样做,我认为它应该在点击我的自定义购买按钮时完成。
所以我创建了一个 ID 为 mg-240 的按钮,并监听点击以生成产品。
$(document).ready(function() {
document.getElementById('mg-240').onclick = function() {
var product;
shopClient.fetchProduct(6829802497)
.then(function (product) {
product = product;
});
var variant = product.variants[0];
var checkoutURL;
checkoutURL = variant.checkoutUrl(1);
cart.addVariants({variant: product.selectedVariant, quantity: 1}).then(function (cart) {
});
updateModel();
}
});
我的代码笔有一些改进,比如在函数中运行客户端创建和初始购物车创建,然后在 document.ready() 函数中运行点击监听,
http://codepen.io/lopupen/pen/PzKgQK?editors=1111
我这样做是为了设计我自己的网站,并且可以将 ID 应用于按钮以指示是否应将产品添加到购物车,或者直接导致结帐。也没有明确指示如何在 sdk 支持 repo 中切换购物车。
如果有人比我聪明得多来指导我关于如何使用这些 angular js node.js promises 和对象我缺少什么。
干杯,谢谢,顺便说一句,首席执行官是个智障
我收到此控制台错误,提示我的 url 已被弃用,但它是正确的域...您不包括 .myshopify.com。你?只是域名?
https://gyazo.com/4959b10465d24e2954d53a7ce0b10ee5
另外需要注意的是,有两种不同的指示方式来启动客户端,如果您没有意识到这一点,那么遵循来自两个不同页面的说明可能会发生冲突。
看看这个页面:http://shopify.github.io/js-buy-sdk/#creating-a-shop-client
它告诉你
var shopClient = ShopifyBuy.buildClient({
apiKey: 'your-api-key',
myShopifyDomain: 'your-myshopify-domain',
appId: '6'
});
但在这里:http://shopify.github.io/js-buy-sdk/examples/
$(function() {
var client = ShopifyBuy.buildClient({
apiKey: 'your-api-key',
myShopifyDomain: 'your-myshopify-domain',
appId: '6'
});
});
它只是告诉你使用客户端,这可能没问题,但在他们使用客户端的同一页面上。等等。他们在示例中也使用客户端,
client.fetchProduct('your-product-id').then(function(product) {
var html =
"<img class='product__image' src='" + product.selectedVariantImage.src + "' >" +
"<h2 class='product__title'>" + product.title + "</h2>" +
"<a class='product__buy' href='" +
product.selectedVariant.checkoutUrl(1) +
"'>Buy Now!</a>";
$('#product-1').html(html);
});
但是在另一个页面上,他们也在示例中使用了 shopClient,所以如果您混合使用示例代码,这会有点烦人,也许人们并不知道。我认为 shopify 的首席执行官比这个难以使用的东西更像是一个完美主义者。似乎在大多数情况下客户端应该定义为shopClient,但是在示例文档中有一个巨大的js文件,其中单独使用了客户端。哈哈
https://github.com/Shopify/js-buy-sdk/blob/master/examples/cart/index.js
最佳答案
这里有很多问题,但我会尝试逐一分解。
关于从 ShopifyBuy.buildClient(...)
返回的内容, 它返回 ShopClient
的一个实例. ShopClient
具有对 Shopify 进行必要调用的实例方法。
购物车是在您调用 shopClient.createCart()
时创建的,它返回一个 Promise解析为 CartModel
的一个实例.无需直接调用 CartModel 构造函数。
JS Buy SDK 纯粹是一个 JavaScript 库。它不包含开箱即用的 UI,但如果您正在寻找一些与之一起使用的 UI,则有一个 example of using a cart。在 Github 存储库中,它应该可以帮助您启动和运行。
您很可能希望在用户点击按钮之前获取产品,以便加载产品并且您的页面可以快速交互。
截至version 0.2.0 (昨天发布),myShopifyDomain
已被弃用,取而代之的是 domain
。因此,它现在正在寻找包含您域的完整路径的字符串,例如“my-store.myshopify.com”(而不是它过去期望的只是“my-store”)。我们目前正在更新整个站点的文档。
关于命名的要点。它们都是变量,所以它们的名字与它们的作用无关,但即使在不同的地方提到它们,最好将它们写成相同的。我们会看看如何修复它(或者随时自己 submit a Pull Request!)
我不太清楚您是要将产品添加到购物车还是仅使用一种产品结帐。如果您想将它添加到购物车,应该这样做(看起来您有可用的 jQuery):
$(document).ready(function() {
var shopClient = ShopifyBuy.buildClient({
apiKey: 'private',
myShopifyDomain: 'my-leisure',
appId: '6'
});
var cartPromise = shopClient.createCart();
var productPromise = shopClient.fetchProduct(6829802497);
$('#mg-240').on('click', function() {
Promise.all([cartPromise, productPromise]).then(function(promises) {
var cart = promises[0];
var product = promises[1];
cart.addVariants({variant: product.selectedVariant, quantity: 1});
// do stuff
});
});
});
如果您只想使用产品中的第一个变体结帐,这是一个更简单的版本:
$(document).ready(function() {
var shopClient = ShopifyBuy.buildClient({
apiKey: 'private',
myShopifyDomain: 'my-leisure',
appId: '6'
});
var productPromise = shopClient.fetchProduct(6829802497);
$('#mg-240').on('click', function() {
productPromise.then(function(product) {
window.location = product.selectedVariant.checkoutUrl(1);
});
});
});
如果 JavaScript Promises 不熟悉,我建议阅读 MDN docs或 this introduction to them .
希望这对您有所帮助!
关于javascript - Shopify Buy SDK getElementById().onClick 功能无法正确获取产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262625/
这个问题已经有答案了: How to do case insensitive string comparison? (23 个回答) 已关闭 3 年前。 用户在我的输入栏中写入“足球”,然后执行第 6
啊,不习惯 javascript 中的字符串。 character_id= + id + correct= + correctOrIncorrect 这就是我需要制作成字符串的内容。如果您无法猜测字符
$(function() { var base_price = 0; CalculatePrice(); $(".math1").on('change', function(e) { Calc
我找不到任何文章回答问题:将Spinnaker部署到Spinnaker将管理的同一Kubernetes集群是否安全/正确?我主要是指生产,HA部署。 最佳答案 我认为Spinnaker和Kuberne
我正在使用MSVC在Windows上从源代码(官方源代码发布,而不是从仓库中)构建Qt5(Qt 5.15.0)。 我正在设置环境。变量,依赖项等,然后运行具有1600万个选项的configure,最后
我需要打印一个包含重复单词的数组。我的数组已经可以工作,但我不知道如何正确计算单词数。我已经知道,当我的索引计数器 (i) 为 49 时,并且当 (i) 想要计数到 50 时,我会收到错误,但我不知道
我正在遵循一个指南,该指南允许 Google map 屏幕根据屏幕尺寸禁用滚动。我唯一挣扎的部分是编写一个代码,当我手动调整屏幕大小时动态更改 True/False 值。 这是我按照说明操作的网站,但
我有一个类“FileButton”。它的目的是将文件链接到 JButton,FileButton 继承自 JButton。子类继承自此以使用链接到按钮的文件做有用的事情。 JingleCardButt
我的 friend 数组只返回一个数字而不是所有数字。 ($myfriends = 3) 应该是…… ($myfriends = 3 5 7 8 9 12). 如果我让它进入 while 循环……整个
这个问题在这里已经有了答案: Is there a workaround to make CSS classes with names that start with numbers valid?
我正在制作一个 JavaScript 函数,当调整窗口大小时,它会自动将 div 的大小调整为与窗口相同的宽度/高度。 该功能非常基本,但我注意到在调整窗口大小时出现明显的“绘制”滞后。在 JS fi
此问题的基本视觉效果可在 http://sevenx.de/demo/bootstrap-carousel/inc.carousel/tabbed-slider.html 获得。 - 如果你想看一看。
我明白,如果我想从函数返回一个字符串文字或一个数组,我应该将其声明为静态的,这样当被调用的函数被返回时,内容就不会“消亡”。 但我的问题是,当我在函数内部使用 malloc 分配内存时会怎样? 在下面
在 mySQL 数据库中存储 true/false/1/0 值最合适(读取数据消耗最少)的数据字段是什么? 我以前使用过一个字符长的 tinyint,但我不确定它是否是最佳解决方案? 谢谢! 最佳答案
我想一次读取并处理CSV文件第一行中的条目(例如打印)。我假设使用Unix风格的\n换行符,没有条目长度超过255个字符,并且(现在)在EOF之前有一个换行符。这意味着它是fgets()后跟strto
所以,我们都知道 -1 > 2u == true 的 C/C++ 有符号/无符号比较规则,并且我有一种情况,我想有效地实现“正确”比较。 我的问题是,考虑到人们熟悉的尽可能多的架构,哪种方法更有效。显
**摘要:**文章的标题看似自相矛盾。 本文分享自华为云社区《Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序》,作者: Jerry Wang 。 文章的标题看似自相矛盾,然而我在“正
我有一个数据框,看起来像: dataDemo % mutate_each(funs(ifelse(. == '.', REF, as.character(.))), -POS) # POS REF
有人可以帮助我使用 VBScript 重新格式化/正确格式化带分隔符的文本文件吗? 我有一个文本文件 ^分界如下: AGREE^NAME^ADD1^ADD2^ADD3^ADD4^PCODE^BAL^A
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!