If you call LightSpeed tech support, you’ll likely be told that their Web Store product is your only choice but I’m here to tell you that it there is another option. I’m not saying that it’s a good option, but there is another way if you’re really determined.
Almost every other week, I get an email from someone who just bought LightSpeed and wants to make it work with their existing online store front. Maybe they spent a ton of money on their website and they don’t want to throw it all away and start again or maybe LightSpeed’s Web Store just doesn’t cut it and their business requires something more custom.
How LightSpeed Pro works with Web Store
Out of the box, LightSpeed Pro is made to work with it’s own online store called, ‘Web Store’. It’s a pre-made website that features a product catalog and shopping cart, complete with custom pages, a contact form, shipping quotations, credit card processing, and even promo codes.
Working with Web Store is easy. When you add products to LightSpeed Pro, simply indicate that you’d like them to appear on the website and under what product category, and they are included in the next upload. Any changes to products also get automatically uploaded so if you change the price or description… or you run out of stock and discontinue the product… the website is updated to reflect these changes.
Similarly, when a customer places an order on your Web Store, that order is downloaded into LightSpeed and appears as a fully pre-paid customer Order in LightSpeed Pro that then needs to be turned into an Invoice as it is picked and shipped to the customer.
It’s important to know that the link between LightSpeed and Web Store is not instant. While a schedule can be set to update Web Store (and download any existing orders) on a regular basis, any changes you make to products in LightSpeed Pro may not be seen until the next upload unless you trigger the update manually.
What’s really happening, in the background, is that LightSpeed Pro communicates with your website server using a protocol called, SOAP. This allows LightSpeed Pro to reach out to the Web Store and send updates to products and ask for any new customer orders. When it uploads or updates products, it is simply updating a MySQL database table with new information. When it downloads orders, it is simply reading that same MySQL database and marking those orders as having been downloaded.
Additionally, a recent change has added another step in which the status of orders is updated to reflect whether or not they’ve been invoiced. This allows Web Store to ‘reserve’ inventory based on orders that it has received from customers and then release that stock when it finds out that those orders have been fulfilled.
Hi-Jacking Web Store
So, how do we make LightSpeed Pro work with any website? We hi-jack it.
From the perspective of LightSpeed Pro, it simply needs to be told how to communicate with it’s Web Store. From there, it connects and does all the work of updating the online database and downloading orders. But what if we replaced Web Store with something that looked and acted just like Web Store so closely that it ‘tricked’ LightSpeed into thinking that it is just a normal Web Store?
There are a number of ways to do this. We could write our own SOAP connector that mimics the communication of Web Store’s connector but then reads and writes the data to our own website database. But this is a lot of work. My recommendation is to install Web Store and allow LightSpeed Pro to communicate with it but don’t use the front end. Simply read from and write to the database as required to update your own website.
Why using LightSpeed Pro’s API won’t work
Many people assume that since LightSpeed Pro has a programmer’s interface (called an ‘API’) for reading and writing data, that you could simply write your own web store and make it read product data as required and then write in orders and payments as they are taken.
Unfortunately, the API does not allow you to read or write customer ‘Orders’ into LightSpeed Pro. Nor does it allow you to write ‘Payments’. Additionally, depending on how many products you have, the simple act of requesting a list of products might cause a timeout due to the shear amount of data being transferred. Furthermore, when stock changes for a product in LightSpeed Pro, it’s ‘modified’ date/time field isn’t updated so there is no way to ask for a list of products that have changed since last time.
But what if your product list is small enough that asking for the entire list doesn’t cause a problem? You could simply insert each web order as an Invoice in LightSpeed Pro but you’ll have to record the payment manually each time and technically, it’s not an Invoice until the product ships so that may cause it’s own issues. For a small store, this is easily corrected, but for a store that does many transactions a day, this can cause a real accounting and operations nightmare.
Thus, accessing the data within LightSpeed Pro for the purposes of running a website is best done with LightSpeed Pro’s own Web Store connector. Buy it. Install it. And then hi-jack it.
We’ve developed some code that helps you do exactly that. If you’d like some help with your Web Store project, just contact our office to set up a consultation to discuss your needs and your options.