Shopify was founded in 2006 and has since grown to include 500+ engineers in offices in Ottawa, Toronto (Metropolitan), Montreal, Waterloo and San Francisco. Shopify is used by more than 500,000 merchants. Shopify manages everything, from product listing, inventory management payments to secure checkout and shipping. Its core application, Ruby on Rails, processes over $40 billion in sales via its platform.
Postman: Upgrading the testing capabilities
Support for escalating needs
There will be bugs when you have thousands upon thousands of partners who use your API to create apps on your platform. Shopify’s escalated support teams depend on Postman to reproduce and debug any bugs that may arise. Postman makes it easy to identify all elements of a request and troubleshoot them.
Postman collections were first used in documentation to assist partners with getting up and running quickly with our API. Postman is now used by our internal teams to train and debug support issues. It also provides our partners with an instant way to make sample requests to various API endpoints on our platform.
Jordan Liddle Developer Experience Architect
Documentation for everyone
Shopify’s Developer Experience team focuses exclusively on helping developers build on Shopify. The API documentation is a key part of their goal. Shopify makes it easy to work with APIs thanks to its extensive library.
Shopify has published the Run in Postman button for sharing Postman collections in their developer documentation. Postman is used by developers to access their Shopify data.
The Developer Experience team also published a tutorial to help partners on how Postman can capture and send Shopify API requests. Postman folders and collections can be used by partners to organize Shopify API calls.
Shopify does not force anyone to use Postman. However, many of their developers prefer it. Postman is more than just a tool for development when your product is an API. Postman is a key part of our workflow.
Partner developers can find common ground
Merchant success managers will use Postman collections to create working code for high-volume merchants who want to migrate over Shopify’s platform. Although the Shopify API might be unfamiliar to merchant developers at first, they will likely be more familiar with Postman. Instead of coding new technology into their app they can use Postman instead.
Valid Shopify access token is required for all REST Admin API queries.
Public and custom apps that are created in the Partner Dashboard create tokens using OAuth. Custom apps that are made in Shopify admin can be authenticated in Shopify admin. Use one of the Shopify client libraries to simplify authentication.
Include your token as a X-Shopify-Access-Token header on all API queries. This process can be simplified by using Shopify’s supported clients libraries.
Apps must request access rights during the installation process to ensure security. You should only request the data access your app requires.
Python uses the Shopify API
Shopify offers a great RESTful API that allows you to access and modify your Shopify store’s data. The requests Library is an easy but powerful HTTP toolkit that allows you to perform the repetitive business of requests and replies.
Create a private app
First, you need to create a private app for your Shopify store. This topic is covered in Shopify’s docs. Note the URL of your shop (it must be HTTPS), as well as the API key and password for the private app.
The Interpreter will test you
It’s worth checking the Python interpreter before you begin work.
You should get the JSON response to the number of products in the shop. You can also use XML to transfer the products by referencing count.xml. However, Shopify prefers JSON and my preference.
You can add your favorite JSON library to the product count, if it doesn’t already exist.
It’s as easy as it gets. You can find all the Shopify API calls and the expected responses in the documentation. To ensure that nothing is wrong, it’s a good idea to verify the response.status_code 200.
The API has a limiter to prevent it from returning too many values. It currently holds 250 records. This limit will be addressed next time.