3

我编写了一个代码,使用 quickbooks Web 连接器将购物车与 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 存储到我的数据库中?

4

5 回答 5

6

Quickbooks 在寻找客户方面并不是非常强大。实际上,唯一存在的过滤器是名称。在某些地方,您可以通过发票上的各种内容找到用户,但您所期望的实际数据(地址、电子邮件等)却很少。因此,您要做的是搜索名称并遍历完整的结果列表以找到您想要的记录。效率不高,但有效。有一种方法可以对结果进行分页,这样您就不会在咀嚼数十个结果时杀死您的机器。

这里有一篇关于如何对结果进行分页的旧文章 http://www.consolibyte.com/wiki/doku.php/quickbooks_qbxml_customerquery_with_iterators

请务必咨询 OSR 以了解支持哪些字段。电子邮件不是该类型请求的定义字段。 https://static.developer.intuit.com/qbSDK-current/common/newosr/index.html

于 2013-06-26T18:45:58.487 回答
3

全名是,电子邮件地址不是。

您将需要提取完整或过滤的列表并对其进行解析以查找电子邮件地址。

于 2013-06-26T18:25:57.330 回答
2

多谢你们。我找到了另一个可用的解决方案:

在全名字段中,我输入全名(电子邮件)。这样我就有了全名和电子邮件的唯一用户。其他字段(名字、姓氏和联系人填写正确)。

但请确保 fullName + email 少于 41 个字符(这是字段限制)。

于 2013-06-26T21:20:43.573 回答
0

看起来您现在可以通过电子邮件地址搜索:"Select * From Customer Where PrimaryEmailAddr = 'email@example.com'"

这是基于 API v3

于 2014-06-03T08:35:00.297 回答
0

使用名称过滤器或名称范围过滤器是否易于使用其唯一的客户名称来查询客户

"<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>"

例子:

” 从姆拉登彼得罗夫开始

姆拉登·彼得罗夫"

在回复中检查电子邮件 ID 是否正确..

于 2016-03-07T06:10:52.263 回答