我编写了一个代码,使用quickbooks Web连接器将购物车与quickbooks集成在一起。问题是当我试图找出按名称和电子邮件过滤的quickbooks中是否有客户时。我试过这个:
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="9.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<CustomerQueryRq>
<FullName>Mladen Petrov</FullName>
<Email>bksi@abf.cd</Email>
</CustomerQueryRq>
</QBXMLMsgsRq>
</QBXML>
但它给我一个错误。有没有办法通过名称和电子邮件找到quickbooks客户,或者我必须得到所有QB客户并以某种方式将他们用QB ID存储到我的数据库中?
答案 0 :(得分:4)
Quickbooks在寻找客户方面并不十分强大。真正存在的唯一过滤器是名称。有些地方可以通过发票上的各种内容找到用户,但很少会找到您期望的实际数据(地址,电子邮件等)。所以你要做的就是搜索名称并遍历完整的结果列表以找到你想要的记录。效率不高但有效。有一种方法可以对结果进行分页,这样就不会因为几十个结果而扼杀机器。
这里有关于如何对结果进行分页的较旧文章 http://www.consolibyte.com/wiki/doku.php/quickbooks_qbxml_customerquery_with_iterators
请务必咨询OSR,了解支持的字段。电子邮件不是该类型请求的已定义字段。 https://member.developer.intuit.com/qbsdk-current/Common/newOSR/index.html
答案 1 :(得分:3)
全名是,电子邮件地址号
您需要提取完整或已过滤的列表,然后通过它解析查找电子邮件地址。
答案 2 :(得分:2)
谢谢你们。我找到了另一个可用的解决方案:
在FullName字段中,我输入了FullName(电子邮件)。这样,我有全名和电子邮件的独特用户。其他字段(第一个,姓氏和联系人填写正确)。
但请确保fullName + email低于41个字符(这是字段限制)。
答案 3 :(得分:0)
看起来您现在可以通过电子邮件地址进行搜索:"Select * From Customer Where PrimaryEmailAddr = 'email@example.com'"
这是基于API v3
答案 4 :(得分:0)
是否可以轻松使用名称过滤器或 NameRange过滤器来查询客户的唯一客户名称
"<NameFilter> <!-- optional -->
<!-- MatchCriterion may have one of the following values: StartsWith, Contains, EndsWith -->
<MatchCriterion >ENUMTYPE</MatchCriterion> <!-- required -->
<Name >STRTYPE</Name> <!-- required -->
</NameFilter>
<!-- OR -->
<NameRangeFilter> <!-- optional -->
<FromName >STRTYPE</FromName> <!-- optional -->
<ToName >STRTYPE</ToName> <!-- optional -->
</NameRangeFilter>"
示例:
&#34; 以。。开始 MladenPetrov
Mladen Petrov &#34;
在电子邮件ID的回复检查中是否正确 ..