Go back to the main page

Lesson 2: QuickBooks Desktop Integration - SOAP Server Strategy

 

SOAP Server - Don't Use An Existing Library

Now that you know that you need to make a SOAP server on your end to talk to the QBWC, what kind of strategy should you go about making and constructing this SOAP server? I am going to go against conventional wisdom and recommend throughout the entire training series that you do not use an "off the shelf" QuickBooks desktop integration framework or library from your particular tech stack. I'm going to advocate that you bake this integration right in to your web application code. You're gonna want to talk to the database at a very intimate level. Moreover, you're going to have a lot of edge cases, error reporting and other things that make it very difficult for a generic library to handle. In fact, I have not even released this "library" that you're going to see through out this series and when I do an integration I pull it right into the application itself. So I practice what I preach.

This section is at the 0:22 mark.
Minimul says —

The lesson code is actually a Rails engine and is in a private Github repo. If you'd like access to it that can be arranged.

Really, Don't Use an Existing Library?

You're not going to be doing a QuickBooks desktop integration many times — you're going to do this one time and you're gonna need to do it right too. You want this to actually work and your customers to be happy. To do a solid QuickBooks desktop integration you are going need to be close to the metal. In short, you need to know what's technically going on. You are not going to be able to outsource that to a generic library. Chances are if you use an off-the-shelf library you'll end up re-writing most of the thing anyway.

This section is at the 1:14 mark.

Conclusion

The only library you going to want to start with is a generic SOAP server library. From there you are going to build each of the SOAP actions directly into your app. In the upcoming lessons you'll see how to do just that.