我是 Shopify 应用开发的新手,尤其是 Shopify API。
我使用 Shopify CLI 创建了一个工作应用程序,现在想要与 API 进行通信。
我尝试访问以下端点:https://{my_shop]/admin/api/2021-07/shop.json
我了解到我需要一些访问令牌和商店名称才能访问此端点。
我在我的私人应用程序部分创建了一个访问令牌。
但我不知道如何获取当前登录的商店。
例如,当单击前端中的按钮时,我想调用我的端点,该端点又调用 Shopify API 端点并检索信息。我该如何以正确的方式做到这一点?那么如何获取当前登录的店铺呢?
到目前为止,这是我的代码:
import "@babel/polyfill";
import dotenv from "dotenv";
import "isomorphic-fetch";
import createShopifyAuth, { verifyRequest } from "@shopify/koa-shopify-auth";
import Shopify, { ApiVersion } from "@shopify/shopify-api";
import Koa from "koa";
import next from "next";
import Router from "koa-router";
import axios from 'axios';
dotenv.config();
const port = parseInt(process.env.PORT, 10) || 8081;
const dev = process.env.NODE_ENV !== "production";
const app = next({
dev,
});
const …
Run Code Online (Sandbox Code Playgroud) 我看过几个比较不同的ECommerce CMS的问题:
我希望能让一些人为他们喜欢的相对较小的电子商店做点什么.我现在主要关注PrestaShop和Shopify.我真的很喜欢Shopify做主机,有优质的服务,并且易于理解和主题.然而,PrestaShop是免费的,并且似乎能够做到尽可能多的Shopify.
我已经确定Magento对这个项目来说过于笨重了,并且已经读过许多其他解决方案(osCommerce,ZenCart,OpenCart)已经过时,错误或者只是劣等.
我正在尝试将Modernizr添加到此页面:http://www.alternativeradio.org/pages/test.Modernizr工作正常,并在本网站的其他页面上工作.但是在这个使用jQuery Isotope的页面上,添加:
<script src="http://cdn.shopify.com/s/files/1/0070/7142/t/1/assets/modernizr.custom.js?128259" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
到HEAD导致出现两个Javascript错误:
. Uncaught TypeError: Object #<Object> has no method 'addTest' jquery.isotope.min.js:11
. Uncaught TypeError: Object [object Object] has no method 'isotope' free-downloads:2151
Run Code Online (Sandbox Code Playgroud)
我试过通过Modernizr.load加载jquery.isotope.min.js,但无济于事.我错过了什么?谢谢!
我正在使用Ubuntu 12.04LTS Desktop来开发Shopify应用程序(使用shopify_app gem),我在处理回调URL时遇到了这个问题.
Faraday::Error::ConnectionFailed (Connection reset by peer - SSL_connect)
Run Code Online (Sandbox Code Playgroud)
看看这里和这里的shopify-app-discuss组,似乎问题出在Ubuntu 12.04及其OpenSSL上.我试图安装最新的OpenSSL,但没有.我发现的另一种选择是使用不同的旧版OpenSSL,即RVM提供的版本.
$ rvm remove 1.9.3 (or whatever version of ruby you are using)
$ rvm pkg install openssl
$ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr
Run Code Online (Sandbox Code Playgroud)
现在Shopify App工作正常.它可以连接到API.(这个提示可能会帮助其他Ubuntu 12.04用户!)
所以,我的问题是:这是最好的解决方案吗?我有点担心旧的OpenSSL版本.它可能存在一些安全问题.使用它开发应用程序是否安全?
当我部署应用程序(例如Heroku)时,旧的OpenSSL会出现安全问题吗?
提前致谢!
我觉得我在这里错过了一些非常简单的东西.所以我有认证会话,我基本上想加载当前的Shop对象来访问某些东西,比如电子邮件地址,shop_owner等.如何检索它以基本上获得此响应?
http://api.shopify.com/shop.html#show
Run Code Online (Sandbox Code Playgroud)
我试着查看/admin/shop.json并使用
ShopifyAPI::Shop.find(someidnumber)
Run Code Online (Sandbox Code Playgroud)
但没有去?
我正在尝试为shopify构建一个应用程序,如果我可以使用javascript api或类似的东西获取当前登录的用户ID,我很感兴趣.我正在查看ajax api:http://docs.shopify.com/support/your-website/themes/can-i-use-ajax-api我可以看到你可以获得当前用户拥有的当前产品添加到他的购物车,但没有关于用户ID.
有可能,还是我错过了什么?
在资产部分,有文件.js
和.js.liquid
名称.
2之间有什么区别,如果我想将js文件包含到主题中,我应该使用哪一个?
这是在.js.liquid文件中.我想构造一个由液体变量组成的字符串.当我将这个字符串附加到DOM元素中时,它似乎没有显示出来.
var someString = '';
{%for line in order.line_items%}
someString += 'q='+{{line.quantity}}+'&p='+{{line.product.id}}+'&pp='+{{line.price}}+'&w='+{{line.grams}}+'&i='+{{line.product.featured_image|product_img_url|url_param_escape}}+'&n='+{{line.product.title|url_param_escape}}+'&';
{%endfor%}
$('body').append(someString);
Run Code Online (Sandbox Code Playgroud) 我正在使用froatsnook:shopify尝试修改自定义集合的metafields.
服务器JS
/**
* Modify Shopify Custom Collection Metafields
* @request PUT /admin/custom_collections/#{id}.json
*
* @param {Number} collection_id
* @param {Object} collection_data
* @param {Function} callback
*/
modifyShopifyCustomCollectionMetafields: function(collection_id, collection_data, callback) {
var meta = ShopifyAPI.modifyCustomCollection({
id: collection_id,
custom_collection : JSON.stringify( collection_data )
})
if ( AdminConfig.debug.server ) console.log( 'modifyShopifyCustomCollectionMetafields', meta )
if ( callback ) callback( meta )
return meta;
},
Run Code Online (Sandbox Code Playgroud)
客户端JS
Meteor.call('modifyShopifyCustomCollectionMetafields', collection_id, {
'id': collection_id,
'metafields' : [
{
'key' : 'color_primary',
'value' : design_settings.colors.primary, …
Run Code Online (Sandbox Code Playgroud) 我正在开发Shopify应用程序.它工作正常,直到昨天晚上,但在用户允许访问他的商店的应用程序后,我开始收到错误请求[400]错误.
错误如下
(https://SHOP-NAME.myshopify.com/admin/oauth/access_token) in /path/to/shopify/authentication/oauth.php on line 28
Array (
[method] => POST
[uri] => https://SHOP-NAME.myshopify.com/admin/oauth/access_token
[query] => Array ( )
[headers] => Array ( )
[payload] => Array (
[client_id] => {CLIENTID}
[client_secret] => {CLIENT_SECRET}
[code] => {CODE}
)
)
Run Code Online (Sandbox Code Playgroud)
我正在使用Content-Type:application/x-www-form-urlencode进行POST cURL请求, 并且所有请求都经过验证来自shopify.
如果有人想要我能提供的更多信息.
谢谢.
如何使用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) shopify ×10
javascript ×3
api ×2
ajax ×1
curl ×1
e-commerce ×1
jquery ×1
linux ×1
meteor ×1
modernizr ×1
node.js ×1
oauth ×1
openssl ×1
php ×1
prestashop ×1
shopify-app ×1
ubuntu-12.04 ×1