Experimental project

This is a sandbox project, which contains experimental code for developer use only.

This is a very small and efficient module. It performs the following functions:

  • use the PHP SoapServer class to perform base SOAP communications in accordance with the Webconnector's WSDL protocol.
  • generate an appropriate QWC configuration file used buy the Webconnector
  • pass QBXML requests back and forth to Drupal via hooks

Rationale

Quickbooks stand-alone and point-of-sale desktop applications can share data with outside sources via the Quickbooks Webconnector. The Webconnector is a SOAP client requiring a SOAP server. It establishes a connection and then allows the SOAP server to act as an XML client to Quickbooks.

Because each side of this communications link acts as a client in one respect and a server in another respect, the whole question of whether Drupal acts as the server or the client in this exchange depends on the level at which the exchange is viewed. Server modules like Services are inappropriate as Drupal itself is not a server. And client modules are inappropriate because the can not act as a server accepting an incoming SOAP client request.

QBWC Interface resolves this by acting as a SOAP server to establish the connection to Quickbooks Webconnector and then steps back and acts as a conduit for Drupal, which then acts as a client passing requests and responses back and forth via Drupal hooks.

QBWC Interface does not make any assumptions about incoming or outgoing requests and responses and leaves that entirely to other modules. The other modules need only hook into its two offered hooks to begin receiving and sending requests in accordance with the QB XML specification.

Project information