我想将我的移动POS系统与quickbooks集成.我需要客户,卖家,库存和过帐订单和发票.
我还没有找到一个python库.有可用吗?
我编写了一个痛苦的任务,即编写一个C#应用程序,将员工时间条目与Quickbooks同步到一个单独的数据库中.由于我是QB编程的新手,我正在尝试执行基本任务,例如获取客户列表,然后是每个客户的工作,然后是员工.我一直在阅读SDK文档,但我对细节仍然有点模糊,因为我发现的例子对我来说有点太先进了:-P
为了简单起见,我想要一个代码片段,它为我提供了初学者的客户列表.这是我得到的代码:
QBSessionManager SessionManager = new QBSessionManager();
IMsgSetRequest customerSet = SessionManager.CreateMsgSetRequest("US", 8, 0);
//
// Code to get list of customers here.
//
SessionManager.OpenConnection2("", "New App", ENConnectionType.ctLocalQBD);
SessionManager.BeginSession(string.Empty, ENOpenMode.omDontCare);
IMsgSetResponse Resp = SessionManager.DoRequests(customerSet);
MessageBox.Show(Resp.ToXMLString());
SessionManager.EndSession();
SessionManager.CloseConnection();
Run Code Online (Sandbox Code Playgroud)
任何人都可以填写"代码来获取客户名单"吗?非常感谢你提前!
胜利者
我的任务是为一家小型本地企业提供电子商务解决方案.我的客户使用Intuit/Quickbooks销售点软件.我刚刚发现Intuit有一系列允许互操作性的PHP 5+类(链接可能会偶然发现其他任何人:https://code.intuit.com/sf/sfmain/do/viewProject/projects.php_devkit).
该网站将托管在共享主机上,因此这两个系统完全分开.她的桌面确实可以上网.
所以,我的问题:
付款处理将通过Stripe(http://www.stripe.com)处理.这实际上只适用于库存/订单同步.
我无法从 Web Connector 启动 QuickBooks。我正在传递有效的文件路径,根据文档,一切看起来都正确。
如果我已经打开了 QuickBooks,则 Web 连接器运行良好。如果它没有打开,我会收到 QBWC1013 错误...
日志的相关部分:
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: FOO
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): FOO
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://www.foo.com/server.php
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="PHP QuickBooks SOAP Server v1.5.3 at /server.php">
20130312.14:14:56 UTC : …Run Code Online (Sandbox Code Playgroud) 将Quickbooks API V3中的Invoice文档检索为PDF吗?如果是这样,QuickBooks Desktop也会受到支持吗?在V2(Intuit数据服务)中,仅支持QuickBooks Online.
我正在建立一个简单的网站,我公司的客户可以查看过去12个月的报表,以及他们当前的余额.为此,我将使用QuickBooks Web连接器将必要的数据从我们的QuickBooks公司文件导出到MySQL数据库(通过ConsoliBYTE的PHP DevKit).
但是,我对QuickBooks本身并不十分精通,所以我的问题是:为了计算准确的客户余额,我需要在哪些字段中存储QBXML响应以存储在数据库中?
我不知道哪种类型的交易可以促成或影响余额(除了发票),所以我不知道在InvoiceQuery和CustomerQuery之外要做出哪些QBXML请求.
我也意识到Keith Palmer 的这篇文章,它暗示发票余额本身并不一定可靠:
"发票余额可以更改而不会更改发票本身(因为余额是从其他记录计算的字段,而不是发票本身的字段)"
我不知道每次Web连接器运行时是否更好地替换数据库中的所有Invoice数据,或者自己从相关记录计算Invoice余额,在这种情况下,我需要哪些数据来计算Invoice余额?
@ consolibyte的答案似乎是获得客户余额的最简单方法,所以我已经接受了它,即使它对我的具体用法不够冗长.
@Hpjchobbes的回答对于获取QuickBooks内置的Balance Detail报告非常有用.
我还添加了自己的答案,因为我需要提供一个完整的逐项清单.它似乎工作正常,但可能会出现失败的情况.
我正在使用QuickBooks Web Connector使用QBXML请求将员工记录从Windows 8.1计算机上的QuickBooks Desktop中拉出。是否有原因导致TimeModified时间戳返回的偏移量不占夏时制时间的原因?有没有一种方法可以获取主机系统上的当前时间?
即使当前时区已设置为“东部时间”并启用了“调整夏令时”,当前仍为TimeModified返回“ 2014-03-27T14:20:53-05:00”。偏移量应为-04:00。
QBXML请求:
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="12.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<EmployeeQueryRq metaData="MetaDataAndResponseData">
<OwnerID>0</OwnerID>
</EmployeeQueryRq>
</QBXMLMsgsRq>
</QBXML>
Run Code Online (Sandbox Code Playgroud) 我在许多程序上执行技术支持和一些开发,这些程序使用QuickBooks SDK来执行各种功能.最近我注意到当用户执行以下操作时:
先决条件: - QuickBooks未在桌面上打开,并且当前未运行. - 我的桌面程序未在QuickBooks集成应用程序列表中设置以自动登录.
1)打开我的一个程序.
2)执行启动与QuickBooks的连接和会话的操作.
3)QuickBooks界面返回一个错误,指出您必须打开QuickBooks并登录到公司文件才能执行此操作.
4)我的程序关闭会话和连接,然后向用户显示一些对话框,为他们提供故障排除提示.
结果:
QuickBooks本身继续作为QBW32.exe在后台运行,即使会话和连接都已关闭.
如果用户然后尝试打开QuickBooks桌面程序,则会收到错误消息,告诉他们QuickBooks已在运行.然后,他们必须在Windows中打开任务管理器并关闭正在运行的QBW32.exe,然后才能成功打开QuickBooks.
我已经使用我在下面编写的非常基本的C#程序重现了这一点.
在测试应用程序中,我使用以下步骤/方案:
先决条件:1)测试应用程序未设置为自动登录到QuickBooks.它设置为仅在用户打开QuickBooks桌面程序并且具有打开的公司文件时登录.
2)确保在下面的测试之前没有打开QuickBooks.
脚步:
1)打开测试C#应用程序
2)按下"打开连接"按钮.应通过QBXML互操作与QuickBooks的界面打开连接.
3)按"开始会话"按钮.应该使用QuickBooks启动会话.
4)假设上面的测试预先请求已经满足,您应该收到QuickBooks返回的错误消息,告诉您应用程序未设置为自动登录,您需要先打开QuickBooks才能尝试会话.
5)QBW32.exe现在应该在后台运行.
6)按下结束会话的按钮.这应该使用QuickBooks界面结束会话.无论如何,会话应该已经通过步骤3按钮中的try-catch结束.
7)按"关闭连接"按钮.这应该关闭与QuickBooks的所有连接.
8)即使会话和连接已经结束并关闭,QBW32.exe仍然在后台运行.
9)使用退出按钮关闭测试应用程序.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using Interop.QBXMLRP2;
namespace Open_Connection
{
public partial class Form1 : Form
{
bool sessionBegun = false;
bool connectionOpen = false;
RequestProcessor2 rp = null;
string ticket;
public Form1()
{
InitializeComponent();
}
private …Run Code Online (Sandbox Code Playgroud) 尝试将Quickbooks Web连接器从一台计算机连接到另一台计算机
<?xml version="1.0"?>
<QBWCXML>
<AppName>QuickBooks WC Test</AppName>
<AppID />
<AppURL>https://localhost3.dd</AppURL>
<AppDescription>Test</AppDescription>
<AppSupport>https://localhost3.dd</AppSupport>
<UserName>Admin</UserName>
<OwnerID>{90A44FB7-33D9-4815-AC85-AC86A7E7D1EB}</OwnerID>
<FileID>{57F3B9B6-86F1-4FCC-B1FF-967DE1813D20}</FileID>
<QBType>QBFS</QBType>
<IsReadOnly>false</IsReadOnly>
</QBWCXML>
Run Code Online (Sandbox Code Playgroud)
将我的主机设置为:
<IP of other comp> localhost3
<IP of other comp> localhost3.dd
Run Code Online (Sandbox Code Playgroud)
另一台计算机上的URL是端口8443 上的https://localhost3.dd
但是我得到了错误:
Length cannot be less than zero.
Parameter name: length
The new application was not added.
Run Code Online (Sandbox Code Playgroud)
这似乎是一般的C#错误。
和
Cannot access a disposed object.
Object name: 'QBWCOpenDialog'.
QBWC1051: The new application was not added
Run Code Online (Sandbox Code Playgroud)
是什么原因造成的?连接或我用来连接的XML是否存在问题?
使用要求的信息进行编辑:
Web连接器版本为2.1.0.30,Quickbooks版本为Premier Professional Services Edition2015。这是我正在使用的实际QWC文件。
这是日志文件:
20120201.23:43:22 UTC : QBWebConnector.CompanyFileLock.getLock() : Got Lock …Run Code Online (Sandbox Code Playgroud) 我想创建本机QuickBooks连接器.在连接QuickBooks Company文件时,我收到以下错误.
"此应用程序不允许自动登录此QuickBooks公司数据文件.QuickBooks管理员可以通过集成应用程序首选项授予自动登录权限."
这是我的代码:
QBSessionManagerClass sMgr = new QBSessionManagerClass();
try
{
sMgr.BeginSession(fileName, ENOpenMode.omMultiUser);
}
catch
{
sMgr.CloseConnection();
throw;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用QuickBooks Desktop Enterprise Solutions 17.0和QBXML SDK 13.0安装程序.
有没有人对这个问题有什么想法?提前致谢.