使用API​​在shopify中添加客户的问题

时间:2019-01-16 13:43:51

标签: api shopify

我有一个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');
            }
          });
    })

}) 

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

谢谢

2 个答案:

答案 0 :(得分:2)

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

如果您坚持使用自己的表单添加客户,则可以设置一个具有添加客户权限的应用程序,然后使用“应用程序代理”模式将表单发送给应用程序以创建客户。那是安全的,并且有效。

答案 1 :(得分:1)

您不能直接通过公共访问权在admin / customers.json上创建提交客户数据的新客户记录。即使您分享的细节不清楚您的完整要求,我还是在这里建议两种解决方案。

解决方案1 ​​:使用帐户创建表单创建新记录diff <(rg -N . file1.txt) <(rg -N . file2.txt)

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

第1步:转到商店管理部分的“应用程序”标签。向下滚动并点击管理私人应用,在此处创建一个应用以生成API密钥和密码。

第2步:创建并托管(在安全服务器上)脚本,该脚本将使用上一步中生成的API密钥使用regexr

创建新的客户记录

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

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