-
Notifications
You must be signed in to change notification settings - Fork 0
Quickbooks Webconnector module for Drupal
geru/qbwc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
CONTENTS OF THIS FILE --------------------- * Introduction * Requirements * Recommended modules * Installation * Configuration * Troubleshooting * FAQ * Maintainers INTRODUCTION ------------ Quickbooks Standalone and Point-of-sale (POS) systems run on independent computers. They are generally not accessible to outside server requests and this helps with security of the data. The Quickbooks Webconnector allows these two applications to exchange data with a Drupal site, but maintains security by ensuring that the Quickbooks computer only speaks to a desired website and does so at its own discretion. Using the SOAP communications protocol, the Webconnector acts as a SOAP client and connects with a secure SOAP server (the Drupal website). It then authenticates itself with the SOAP server and establishes a communications channel with the server. After the channel is established, the Webconnector then passes control to Quickbooks, which then acts as a QBXML server while the Drupal website switches roles from SOAP server to QBXML client. Because of this dual-personality communications paradigm where each end of the connection acts simultaneously as a client in one instance and a server in another instance, it is sometimes difficult to tell which end is acting as a server and which end is acting as a client. Configuring the Webconnector The Webconnector establishes a connection ONLY through a secure HTTPS channel. It is configured with a .QWC file which stores access username and password and some file markers and other configuration information. It can be difficult to configure a QWC file so that each end of the SOAP communications channel is properly set up. The QBWC Interface module defines a SOAP server class to perform SOAP communications with a standalone PC running Quickbooks and the Quickbooks Webconnector. It generates all of the relevant configuration information in a QWC file which can easily be downloaded onto the computer hosting Quickbooks and the Webconnector. The Webconnector is then run on the Quickbooks computer. The Webconnector connects to the Drupal site via the SOAP-server endpoint (established by qbwc) and asks it if it has any requests for the Quickbooks computer. The Drupal site sends any pending requests at that moment and processes the responses as they come in. The qbwc module sets up a SOAP server to talk to the Webconnector. When the Webconnector connects, qbwc_handles Drupal's communication with the Webconnector and provides hooks to the rest of Drupal to send and receive messages to and from the Webconnector's host Quickbooks application. The setup of the Quickbooks Webconnector happens through the administrative menu which gets a new group called Enterprise. The QWC file is generated by visiting the QWC Generator menu option. * This module has no Drupal dependencies, and is a base module on which a scaffold of other already-developed modules depend. * For a full description of the module, visit the project page: https://www.drupal.org/node/2784061 * To submit bug reports and feature suggestions, or to track changes: https://www.drupal.org/project/issues/2784061?categories=All REQUIREMENTS ------------ This module requires the following: * PHP configured with the SOAP extension * secure (HTTPS) webserver (or named with "localhost" in the name -- not recommended) * Quickbooks (a commercially available product) * Quickbooks Webconnector (a free developer connectivity program available from Quickbook's maker, Intuit) INSTALLATION ------------ * Install as you would normally install a contributed Drupal module. See: https://drupal.org/documentation/install/modules-themes/modules-7 for further information. * This module generates random connection information for ID, password, and endpoint (and a couple of Webconnector-specific IDs). You can modify these from the administrative configuration interface /admin/config/enterprise/qbwc or just go with the defaults generated. TROUBLESHOOTING --------------- * If the configuration menu does not display, clear your cache or visit it through the module configuration menu. FAQ --- Q: What does this module do? A: It does nothing without some configuration and outside connection from a Quickbooks Webconnector. But, it should successfully perform the Webconnector authorization dialog without errors. Without any scaffolded modules, it will do nothing more. Q: How does this compare with other Drupal Quickbooks integration modules? A: QBWC Interface is unique in that it doesn't use the Drupal Services module and it is data agnostic, meaning it doesn't care what data gets exchanged or which Drupal application makes use of the data. Services The Webconnector data flow model uses two levels (SOAP and QBXML) and is schizophrenic in that at the SOAP level the Drupal site acts as a server while at the QBXML level it acts more as a client. The Drupal Services module is intended for use-cases where Drupal acts as a data server. Since in the Webconnector communications model the Drupal site acts as a data client, use of Services is inappropriate in this use case. Efficiency A PHP SOAPserver library is built into PHP. Services is not neede 5420 d to use this powerful functionality and QBWC Interface goes directly to the PHP library for maximum efficiency with few (if any) dependencies. Modularized QBWC Interface minds its own business establishing and servicing SOAPserver functionality and passing off QBXML to different level. Therefore, it can be used by a broad spectrum of other applications which include CiviCRM, Redhen, Drupal Commerce, and more. Data agnostic Quickbooks maintains lots of information such as customers, inventory, accounts, and transactions that are not necessarily applicable to Drupal Commerce. Other modules tie their functionality to a particular application or module or to several applications thereby reducing their general usefulness. Similar Projects Commerce QB Webconnect * tied to Services * complicated * tied to Commerce * not easily extensible * not clear it does two-way data transfer * configuration of Webconnector remains a challenge * not necessarily clear that it performs necessary securing of data * not clear that it performs necessary tasks such as error reporting * doesn't provide a valid WSDL link in its WSDL file Commerce Quickbooks Webconnect seems to be an unmaintained sandbox version of Commerce QB Webconnect * relies on the quickbooks-php-devkit/QuickBooks.php which is a very large morass of code sandbox Quickbooks * has no commits QuickBooks PHP DevKit * large * unmaintained Quickbooks Integration * pre-alpha for Drupal 5 Quickbooks API * last seen in Drupal 6 Intuit QuickBooks Integration * sandbox for Quickbooks Online Ubercart Quickbooks Integration * Drupal 6 alpha Intuit QuickBooks Integration * closed as duplicate MAINTAINERS ----------- Current maintainers: * Hugh Kern (geru) - https://drupal.org/user/2778683
About
Quickbooks Webconnector module for Drupal
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published