What happens when you import a product to a Shopify Store?
Many of our users are asking "what is happening when importing a product to a Shopify Store and why is it taking so much time?"
I'm going to explain what are the stages of a Product Import.
A request to import products is sent after we do a few internal checks to ensure the product can be imported, we proceed on doing the actual import.
The first thing we do is import/update the general product information (title, description, options, variants, etc.). Then we confirm the variants and images have been imported properly if all checks out we publish the product. The final step is marking the variants as in stock.
Because Two Tap's level of integration is so high and the Hub also handles the post-ordering actions (fulfillments, refunds, etc.) we need to use a Shopify Fulfillment Service and create a new location for Shopify. By doing that we need to manually set the inventory levels for each variant imported.
Why does it take so much time to import the products?
For the Hub to communicate with Shopify, we use the Shopify API. That's how the Hub "talks" to Shopify.
The actual "talk" is being done through a series of requests to Shopify. In order to not overload Shopify with a lot of requests, there is a rate limiter set in place.
The rate limiter is a "leaky bucket" rate limiter with up to 40 calls with a refill rate of 2 requests per second.
What that means is that after we make 40 requests, we need to wait about 20 seconds for it to refill so we can send more requests.
Of course, there are a few ways of optimizing the requests sent and we are using many strategies, but the truth is we still have to wait for the bucket to refill.
To give you an example of how many requests a product import needs I'll use a 10 variants & 10 images product as a reference and take you through the whole process.
- 1 request - Initial product check.
- 1 request - Initial import / info update.
- 1 request - Check the variants got synced properly.
- 1 request - Check the images got synced properly.
- 1 request - Check the meta fields got synced properly.
- 1 request/metafield - If we need to update/add one.
- 1 request/image - If the images are too big or too many we need to upload them one by one.
- 1 request/variant - Do the inventory update.
So in the end, for this one product with two meta fields (we need them internally), 10 variants and 10 images could take as much as 25-35 requests depending on Shopify's response and load.
What if you import a lot of products at once?
No matter how much optimizing we apply to the requests, limits are still in place.
When you mass import products (more than 15-25 at once), they are placed in a queue along with the images import and the inventory updates. They still get processed one at a time.
Two Tap is always working on ways to improve product load time. We work closely with our partner Shopify to ensure your experience is the best. Keep asking great questions, we will keep providing informative and helpful answers.