Skip to content

Commit e6cec0a

Browse files
authored
fix(skills): correct value-definition element order in metadata skills (#485)
The B2C metadata.xsd requires <display> before <value> inside each <value-definition>. The b2c-metadata and b2c-site-import-export skill examples had them reversed, causing enum/set attribute imports to fail site-archive validation (cvc-complex-type.2.4.d). Reordered all examples and added an explicit note documenting the schema requirement.
1 parent 80e63fc commit e6cec0a

5 files changed

Lines changed: 40 additions & 33 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@salesforce/b2c-agent-plugins': patch
3+
---
4+
5+
Fix `value-definition` element order in the b2c-metadata and b2c-site-import-export skills. The B2C `metadata.xsd` requires `<display>` to appear before `<value>` inside each `<value-definition>`; the skill examples had them reversed, which caused enum/set attribute imports to fail site-archive validation with `cvc-complex-type.2.4.d`. Examples now use the correct order and call out the requirement.

skills/b2c-cli/skills/b2c-site-import-export/references/METADATA-XML.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,20 @@ For service configurations (HTTP services, credentials, profiles), see the `b2c:
5858
<mandatory-flag>false</mandatory-flag>
5959
<value-definitions>
6060
<value-definition default="true">
61-
<value>pending</value>
6261
<display xml:lang="x-default">Pending</display>
62+
<value>pending</value>
6363
</value-definition>
6464
<value-definition>
65-
<value>processing</value>
6665
<display xml:lang="x-default">Processing</display>
66+
<value>processing</value>
6767
</value-definition>
6868
<value-definition>
69-
<value>shipped</value>
7069
<display xml:lang="x-default">Shipped</display>
70+
<value>shipped</value>
7171
</value-definition>
7272
<value-definition>
73-
<value>delivered</value>
7473
<display xml:lang="x-default">Delivered</display>
74+
<value>delivered</value>
7575
</value-definition>
7676
</value-definitions>
7777
</attribute-definition>

skills/b2c/skills/b2c-metadata/SKILL.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ Add custom attributes to existing system objects.
9494

9595
### Enum Value Definitions
9696

97-
Enum types (`enum-of-string`, `enum-of-int`, `set-of-string`, `set-of-int`) require `value-definitions` with **value/display pairs**:
97+
Enum types (`enum-of-string`, `enum-of-int`, `set-of-string`, `set-of-int`) require `value-definitions` with **display/value pairs**:
98+
99+
> **Element order matters.** Inside each `<value-definition>`, the `<display>` element must come **before** `<value>`. The `metadata.xsd` schema enforces this strict ordering — putting `<value>` first fails site import validation with `cvc-complex-type.2.4.d: Invalid content was found starting with element 'display'`.
98100
99101
```xml
100102
<attribute-definition attribute-id="warrantyType">
@@ -103,25 +105,25 @@ Enum types (`enum-of-string`, `enum-of-int`, `set-of-string`, `set-of-int`) requ
103105
<mandatory-flag>false</mandatory-flag>
104106
<value-definitions>
105107
<value-definition>
106-
<value>none</value>
107108
<display xml:lang="x-default">No Warranty</display>
109+
<value>none</value>
108110
</value-definition>
109111
<value-definition>
110-
<value>limited</value>
111112
<display xml:lang="x-default">Limited Warranty</display>
113+
<value>limited</value>
112114
</value-definition>
113115
<value-definition>
114-
<value>full</value>
115116
<display xml:lang="x-default">Full Warranty</display>
117+
<value>full</value>
116118
</value-definition>
117119
</value-definitions>
118120
</attribute-definition>
119121
```
120122

121123
| Element | Purpose |
122124
|---------|---------|
125+
| `<display>` | Human-readable label shown in Business Manager (must appear first) |
123126
| `<value>` | The stored/API value (use lowercase, no spaces) |
124-
| `<display>` | Human-readable label shown in Business Manager |
125127

126128
## Product Custom Attribute Example
127129

@@ -145,16 +147,16 @@ Enum types (`enum-of-string`, `enum-of-int`, `set-of-string`, `set-of-int`) requ
145147
<mandatory-flag>false</mandatory-flag>
146148
<value-definitions>
147149
<value-definition>
148-
<value>new</value>
149150
<display xml:lang="x-default">New</display>
151+
<value>new</value>
150152
</value-definition>
151153
<value-definition>
152-
<value>refurbished</value>
153154
<display xml:lang="x-default">Refurbished</display>
155+
<value>refurbished</value>
154156
</value-definition>
155157
<value-definition>
156-
<value>used</value>
157158
<display xml:lang="x-default">Used</display>
159+
<value>used</value>
158160
</value-definition>
159161
</value-definitions>
160162
</attribute-definition>
@@ -174,12 +176,12 @@ Enum types (`enum-of-string`, `enum-of-int`, `set-of-string`, `set-of-int`) requ
174176
<mandatory-flag>false</mandatory-flag>
175177
<value-definitions>
176178
<value-definition>
177-
<value>waterproof</value>
178179
<display xml:lang="x-default">Waterproof</display>
180+
<value>waterproof</value>
179181
</value-definition>
180182
<value-definition>
181-
<value>recyclable</value>
182183
<display xml:lang="x-default">Recyclable</display>
184+
<value>recyclable</value>
183185
</value-definition>
184186
</value-definitions>
185187
</attribute-definition>

skills/b2c/skills/b2c-metadata/references/SYSTEM-OBJECTS.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ Placed orders.
7070
<type>enum-of-string</type>
7171
<value-definitions>
7272
<value-definition>
73-
<value>pending</value>
7473
<display xml:lang="x-default">Pending</display>
74+
<value>pending</value>
7575
</value-definition>
7676
<value-definition>
77-
<value>exported</value>
7877
<display xml:lang="x-default">Exported</display>
78+
<value>exported</value>
7979
</value-definition>
8080
</value-definitions>
8181
</attribute-definition>
@@ -131,16 +131,16 @@ Customer profiles (registered customers).
131131
<type>enum-of-string</type>
132132
<value-definitions>
133133
<value-definition>
134-
<value>email</value>
135134
<display xml:lang="x-default">Email</display>
135+
<value>email</value>
136136
</value-definition>
137137
<value-definition>
138-
<value>phone</value>
139138
<display xml:lang="x-default">Phone</display>
139+
<value>phone</value>
140140
</value-definition>
141141
<value-definition>
142-
<value>sms</value>
143142
<display xml:lang="x-default">SMS</display>
143+
<value>sms</value>
144144
</value-definition>
145145
</value-definitions>
146146
</attribute-definition>
@@ -160,12 +160,12 @@ Customer address book entries.
160160
<type>enum-of-string</type>
161161
<value-definitions>
162162
<value-definition>
163-
<value>residential</value>
164163
<display xml:lang="x-default">Residential</display>
164+
<value>residential</value>
165165
</value-definition>
166166
<value-definition>
167-
<value>commercial</value>
168167
<display xml:lang="x-default">Commercial</display>
168+
<value>commercial</value>
169169
</value-definition>
170170
</value-definitions>
171171
</attribute-definition>

skills/b2c/skills/b2c-metadata/references/XML-EXAMPLES.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,16 @@ b2c docs schema --list
6262
<mandatory-flag>false</mandatory-flag>
6363
<value-definitions>
6464
<value-definition>
65-
<value>none</value>
6665
<display xml:lang="x-default">No Warranty</display>
66+
<value>none</value>
6767
</value-definition>
6868
<value-definition default="true">
69-
<value>standard</value>
7069
<display xml:lang="x-default">Standard Warranty</display>
70+
<value>standard</value>
7171
</value-definition>
7272
<value-definition>
73-
<value>extended</value>
7473
<display xml:lang="x-default">Extended Warranty</display>
74+
<value>extended</value>
7575
</value-definition>
7676
</value-definitions>
7777
</attribute-definition>
@@ -99,16 +99,16 @@ b2c docs schema --list
9999
<mandatory-flag>false</mandatory-flag>
100100
<value-definitions>
101101
<value-definition>
102-
<value>energy-star</value>
103102
<display xml:lang="x-default">Energy Star</display>
103+
<value>energy-star</value>
104104
</value-definition>
105105
<value-definition>
106-
<value>ul-listed</value>
107106
<display xml:lang="x-default">UL Listed</display>
107+
<value>ul-listed</value>
108108
</value-definition>
109109
<value-definition>
110-
<value>fda-approved</value>
111110
<display xml:lang="x-default">FDA Approved</display>
111+
<value>fda-approved</value>
112112
</value-definition>
113113
</value-definitions>
114114
</attribute-definition>
@@ -154,16 +154,16 @@ b2c docs schema --list
154154
<type>enum-of-string</type>
155155
<value-definitions>
156156
<value-definition default="true">
157-
<value>pending</value>
158157
<display xml:lang="x-default">Pending</display>
158+
<value>pending</value>
159159
</value-definition>
160160
<value-definition>
161-
<value>synced</value>
162161
<display xml:lang="x-default">Synced</display>
162+
<value>synced</value>
163163
</value-definition>
164164
<value-definition>
165-
<value>failed</value>
166165
<display xml:lang="x-default">Failed</display>
166+
<value>failed</value>
167167
</value-definition>
168168
</value-definitions>
169169
</attribute-definition>
@@ -230,16 +230,16 @@ b2c docs schema --list
230230
<type>set-of-string</type>
231231
<value-definitions>
232232
<value-definition>
233-
<value>promotions</value>
234233
<display xml:lang="x-default">Promotions</display>
234+
<value>promotions</value>
235235
</value-definition>
236236
<value-definition>
237-
<value>new-arrivals</value>
238237
<display xml:lang="x-default">New Arrivals</display>
238+
<value>new-arrivals</value>
239239
</value-definition>
240240
<value-definition>
241-
<value>tips</value>
242241
<display xml:lang="x-default">Tips & Tricks</display>
242+
<value>tips</value>
243243
</value-definition>
244244
</value-definitions>
245245
</attribute-definition>

0 commit comments

Comments
 (0)