First seeding of products in shop

New Member
2 0 0

Hello Shopify Community! :)

Let me say that I love Shopify  and I'm looking forward to open my online store!


I am in the process of creating my first store.

The number one thing to do is seed the products inventory.

I have ~20k records in my database.


Here's what I've been doing:

  1. Create one big .CSV to import inside shopify. Sadly this does not seem to work. The problem is not the format of the file because it works when I only try to import ~1000 products. I think that the CSV upload fails after 1 minute or so, since 25k records in one single file are like a 100MB upload. If any other solution fails I'll upload 25 files of 1000 products each.
  2. Store products with admin API. Scheduling correctly the API calls, with an average of 2 calls per second (as per the api limit on basic plan) I'd be able to seed the inventory in 4-8 hours. I have to do this since I have not found any bulk post api endpoint. The first problem that I have encountered with this solution is that I am not able to set the product SEO fields by the metafields option. Do I need to hit metafields.json first then product.json? Api doc for quick reference


Some more few question from a noob.

Will Shopify be able to manage 25k products without performance issues?

Will it be ok for Shopify if each night I do a few thousands of API call to update the online store?


Looking forward to your answers!

Thank you








New Member
2 0 0

Partially answering to myself.

The csv upload is failing since there's a size limit of 15MB.




I still am not able to create a product with SEO fields.

This is what the Doc says:
Schermata 2020-04-14 alle 18.26.13.png









And the example request:

Create a product with a metafield

POST /admin/api/2020-04/products.json
  "product": {
    "title": "Burton Custom Freestyle 151",
    "body_html": "<strong>Good snowboard!</strong>",
    "vendor": "Burton",
    "product_type": "Snowboard",
    "metafields": [
        "key": "new",
        "value": "newvalue",
        "value_type": "string",
        "namespace": "global"



I would expect the following to be a working example, but it does not work:

        $new_product = [
            'title' => 'Burton Custom Freestlye 100',
            'vendor' => 'Burton',
            'metafields' => [
                    "key" => "metafields_global_title_tag",
                    "value" => 'SEO title',
                    "value_type" => "string",
                    "namespace" => "global"

        $response = Http::post($url, ['product' => $new_product]);

This creates a product but not  metafields and not the SEO title