8000 GitHub - geru/qbwc: Quickbooks Webconnector module for Drupal
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

geru/qbwc

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

No packages published

Languages

0