Fields & metafields
You control exactly what lands in the CMS: pick from the standard product fields, pull in any Shopify metafield, and reserve fields that stay yours to edit in Framer.
Standard fields
Toggle any of these under Standard Fields in the CMS panel (All / None shortcuts included). Checked-by-default fields cover most storefronts.
| Field | CMS field | Type | Default |
|---|---|---|---|
title | title | Text | ✓ |
handle | slug | Slug | ✓ |
productId | productId | Text | ✓ |
price | price | Text | ✓ |
compareAtPrice | compareAtPrice | Text | ✓ |
description | description | Formatted text | ✓ |
collections | productCollections | Text | ✓ |
variants | variants | Text | ✓ |
image | image | Image | ✓ |
images | images | Text | ✓ |
imageVariantIds | imageVariantIds | Text | ✓ |
tags | tags | Text | ✓ |
availableForSale | availableForSale | Boolean | ✓ |
seoTitle | seoTitle | Text | ✓ |
seoDescription | seoDescription | Text | ✓ |
productType | productType | Text | ✓ |
vendor | vendor | Text | — |
videos | videos | Text | — |
subscriptions | subscriptions | Text | — |
dateCreated | dateCreated | Text | — |
collections is a reserved field name in the Framer CMS, so the
product's collection list syncs as productCollections. Bind to
that field when filtering CMS lists by collection.
Custom metafields
Sync any Shopify metafield by adding it under Custom Metafields:
- Enter the metafield as
namespace.key(for examplecustom.material). - Pick its type (single-line text, number, boolean, …).
- Run an import — the metafield becomes its own CMS field on every product.
Add as many as you need; remove one and it stops syncing on the next run.
Editable fields
Editable Fields are extra CMS fields that belong to you, not the sync — perfect for hand-written copy, badges or curation flags alongside synced data:
- Add a field name and type under Editable Fields.
- After the next import, edit its values directly in the Framer CMS.
- Framerlink never writes to these fields — imports and Auto-Sync leave them untouched.
Changing your selection later
Field changes apply from the next sync onward, and the same selection is shared by manual imports and Auto-Sync — deselecting a field removes it going forward, and a webhook update can never reintroduce it.