Shopify 使用API查询客户

Shopify 使用API查询客户,shopify,Shopify,使用命令行shopify应用程序 include ShopifyAPI Customer.first(:params => {:query => "email:foo@fizz.com", :fields => "email"}) => #<ShopifyAPI::Customer:0x00000100b75448 @attributes={"email"=>"poohbear@gmail.com"}, @prefix_options={}, @persis

使用命令行shopify应用程序

include ShopifyAPI
Customer.first(:params => {:query => "email:foo@fizz.com", :fields => "email"})

=> #<ShopifyAPI::Customer:0x00000100b75448 @attributes={"email"=>"poohbear@gmail.com"}, @prefix_options={}, @persisted=true> 
包含ShopifyAPI
Customer.first(:params=>{:query=>“电子邮件:foo@fizz.com,:字段=>“电子邮件”})
=> #"poohbear@gmail.com“},@prefix_options={},@persisted=true>

我很好奇,如果你提供了一封电子邮件,结果是空集(未找到)或客户记录,是否可以进行查询?无论我的问题是什么,我总是能得到一份客户记录。这使得很难确定是否有来自店外的客户。

您遇到了错误的端点
Customer.first
查询索引端点(
admin/customers.json
),而您正在尝试执行搜索(
admin/customers/search.json

索引端点不理解查询参数,因此它会忽略该参数,从而获得常规索引

要解决此问题,您需要指定要尝试命中的端点。这里也有:

ShopifyAPI::Customer.find(:all, :from => :search, :params => { :q => "John" })

这是一篇老文章,但Shopify的文档非常不稳定。您需要使用搜索API端点,并且需要引用您正在搜索的电子邮件地址,例如

/admin/customers/search.json?query=email:"email@domain.com"
如果你不引用电子邮件地址,你可能会得到很多类似的电子邮件地址