我想使用consolibyte quickbooks php devkit将客户和发票发送到quickbooks在线帐户。我已设法做到这一点,但我无法为客户和发票设置我的自定义ID,因为库从对象中取消了它们。
有人知道这是否可以实现,或者quickbooks API是否允许这样做?
另一种方法是将quickbooks_id存储在我的数据库中,我试图避免这种情况。
谢谢!
编辑:一些代码
$IPP->version(QuickBooks_IPP_IDS::VERSION_3);
$CustomerService = new QuickBooks_IPP_Service_Customer();
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setId(101); // this is the ID i want to set
$Customer->setTitle('Mr');
$Customer->setGivenName('John');
$Customer->setFamilyName('Doe');
答案 0 :(得分:1)
这肯定是不可行:
$Customer->setId(101); // this is the ID i want to set
您不能只创建自己的Id
值。这些是QuickBooks的Id
值 - 在QuickBooks Online中基本上是他们的主键。
如果您对对象进行查询,则会为所有对象返回Id
个值。如果您创建一个新对象,您将从Intuit返回一个Id
值,用于新创建的对象。可以把它想象成一个SQL数据库的AUTO_INCREMENT PRIMARY KEY
。您执行插入操作,即可获得唯一的Id
值。
这不是PHP代码本身的限制 - 它是实际的QuickBooks API的工作方式。 Id
值不是您的 Id
值,它们是 QuickBooks' Id
值。它们不可设置值。
您应该将Id
值存储在您自己的数据库中。即使您可以设置这些Id
值,您也必须记住您不是唯一可以访问QuickBooks数据的人 - 如果您可以设置他们,然后所以连接到QuickBooks的任何其他应用程序基本上会覆盖您设置的任何值。