Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Shopify Buy SDK获取原始产品数据_Javascript_Reactjs_Shopify_React Redux - Fatal编程技术网

Javascript Shopify Buy SDK获取原始产品数据

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

我正在寻找建立一个电子商务网络应用程序使用ES6,反应,反应redux和你的js购买sdk api。我的问题是,在从shopify获取所有产品并将其放入商店后,我似乎没有像我所期望的那样拥有关于产品的所有数据,而只是:
{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.log
shopClient.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提供的模型将如何发挥作用