Endpoints
You can find the API key for your store from the app settings found in the admin side menu
API functions are currently rate-limited to 1 call every 2 seconds. If you exceed this, the function will return HTTP 429 (Too Many Requests).
Upload media to ACF media storage
To upload one or more media file(s) for a custom field to ACF media storage:
The list of src URLs needs to be full HTTP/HTTPS URLs and publicly available.
scope_id is the object id related to the provided scope, e.g. a product id, a collection id, etc. For the shop scope, you don't need to provide a scope_id
HTTP 200 is returned with this payload for a valid request:
The response contains an array of src elements with a status for each source URL. The status is either "uploaded" or "failed". If an upload fails, the corresponding URL element will be an empty string. For custom fields defined as the new "Media v2" type, the return value in URL is a JSON structure with this media type's properties filled out. Please use this structure in its entirety when updating or creating the Metafield referencing the media. See related articles below on how Media v2 fields are structured.
Following a successful request where all src URLs have status = "uploaded", all previous media files in ACF media storage for that custom field are deleted and you need to update the value of the custom field with the returned URL value to keep your media references valid If one or more of the src URLs for the request fails to upload, any previous media files in ACF media storage are left untouched. It is up to you to either skip updating your custom field entirely or selectively use the new URL for the src URLs that succeeded
Delete media from ACF media storage
To delete all media(s) for a given Metafield, use the POST method with an empty src array:
HTTP 200 is returned with this payload for a valid request:
Trigger automatic tagging
If you have any custom fields defined with "Automatic tagging" enabled and have updated the underlying Metafield values outside of ACF, you can trigger the tagging logic by using this endpoint and have ACF align the tags with the new value.
The Metafield property is optional and if omitted, the tagging logic will be triggered for all the fields for the scope, that is enabled for automatic tagging. HTTP 200 is returned for a valid request together with the following data, showing which field(s) were considered for tagging together with the final set of tags for the object in question (here a tag of "Condition|New" was added):
Update selection values
If you have any custom fields of type "Selection" and need to update the predefined selection values after the fact, you can use this endpoint to do exactly that.
The value property can be either an array or a pipe-separated string of all the individual values needed for the selection field. HTTP 200 is returned for a valid request, otherwise, a 4xx or 5xx error is returned.
Clear ACF cache
Note: get in touch with support before implementing this as it is most likely not needed, depending on your use case
ACF internally works with a server-side cache to speed up operations when reading both Metafields and various Shopify objects. This means that when you update your Metafields via Shopify's API, ACF won't see it right away and you risk overwriting your newly changed Metafields' content if someone is working in the ACF editor with a stale cache. To fix that, you need to tell ACF to refresh its internal cache following any updates you have performed:
HTTP 200 is returned for a valid request, otherwise, a 4xx or 5xx error is returned.
Please note, that clearing the server-side cache via the API won't clear any client-side caches that ACF works with inside your Shopify admin. If you are missing some newly added or updated objects when working in the ACF editor, use the refresh button in the right-hand column
Last updated