Communicate with a server
Authenticating with a development serverAnchor link to section titled "Authenticating with a development server"
Often, an extension running on a simulator or a device will need to communicate with a development server running on a local machine. One solution is to use the session API to get session tokens, and to pass these tokens to your development servers for authentication using the shopify_app gem.
CORS ConsiderationsAnchor link to section titled "CORS Considerations"
Requests originating from an extension will be of origin cdn.shopify.com. Your server needs to allow requests from this origin.
HTTPS RequirementAnchor link to section titled "HTTPS Requirement"
Shopify POS will refuse to fetch any non-HTTPS requests. Therefore, you must find a way to host your development server where it serves HTTPS requests. For example, a standard rails server will run on
localhost:3000. Attempting to access this server from an Android emulator using
10.0.2.2:3000 will fail. One strategy is to use Cloudflare Quick Tunnels, which provide an HTTPS URL to connect.
Example ExtensionAnchor link to section titled "Example Extension"
Below is an example extension that presents a Smart Grid tile. When tapped, the tile will present a modal that uses the Session API to get a session token, and then fetches some test endpoint on the development server.