Metadata Editor

Edit B2C Commerce metadata XML as a tree of types, groups and attributes, with usages, filters, a type gallery, split view and XML problems

The Metadata Editor opens a metadata import file, such as system-objecttype-extensions.xml, as a tree of the object types it extends or defines, their attribute groups and their attributes. Every change is an edit of the XML, written where metadata.xsd expects it, and one Undo step

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

Open a metadata file

Any .xml file whose root is <metadata xmlns="http://www.demandware.com/xml/impex/metadata/2006-10-31"> opens in the Metadata Editor, whatever its name or folder. Two tabs sit under the editor, as for pipelines: Metadata Editor first and Text beside it. Both show the same document, so Undo covers both. The Text tab opens with the caret on the selected row's XML, and back in the Metadata Editor the row under the caret is selected

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

To create one, right-click a folder such as sites/site_template/meta and choose New › Metadata File. Pick System object extensions (system-objecttype-extensions.xml) or Custom object types (custom-objecttype-definitions.xml). A new file shows No object types yet with the links Extend a system object and Add a custom object type

The toolbar

One row over the tree, left to right

ControlWhat it does
AddAdds an Attribute… (Cmd+N / Ctrl+N), an Attribute Group…, a System Object Extension… or a Custom Object Type…
DeleteDeletes the selected rows. On rows that a group only lists, it reads Remove from Group
Search IDs and namesFilters the tree by ID or display name. Cmd+F / Ctrl+F focuses it, Escape clears it, Down goes to the rows
All, Custom, SystemThe kind of attribute, each with its count
No usagesCustom attributes nothing in the project reads
Not in a groupCustom attributes in none of their type's groups: Business Manager's forms leave them out
FiltersEvery filter, with how many attributes each shows. The badge counts the filters that are on
ResetTakes off the filters, keeping the search and the kind
Count9 attributes, or 1 of 9 while a filter is on
ProblemsThe number of problems in the file. A click opens the XML and its problems
Expand All, Collapse AllThe tree's branches

Find attributes

The search keeps the path to each match, so colo shows Product › Looks › color. The Filters popup holds every filter in a grid, each with the number of attributes it shows

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows
SectionFilters
KindAll, Custom, System
StatusWith problems, No usages, Not in a group, No display name, No description
Object typesThe types of the file, such as Product or a custom object type
Attribute typesThe types by family: Text, Numbers, Choices, Dates, Media, Lists
FlagsLocalizable, Mandatory and the other flags, each Any, Yes or No

Find a filter narrows the popup and Reset all clears it. When nothing matches, the tree says what it looked for and offers Clear the filter

The tree

ColumnShows
NameThe type, group or attribute ID. A second block extending the same type reads Product (2). An attribute nothing reads is grey, and a problem draws a waved line under it
Display nameThe x-default display name
TypeThe attribute type and the flags that are on, such as Text localizable. A type row reads System object or Custom object type
UsagesHow many places in the project read the attribute, a click lists them. A type row counts its unused attributes

Under each type come its groups in file order, then Not in a group. Attributes a group lists but the file doesn't define, such as the system attribute name, are grey. The columns drop as the editor narrows: Display name first, then Type

Edit in the tree

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows
  • Double-click a display name or a type to edit it in place. F2 renames the ID. Changing the type of an attribute asks first, because an import fails on an instance that already has it
  • Drag attributes onto a group to add them, between members to reorder, or onto Not in a group to take them out. The tooltip says what the drop does: Add to Looks, Move to Shipping, Move here
  • Right-click for Add Attribute…, Rename, Duplicate…, Groups, Remove from Group, Delete, Move Up, Move Down, Show in XML, Show Usages, Copy ID and Copy Script Access. A row the file has twice adds Go to Second Definition

Copy Script Access copies how code reads the attribute: product.custom.color for a product, Site.getCurrent().getCustomPreferenceValue('id') for a site preference, System.getPreferences().getCustom().id for an organization preference

Usages

The Usages column counts the places in the project that read each custom attribute, in scripts, ISML and controllers. Click the count, or press Cmd+Alt+F7 / Ctrl+Alt+F7 on the row, to list them with the line that reads it, such as product.custom.color. Show Usages is grey on an attribute nothing reads

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

Delete asks first and says what reads the attribute: Delete packSize from Product? Nothing in the project reads it. An import removes no attribute from an instance, so delete it in Business Manager too

Add an attribute

Add › Attribute… opens New Attribute. Pick the object type and the group, or New group…, then type the ID: the name follows it in words, so careInstructions gives Care instructions

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

The gallery on the left lists the 16 attribute types by family with a sample value. Search types, such as list or date finds them by name, family, sample or script type. The right side shows the type's settings and a live preview: the Business Manager field, notes such as A value per locale, and the lines a script reads it with. An enum offers Add example values. Add Attribute writes the whole definition as one step

