【问题标题】:Problem in adding Customer in shopify using api使用 api 在 shopify 中添加客户的问题
【发布时间】:2019-01-16 13:43:51
【问题描述】:

我有一家 shopify 商店,我在商店的页脚中创建了一个自定义表单,并希望使用从该表单添加的详细信息来创建新客户。我尝试使用下面给出的代码向端点“/admin/customers.json”发送发布请求

$(document).ready(function(){
  $('.klaviyo_submit_button').on('click', function(){

    $.ajax({
            url: '/admin/customers.json',
            dataType: 'json',
            type: 'POST',
            data:{
                   "customer": {
                      "first_name": "Steve",
                      "last_name": "Lastnameson",
                      "email": "steve.lastnameson@example.com",
                      "phone": "+15142546011",
                      "verified_email": true    
                 }
            },
            success: function() {
              alert('Customer is added');
            }
          });
    })

}) 

但它没有发送 post 请求并显示状态代码“303 see other”。有人可以让我知道我在这里犯了什么错误以及如何从这个表格中添加客户。我在 shopify 的 theme.js.liquid 文件中使用此代码。

谢谢

【问题讨论】:

  • 您是否有任何管理员凭据对您用来发出该请求的客户具有写入权限?
  • 我在同一个 shopify 代码中执行此操作,所以我需要在哪里获得许可?
  • 您正在访问/admin 端点 - 漂浮在 Internet 上的普通用户无权执行 admin 所做的任何事情!要使该呼叫正常工作,您需要一个具有适当权限的应用程序来代表用户进行呼叫。好吧,或者在您的代码中公开凭据,以使随机的互联网人员能够读取和写入 /customers。后者是一个相当大的安全漏洞需要打开 - 如果可以的话,要么使用原生表单,要么制作一个安全的应用程序来为你完成繁重的工作。

标签: api shopify


【解决方案1】:

您不会使用对 /admin 的 Javascript 调用从前端将客户添加到您的商店。这意味着您将向公众公开 App API 密钥。相反,Shopify 为您提供客户填写的表格,然后他们会被提交到商店并安全处理。

如果您坚持使用自己的表单添加客户,您可以设置一个 App,具有添加客户的权限,然后使用 App Proxy 模式将表单发送到 App 以创建客户。这是安全的,并且有效。

【讨论】:

  • 如果我们无法在不使用应用程序的情况下通过我的方式添加客户,那么我们如何通过在同一代码中使用 ajax 来添加、更新产品和购物车内容?
  • 这个 303 see others 错误是什么意思,谁能举例解释一下?
  • 将商品添加到购物车与 /admin/customers 的关系为零。不需要保护。用于购物车添加/更新/删除的公共 JS API 可用。所以呢?我回答了你的问题。你至少可以感谢我。
【解决方案2】:

您不能直接在 admin/customers.json 上创建新的客户记录提交帖子数据并具有公共访问权限。尽管从您分享的细节中看不清楚您的完整需求,但我在这里建议两种解决方案。

解决方案1:使用帐户创建表单创建新记录<form method="post" action="/account" id="create_customer" accept-charset="UTF-8">

解决方案 2:在您的商店中创建一个自定义应用程序并将您的数据提交到托管在服务器上的脚本(您可以使用 PHP),该脚本将使用客户 API 创建记录。

第 1 步:转到商店管理部分的“应用”选项卡。向下滚动并点击管理私有应用,在此处创建应用以生成 API 密钥和密码。

第 2 步:创建并托管(在安全服务器上)一个脚本,该脚本将使用在上一步中生成的 API 密钥通过https://help.shopify.com/en/api/reference/customers/customer#create 创建新的客户记录

第 3 步:在网站上创建表单并在第 2 步中使用 Ajax 将表单提交到脚本。将在您的商店中创建新的客户记录。

注意:您可以使用在步骤 1 中在 Postmen 工具上创建的凭据来测试此 API,您可以参考 https://help.shopify.com/en/api/reference/customers/customer#create。您必须点击第 1 步中在私有应用中生成的示例 URL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多