Javascript Shopify Buy SDK获取原始产品数据
我正在寻找建立一个电子商务网络应用程序使用ES6,反应,反应redux和你的js购买sdk api。我的问题是,在从shopify获取所有产品并将其放入商店后,我似乎没有像我所期望的那样拥有关于产品的所有数据,而只是:Javascript Shopify Buy SDK获取原始产品数据,javascript,reactjs,shopify,react-redux,Javascript,Reactjs,Shopify,React Redux,我正在寻找建立一个电子商务网络应用程序使用ES6,反应,反应redux和你的js购买sdk api。我的问题是,在从shopify获取所有产品并将其放入商店后,我似乎没有像我所期望的那样拥有关于产品的所有数据,而只是:{attrs,shopClient,serializer,type,config,_memonized} 下面是我如何在一个名为shopify.js的文件下打电话获取产品: import ShopifyBuy from 'shopify-buy'; const shopClien
{attrs,shopClient,serializer,type,config,_memonized}
下面是我如何在一个名为shopify.js
的文件下打电话获取产品:
import ShopifyBuy from 'shopify-buy';
const shopClient = ShopifyBuy.buildClient({
apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e',
domain: 'xxxxxxxxxxxxxxxx.myshopify.com',
appId: '6',
});
export function fetchAllProducts() {
return new Promise((resolve, reject) => {
shopClient.fetchAllProducts()
.then((data) => {
console.log('shopClient.fetchAllProducts', data);
resolve(data);
}).catch((error) => {
console.error(new Error('Fetching products error!'));
reject(error);
});
});
}
查看console.logshopClient.fetchAllProducts
我得到的是:
我获取数据
并将其放在redux存储中,当我查看它时,它看起来是这样的:
如果相关,请查看我正在分派的操作,以及我的操作在商店中减少和放置的位置
根据我的理解,当你使用fetchAllProducts()
方法时,你会得到一个ProductModel
s数组,因此,我假设在我的商店中设置了以下{attrs,shopClient,serializer,type,config,_memorized}
,因为这就是ProductModel
内部存储的内容
我的问题是,是否有办法从产品模型
获取原始数据对象(第一个屏幕截图中显示的所有相关产品值以及产品模型
所依赖的模型数据,如产品选项模型
)所以我可以把它放在我的商店里以保持稳定和理智
可以找到Shopify API引用。在您的示例代码中,您是用您的API密钥调用API的吗?你知道这会让你的商店受到你可能不想要的滥用,对吧?你确定你知道你在做什么吗?在你的示例代码中,你用你的API密钥调用API?你知道这会让你的商店受到你可能不想要的滥用,对吧?你确定你知道你在那里做什么吗?如果你在寻找对产品上返回的数据的原始访问,则
attrs
属性包含API响应JSON,而不包含其他逻辑或模型
但是,如果可能的话,我建议您以一种可以利用这些模型的方式组织代码——我们添加了它们,因为原始数据的格式可能特别混乱(特别是变体、选项、图像)
这就是说,如果您希望返回所有产品的原始数据,类似这样的操作应该可以实现
import ShopifyBuy from 'shopify-buy';
const shopClient = ShopifyBuy.buildClient({
apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e',
domain: 'xxxxxxxxxxxxxxxx.myshopify.com',
appId: '6',
});
export function fetchAllProducts() {
return new Promise((resolve, reject) => {
shopClient.fetchAllProducts()
.then((products) => {
resolve(products.map((product) => {
return product.attrs;
}));
}).catch((error) => {
console.error(new Error('Fetching products error!'));
reject(error);
});
});
}
如果您正在查找对产品上返回的数据的原始访问,则
attrs
属性包含API响应JSON,而不包含其他逻辑或模型
但是,如果可能的话,我建议您以一种可以利用这些模型的方式组织代码——我们添加了它们,因为原始数据的格式可能特别混乱(特别是变体、选项、图像)
这就是说,如果您希望返回所有产品的原始数据,类似这样的操作应该可以实现
import ShopifyBuy from 'shopify-buy';
const shopClient = ShopifyBuy.buildClient({
apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e',
domain: 'xxxxxxxxxxxxxxxx.myshopify.com',
appId: '6',
});
export function fetchAllProducts() {
return new Promise((resolve, reject) => {
shopClient.fetchAllProducts()
.then((products) => {
resolve(products.map((product) => {
return product.attrs;
}));
}).catch((error) => {
console.error(new Error('Fetching products error!'));
reject(error);
});
});
}
我考虑过,但我不认为它会被滥用。例如,您不能使用此API从shopify管理员中删除产品。人们最多能做的就是获取产品信息并生成shopify结账页面,最终购买它们,但我不会称之为滥用,只是聪明的程序员买家:D。以下是api的完整规范:有意义。。。这是一个有限的关键,只是为了获得产品。好啊干得好。我想过了,但我不认为它会被滥用。例如,您不能使用此API从shopify管理员中删除产品。人们最多能做的就是获取产品信息并生成shopify结账页面,最终购买它们,但我不会称之为滥用,只是聪明的程序员买家:D。以下是api的完整规范:有意义。。。这是一个有限的关键,只是为了获得产品。好啊干得好。很酷,因此属性应该是获取原始数据的正确位置。谢谢你!我想要原始数据的原因是因为我想利用类似的东西,但我还不知道shopify providesOk的模型将如何发挥作用。很酷,因此属性应该是获取原始数据的正确位置。谢谢你!我想要原始数据的原因是因为我想利用类似的东西,我还不知道shopify提供的模型将如何发挥作用