TypeSampleScripts read
StringMidnight BlueString
TextHand wash cold. Dry flatString
HTML<p>Runs <b>small</b></p>dw.content.MarkupText
Email[email protected]String
Password••••••••String, stored encrypted
Integer12Number
Number19.99Number
BooleanYesBoolean
Enum of StringsCottondw.value.EnumValue
Enum of Integers24 monthsdw.value.EnumValue
Date2026-10-18Date
Date + Time2026-10-18 09:30Date
Imageimages/badges/new.pngdw.content.MediaFile
Set of Stringssummer, linenString[]
Set of Integers38, 40, 42Number[]
Set of Numbers1.5, 2.25Number[]

The other Add items ask for less: New Attribute Group (ID and display name), Extend System Object Type (a system type such as Profile) and New Custom Object Type (ID, display name, key attribute and type, data scope, replication, retention in days)

Properties

Click a row and the panel under the tree shows its properties, growing if it is folded or small. Its header has the usage count and Show in XML. The sections flow into columns when there is room

SectionSettings
GeneralID, Name, Description, Type and the groups as chips with Add to Group
FlagsLocalizable, Site-specific, Mandatory, Visible, Externally managed, Order required, Externally defined
ValuesFor an enum: Value, Name and Default, then Select multiple and Immutable
ValueThe default, then the settings Business Manager offers for the type, such as Min length, Field length, Regular expression or Unit

A field writes its value on Enter or when you leave it, and Escape restores the file's value. A custom object type shows its storage settings, and several selected attributes share their flags and groups, with New Group… to add a group with them

Groups, types and keys

A group shows its members as a table of Attribute, Name, Type and Usages, in the order Business Manager lists them. Its Add offers New Attribute…, Existing Attributes… and System Attribute…, its arrows move the selected member, and its sort orders the group Sort by ID or Sort by Name

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

A custom object type shows its Storage: Data scope (Site or Organization), Replication and Retention in days, empty keeps the objects. Its key, such as configId, String, links to the key attribute, whose form has the ID and type

Translations

The language button beside Name, Description and Unit opens the translations, such as Name Translations. Add lists the project's locales with the sites that use them, and Other Locale… takes any locale such as de or fr-FR. A badge on the button marks a field that has translations

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

XML and problems

The panel's XML tab is the IDE's editor on the same file. Selecting a row marks its whole element in the XML, and clicking in the XML selects the row there. The problems count in the toolbar opens it with the Problems list, beside the XML when there is room and under it when not

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows
ProblemExample
A repeated definitionProduct defines careInstructions more than once, with First definition and Second definition
A repeated group or listingThe group Looks lists color more than once
A wrong defaultThe default value of isGiftWrappable is no boolean
Schema and syntax errorsChecked against the bundled metadata.xsd

Previous Problem and Next Problem move through them and the places of a duplicate. Go to XML shows the selected problem in the XML, and Delete This Definition (or Group, Listing) deletes the selected place of a duplicate, the others stay

Each place of a duplicate has an arrow in the XML gutter. Its tooltip reads Product defines careInstructions more than once: go to the second definition, line 76, and a click goes there. Problems are fixed in the XML: the editor has no Alt+Enter fix for them

Split view

The split button in the panel's header shows the properties and the XML together: side by side when the panel is 640 px wide or more, the properties over the XML when it is narrower. Selecting a row fills the form and marks its element in the XML, and clicking in the XML selects that row. The button again, or a tab, shows one at a time

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

Clicking the shown tab, or the chevron, folds the panel down to its tabs, and the chevron opens it again under the tree. The editor remembers the layout

Narrow editors

The editor fits beside tool windows such as B2C Metadata. The search narrows first, then the toolbar folds the count, Reset, Not in a group, No usages, the tree buttons and the kind into Filters, whose badge still counts them. The columns drop, and the properties and the XML stack under each other

The Metadata Editor opens site archive metadata as a tree of types, groups and attributes, with a Text tab that keeps the caret on the selected row. Search and filter the attributes, edit display names in place, drag attributes into groups, add one from a gallery of types with a live preview, edit its properties and translations, list where code reads it, and see the properties and the XML side by side, where problems such as a repeated definition are listed and marked. The toolbar and the columns fold as the editor narrows

What the editor writes

  • Each change is one command named for it, such as Add Attribute fabric, so Undo reverts it
  • Elements go where metadata.xsd puts them, and text is escaped
  • Turning a flag off writes false. An import leaves a setting the file doesn't name as it is on the instance
  • A new attribute gets what a Business Manager export writes, such as mandatory-flag false and min-length 0
  • Renaming an attribute renames it in the file's groups too. Code keeps reading the old ID
  • Deleting an attribute or a type doesn't delete it on an instance. Delete it in Business Manager too

License

Editing and usage counts need a license, see Purchase & License. Without one the editor shows The metadata editor needs an IntelliJ SFCC license: the file is shown read-only, and the Text tab still edits the XML

Troubleshooting

ProblemFix
No Metadata Editor tabCheck that the root element is metadata with the namespace above
The XML has no metadata rootUse Fix it in the XML, then check the root element
Usages show … or nothingUsages are counted after indexing finishes, and with a license
An attribute is grey but is usedA read the plugin can't type, such as custom[name] with a variable, isn't counted. Type the value with JSDoc

On this page