Creating metafields on product via REST api

BillyH
New Member
1 0 0

We are having issues using the metafields on a product on the /admin/api/2020-07/products.json rest api endpoint.
If "metafields" is either not included, or is set to an empty array, the product is creating without issue.
However when trying to create a product with metafields we are receiving the following error :

{"errors":{"metafields":"expected Hash to be a Array"}}


This is happening on both creates and updates.

 

Sample request payload : 

{
    "product": {
        "product_type": "Physical Product",
        "title": "Metafield Example Product",
        "body_html": "",
        "variants": [],
        "images": [],
        "tags": "",
        "metafields": [
            {
                "key": "option_one",
                "field": "metaOptionOne",
                "value": "Wishlist potential: High",
                "namespace": "custom_fields",
                "value_type": "string"
            },
        ],
        "published": true,
    },
}

 

0 Likes
edaroit
Shopify Staff
Shopify Staff
1 0 1

Hello @BillyH,

I've tried to replicate the issue without success. Looking at the application logs, I've noticed four 400 Bad Request from Sep 22 through Sep 24 on this endpoint.

These bad requests and the error message you've received can be explained if the payload sent metafields as a JSON object rather than an array.

Payload:

 

{
	"product": {
		"product_type": "Physical Product",
		"title": "Metafield Example Product",
		"body_html": "",
		"variants": [],
		"images": [],
		"tags": "",
		"metafields": {
			"key": "option_one",
			"field": "metaOptionOne",
			"value": "Wishlist potential: High",
			"namespace": "custom_fields",
			"value_type": "string"
		},
		"published": true
	}
}

 


Response:

 

{
  "errors": {
    "metafields": "expected Hash to be a Array"
  }
}

 

 

 

PaulNewton
Shopify Partner
3131 195 576

Welcome the forums @edaroit  strong start hitting it out the park with a first post.

Problem Solved? ✔️Accept and ? Like the solution so you can help others.
Buy me a coffee ☕ paypal.me/paulnewton or donate to eff.org
Confused? Busy? Buy a custom solution paull.newton+shopifyforum@gmail.com