使用Shopify Admin API创建产品

Create product with Shopify Admin API(使用Shopify Admin API创建产品)
本文介绍了使用Shopify Admin API创建产品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我第一次开始使用Reaction和Node.js,构建一个私有的Shopify App。该应用程序的目的是听取一个添加到购物车按钮,当点击它应该创建一个自定义产品在Shopify后端与Shopify产品API。我在基本JavaScript方面做过很多工作,在jQuery方面有丰富的经验,可以处理这个项目的更多基础知识。接下来的部分是将POST事件绑定到add to cart单击,创建产品并将其添加到购物车。

我正在尝试以下在后端创建产品的解决方案。这是正确的做法,还是有更好的解决方案?

如何将此提取函数绑定到单击事件?

    let new_product = {
        product: {
            title: Custom,
            body_html: test,
            vendor: Custom,
            product_type: customproduct,
            tags: Customproduct
        }
    };


fetch('/admin/api/2020-07/products.json', {
  method: 'post',
  body: JSON.stringify(new_product),

  headers: {
    'X-Shopify-Access-Token': process.env.SHOPIFY_API_SECRET_KEY,
    'Accept': 'application/json'
  },

})

我在我的项目中使用同构获取,它应该可以在服务器和客户端工作。

如有任何帮助和指导,我们将不胜感激。

谢谢!

推荐答案

您有几个问题。在回答之前,重要的是要澄清我从您的措辞和示例代码中假定的一些误解。有3种类型的Shopify Apps。

  1. 公共
  2. 自定义
  3. 私有

因此,如果您正在构建专用应用程序,则提供的代码将无法用于创建产品,因为专用应用程序使用基本身份验证,而公共和自定义应用程序使用OAuth 2.0管理身份验证。

我在我的项目中使用同构FETCH,它应该可以在服务器和 客户端。

即使Shopify API可以在服务器和客户端上运行,也不要从客户端调用Shopify API,因为这会暴露您的私人应用凭据。

若要实现您尝试执行的操作,您需要修改Reaction App和后端代码。

  1. 向按钮添加事件侦听器
  2. 向后端服务器发送POST请求
  3. 通过API在Shopify上创建产品
  4. 使用上一步返回的ID将产品添加到购物车
  5. 返回购物车URL作为响应

Reaction中的示例代码将如下所示

function Product() {
  const addProduct = async () => {
    const cart = await fetch("/your-end-point", {
      method: "post",
      body: JSON.stringify({
        // add product params
      }),
    });
  };

  return <button onClick={addProduct}>Add Product</button>;
}

ReactDOM.render(<Product />, document.getElementById("root"));
然后在Node.js应用程序中处理Shopify API部件。我建议使用Official Node.js module for Shopify而不是FETCH。

示例代码将如下所示

const Shopify = require("shopify-api-node");
router.post("/your-end-point", async (req, res) => {
  try {
    const shopify = new Shopify({
      shopName: "your-shop-name",
      apiKey: "your-api-key",
      password: "your-app-password",
    });
    const product = await shopify.product.create(req.body);
    // use product ID from previous request
    const checkout = await shopify.checkout.create({
      /*checkout params */
    });
    res.status(200).send(checkout);
  } catch (ex) {
    console.log(ex);
  }
});

这篇关于使用Shopify Admin API创建产品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)