How increase the product uploading speed in shopify? - api

I have more than 600k products in my shopify store . the store is taking too much time to upload a products in admin back-end ( 11k product is taken almost 8 hours to complete the upload process )
I have even Used the "shopify product API" to add my product to store .
Even API is taking to much time to insert a product to store .
Now i am in big confusion that which i prefer to upload the product .
whether through "admin back-end" or "shopigy API call .
please suggest me a best way ..
thank you

If you have that many products you should either be looking at Shopify Plus or another platform entirely.
Each product takes one API call to upload and over time your API call limit averages out to 2 per second so 600k products with one variant per product would take 83 hours to upload. Your 11k products should only take 1.5 hours to upload though so unless you have a number of apps running there is something wrong with your API setup.
If you maximize the partition of your products into variants you can upload a product and its variants in a single call. Each product may have up to 100 variants so if you can group your products into variants the theoretical saving could be down to 6k API calls and just under an hour of processing (if you have variant images I think you'd need 3 calls per product/variant/image group - 1 to upload the products/variants/images; one to read the variant and image ids; one to assign the images to the variants.
Shopify Plus has 5 times the API limit (though I can't find an official confirmation of this) so your 600k products could be uploaded in 16 hours.

As #bknights said putting all the variants and combining products as variants is the fastest way.
I'd also like to add this: split your portfolio into lots and using API you can have parallel API calls running.
I have to update 60K variants on my store once a week. As I figured out it used take an entire weekend sometimes to finish of the things. I must add that I use PowerShell for this task. Later I came to realize that while one call is running my program is running idle and by trial and error I came to a conclusion that I can have 4 call made at 250 milli seconds gap each. So I update variants of all the products (each having around 45 variants) in a single call.
This way, the time cut down to less than 1/12th of the total time. Also you can use the API call limit returned by Shopify to calculate the time gaps further. For a non-Plus Shopify account this is the fastest way possible.

Related

Odoo 15 Virtual real time limit OdooSh + Shopify Integration

I have Shopify integration with Odoo, however, when I was trying to update stock and price for > 500 products, I faced 'Exceeded 2 Calls per Second for API Client' from Shopify.
So, in order to counter that, I added time.sleep(0.5) which should work, then, I faced another problem which is from Odoo, 'Virtual real time limit (935/900s) reached'.
I did some research and found out that Odoo would kill a process if it runs for too long, some Google solutions mention '--limit-time-real' which I don't think I can config on Odoo.sh.
In addition, I need to run this update stock&price automatically everyday so I cannot split these products into multiple batch and process manually.
I really really appreciate any help.

What is the best way to bulk list items to ebay?

I have thousands of items and multiple eBay accounts.
They are mostly variation items with differing prices per color and size variation.
What's the best way to bulk list all the items?
Previously, I had everything listed one at a time, using either the addItem or addVariationItem calls.
But that can't be how large sellers manage things if in my situation.
What is the preferred way, the eBay API of choice, that best accomplishes this task?
Likewise, for updating the price and stock for all SKUs multiple times per day?
Is there a one-shot call or upload way which can do this?
There are some Bulky options with eBay APIs, but if you need to make more than 5000 calls per day you need first to build an App and pass eBay verification, and since 1 item means at least 1 call...
Elsewhere you have to use some SaaS services.
If you've already passed such step you can search for what was the LMS services. Actually they've been decommissioned last weekend but there is the new version (that's not working properly but we hope it will do soon). I suggest you to follow the migration procedure. It is not very clear, as all the eBay documentation, but IMHO is the best path.

Enterprise or Self-Service API - Request suggestion

I'm in the process of devolving a new tool for a company app. The tool will be sending homogeneous number of searches to amadeus API. Is every search result is considered as a request? A sample search of a user will have to search the api 1000 times are these searches considered as requests? Because if the company has 10000 request limit per month it's going to be over by 10 users! I need to understand this please.
Every time you call an API (every time you use GET/POST verb) you do a "request".
The limitation (quota) is only in the test environment, you don't pay for it but you have a limited number of calls and you only have access to a subset of data.
In production, you don't have any limitation on the total number of queries you can do. You get access to our full set of data (live) but you pay per use (you pay for each request you do).
You have a limitation on the number you can do per second (TPS: 10 in production / 5 in test).

eBay GetSellerTransactions & cURL_multi - limit?

Another beginners question:
I can get all eBay transactions from an item ID with GetSellerTransactions (XML).
I guess I can run cURL_multi and can get several transactions parallel. My question is, is there a limit how many item# I can send to the eBay API using cURL_multi?
eBay allows up to 18 simultaneous threads per AppID. See eBay Features Guide. This means you can fetch 18 transactions in parallel. But be aware that each single call still counts against the call limit of 5000 per day if your app hasn't passed the Compatible Application Check yet. Otherwise it will count against the 1.5 million calls per day limit.

Bigcommerce - request products based on a list of IDs

I am using the Bigcommerce API to develop a small standalone application for a client. I store product information in a local database anytime I fetch products from Bigcommerce, to reduce latency and network load. However, products can change on Bigcommerce, and while it is acceptable for my application to show mildly outdated information, I will need to update my local cache at some point. My current plan is to do this by storing the original date I requested the product, after which I will need to perform another request to refresh the cache.
My question is, given a list of products (including their Bigcommerce IDs), is there a way to request updates to all of them through a single call to the Products Resource? I can make a request for each individual product by calling:
GET {api}/v2/products/{id}
I can also request all products within an unbroken ID range by calling:
GET {api}/v2/products?min_id={value}&max_id={value}
I am able to successfully call both of the above methods, and I can chain them together in loops to fetch all products. What I want to do is request multiple products with unrelated IDs in a single call. So, something like this:
//THIS IS NOT A REAL METHOD!
GET {api}/v2/products?id[]={value1}&id[]={value2}
Is there any way I can do this? Or is there another approach to solving this that I haven't considered? My main requirements are:
Minimal API requests. My application is small but my client's bigcommerce store is not, and I will be processing tens of thousands of products. I have limited CPU and network resources available, and I simply cannot process that many requests.
Scalable. As I said, my client's store is large, and growing. I need a solution whose overhead scales at a manageable rate with number of products.
Note: my application is a small web application written in PHP running on a Linux shared hosting environment. It is a back of house system which will likely only be used by single user at a time, during standard business hours. I haven't tagged the question with PHP because my question is about the API, which is language agnostic.
One approch can be.
First get all products from BigCommerce using simple products call.
Set some interval time to get updated product list.
You can use min_date_modified and max_date_modified OR min_date_created and max_date_created in products API call to get updated products details.