Hello, i am new in shopify app development and i want create new app for shopify POS, but i am completly lost. I read all docs for POS twice, but it not helped me understand how it works. Is there some simple example app, that i can look at? If it is possible can i get for example source code of https://apps.shopify.com/order-printer app? Is there some complete tutorial how to develop apps for shopify POS?
Thanks for any help.
Solved! Go to the solution
This is an accepted solution.
I'm a big fan of this tutorial from Shopify: https://shopify.dev/tutorials/build-a-shopify-app-with-node-and-react. You'll learn how to authenticate, how to implement Shopify App Bridge so your app can be embedded in the POS app, etc. Start off just making the super basic page from there - you can pretty much stop as soon as you can see something in your store's Apps section that works.
Then, you need to enable POS on your dev store. As part of this, you'll download the Shopify POS app to a device. Then play around with the extension areas: https://shopify.dev/docs/pos/getting-started. These are pretty much just settings that make the app available for POS (or other places). Use that as a guide for which kind of embed you want (where in the app the user will need to go and what they'll need to do to use it). I was stumped many, many times because I didn't know about some setting or other, and it was literally toggling a setting in Partners Dashboard > Apps that did what I wanted, until I was looking at the app on my phone.
At this point you should be able to add a tile on your Shopify POS device that'll contain your app, and see whatever test code you've got up. Now, you've got to look at your app, what it does and how it's going to do it, because every app's different. One key thing is you'll need to add the Admin API scopes you need to your server.js, from here: https://shopify.dev/docs/admin-api/access-scopes, and probably use GraphQL to get whatever information your app needs.
Later down the line, you'll have to host your app somewhere (rather than tunnelling ngrok from your localhost). That's another consideration, especially if you need a database.
I developed an app for POS that discounts line items based on product tags, so I'm not really doing anything like what Order Printer is doing, but if that's roughly what you're going for, I can potentially give more detail.
Big takeaway: Follow the tutorial, it'll get something happening for you pretty quick.