【问题标题】:Can i query a quickbooks customer by name and email我可以通过姓名和电子邮件查询 quickbooks 客户吗
【发布时间】:2013-06-26 17:06:48
【问题描述】:

我编写了一个代码,使用 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 一起存储到我的数据库中?

【问题讨论】:

    标签: quickbooks qbxml


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      全名是,电子邮件地址没有。

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

      【讨论】:

        【解决方案3】:

        谢谢各位。我找到了另一个可用的解决方案:

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

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

        【讨论】:

          【解决方案4】:

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

          这是基于 API v3

          【讨论】:

          • 注意标签 qbxml。我只使用带有 quickbooks 网络连接器和 php 网络服务器的桌面版。
          【解决方案5】:

          使用名称过滤器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>"
          

          例子:

          " 以。。开始 姆拉登彼得罗夫

          姆拉登·彼得罗夫 "

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

          【讨论】:

          • 是的,我可以直接用全名试试,但这会影响性能。
          • FullName 是以每个祖先的名字为前缀的名称,例如 Jones:Kitchen:Cabinets。 FullName 值不区分大小写。所以,如果我想与 quickbooks 桌面中的旧记录同步,我如何知道旧记录的全名。我只知道客户姓名,所以这个查询是否正确?
          • 这样做的想法不是与旧记录同步,而是在采取行动(编辑/添加)之前检查记录是否存在。采取此操作,服务器不知道 QB 中的内容。
          • 是的,在我的 Web 应用程序中,我有一些客户我不知道这个客户是否存在于 quickbooks 桌面,所以在我将客户添加到桌面之前,我输入了这个选择查询并找到它。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-02
          • 1970-01-01
          • 1970-01-01
          • 2016-12-26
          • 2022-01-13
          • 2018-07-31
          相关资源
          最近更新 更多