I’m tasked with coming up with an e-commerce solution for a small, local business. My client uses Intuit/Quickbooks point of sale software. I’ve just discovered that Intuit has a series of PHP 5+ classes that allow interoperability (link for anyone else that may stumble on this: https://code.intuit.com/sf/sfmain/do/viewProject/projects.php_devkit).
The website will be hosted on shared hosting, so the two systems are split quite literally. Her desktop does have internet access.
So, my questions:
- Is there a way for me to connect to her desktop via curl?
- If so, is there a way for me to do it securely if I can’t create a VPN on my host?
- Now that I think about it, is there a VPN service I could use?
- Any other security things I should be aware of?
Payment processing will be handled through Stripe (http://www.stripe.com). This is really just for inventory/order synching.
Your best bet is the QuickBooks Web Connector, along with that set of PHP classes you mentioned. See my specific comments below:
It’s worth noting that that library is NOT developed by Intuit (disclaimer – I’m the developer of that library). Intuit hosts our Subversion repository, but we’re a separate company, and Intuit does not contribute to the actual PHP code. Intuit provides a Windows COM-based API only, we provide the actual PHP components so you can talk to QuickBooks from a remote server via the Web Connector, without the need to muck with COM.
We have a ton of information on our QuickBooks integration wiki which might be helpful – specifically the QuickBooks integration with PHP section and this overview of the QuickBooks Web Connector.
Consider grabbing the latest nightly build from the link you posted, and taking a look at this file:
* docs/example_web_connector_point_of_sale.php
It illustrates exchanging data between PHP and QuickBooks Point of Sale.
This ^^^ is just fine, and a typical scenario. It’s exactly what the Web Connector was designed for. The Web Connector essentially acts as a “dumb proxy” between a PHP SOAP service, and QuickBooks itself – it relays messages from your PHP app, over HTTP(S), to QuickBooks.
Not with Curl, no (though you could build one… but why reinvent the wheel?). The Web Connector is SOAP based, but your PHP components will be the SOAP server half, not the SOAP client half.
The Web Connector can use SSL via HTTPS to keep the data secure while in transit across the net.
Just buy an SSL certificate, it’s easier. 🙂
Not beyond the typical web application security guidelines that you could find elsewhere on Stackoverflow.
This ^^^ is great advice, and is exactly how the Web Connector works.
In fact, if you need real-time, QuickBooks period is not the way to go. QuickBooks is a great small to medium business accounting software… but is slow and not reliable enough for consistent real-time communication. With that said… what you’re talking about does not require real-time communication, so this shouldn’t bother you.
The PHP code uses a queue with a status, so you can track what got processed, what didn’t, what you got back from QuickBooks as a response (“Added a customer successfully!” vs. “Ooops, failed to add a customer because …”), what error messages QuickBooks threw, etc. and then react appropriately with your code, or manually.
You won’t need cron – the Web Connector can be scheduled to run, and it’ll relay all errors and a ton of other information back to you so that you can handle errors, send out warnings, build reports to show to people about what failed/succeeded, etc.