Can someone assist me by letting me know what shopify API's I need use to make sure my lightspeed POS and Shopify inventory are always synced.
Here is what I need to accomplish:
My programmer has already built me a custom program with lightspeed. We have full access to the API. We have never worked with shopify before.
Thank you in advance for your guidance and support.
Our parent company has a smaller subsidiary company using Lightspeed Retail POS, and all companies use Shopify for e-com. Here are a few links to dig into as to Shopify's API.
I would suggest starting off using Shopify's GraphQL API, which seems to be where Shopify is placing most of its resources. While the Shopify REST API mirrors more logic and syntax of the Retail API, the Shopify GraphQL API is more comprehensive. Once you get the hang of how it works!
I maintain a project that does a lot of what you're trying to accomplish, to directly answer your question you'll likely need Product, Variant, and Inventory Item endpoints just to sync inventory between the platforms. If you want to perform actions based on sales, you'll need more.
This gets surprisingly complicated pretty quickly, but here are a few more things to look out for:
1. upload items - unless you maintain exactly the same product organization between the two platforms, you'll likely need to add a human layer to translate lightspeed categories to Shopify types/tags and to create the associated collections or smart collections. You also have a mismatch between the way products are organized on the two platforms. Specifically every sku is an item in LS and items CAN be organized into matrix items, but it's not required. It's the reverse in shopify, everything is a product in Shopify, but not every product has a variant. This can cause some issues when you try to figure out how to map LS products to shopify products. Are you maintaining product descriptions and images in LS? If not, you'll need to have a layer that does that for you too.
2. LS retail does not send webhooks - you'll need to regularly poll their API for updates and manually send them to Shopify.
3. Again no webhooks, so you'll need to manually check. You'll also need to figure out some surprisingly complicated rules around which fields you're using to match products and how to handle exceptions. For example if you're using UPC, what happens if the UPC exists in LS twice? What about if it exists twice in Shopify?
4. LS doesn't listen for webhooks, but you can setup something on your own that will, and will then update LS accordingly. You'll want to be really careful with two way sync though, you can create recursive problems if you aren't careful. We've found its best to have a human involved somewhere at this step. EG LS sales, automatically change Shopify inventory, but Shopify sales only remove stock from LS when a human creates a matching sales records during the shipping process.
Feel free to reach out if you have more questions. I've spent a lot of time working with both platforms.