Standardizing Product Attribute Values for Any Feed
WooCommerce product attribute values do not always match the terminology or format required by marketplaces, advertising platforms, distributors, or other systems receiving your product feed.
For example, your store may use:
Small
Medium
Large
Extra Largewhile the destination expects:
S
M
L
XLOr your store may use:
Men
Women
Boys
Girls
Unisexwhile the destination expects:
male
female
male
female
unisexDeviking Product Feeds Pro provides two ways to standardize these values without changing the original WooCommerce product data:
- Value Map for direct value-to-value conversions
- Dynamic Attributes for conditional or reusable logic
The same techniques can be used for Size, Gender, Color, Material, Brand-related values, custom product attributes, and other feed fields.
Method 1: Use Value Map for Direct Conversions
When one input value simply needs to become another value, Value Map is usually the simplest solution.
For example:
Small → S
Medium → M
Large → L
Extra Large → XL
Extra Small → XSOpen:
Deviking Feeds → Feeds
Edit the required feed and go to Mapping.
Create or edit the appropriate mapping row.
For example:
Output Field:
size
Source:
Size
Transform:
Value MapThen configure the Value Map:
Small=>S;
Medium=>M;
Large=>L;
Extra Large=>XL;
Extra Small=>XSThe generated feed will now contain the standardized values.
Example: Standardizing Size Values
Suppose your WooCommerce Size attribute contains:
Small
Medium
Large
Extra Large
Extra SmallThe feed destination requires:
S
M
L
XL
XSConfigure:
Output Field:
size
Source:
Size
Transform:
Value MapValue Map:
Small=>S;
Medium=>M;
Large=>L;
Extra Large=>XL;
Extra Small=>XSThe conversion becomes:
| WooCommerce Value | Feed Value |
|---|---|
| Small | S |
| Medium | M |
| Large | L |
| Extra Large | XL |
| Extra Small | XS |
XML Example
WooCommerce may store:
Extra Largewhile the generated XML contains:
<product>
<sku>TS-BLK-XL</sku>
<size>XL</size>
</product>The original WooCommerce attribute remains unchanged.
CSV Example
The same configuration works in CSV:
sku,title,size
TS-BLK-S,"Black T-Shirt",S
TS-BLK-M,"Black T-Shirt",M
TS-BLK-L,"Black T-Shirt",L
TS-BLK-XL,"Black T-Shirt",XLExample: Standardizing Gender Values
The same approach can be used for a Gender attribute.
Suppose WooCommerce contains:
Men
Women
Boys
Girls
Unisexwhile the destination requires:
male
female
unisexConfigure:
Output Field:
gender
Source:
Gender
Transform:
Value MapValue Map:
Men=>male;
Boys=>male;
Women=>female;
Girls=>female;
Unisex=>unisexThe resulting conversion is:
| WooCommerce Value | Feed Value |
|---|---|
| Men | male |
| Boys | male |
| Women | female |
| Girls | female |
| Unisex | unisex |
This works with any feed destination that requires these standardized values.
Example: Standardizing Colors
Your WooCommerce catalog may contain detailed color names such as:
Light Blue
Dark Blue
Jet Black
Snow Whitewhile the destination requires more general values:
Blue
Blue
Black
WhiteUse:
Output Field:
color
Source:
Color
Transform:
Value Mapwith:
Light Blue=>Blue;
Dark Blue=>Blue;
Jet Black=>Black;
Snow White=>WhiteThe generated feed will contain the simplified color terminology.
Example: Standardizing Material Values
Value Map can also normalize material descriptions.
For example:
100% Cotton=>Cotton;
Pure Cotton=>Cotton;
Genuine Leather=>Leather;
Stainless Steel 304=>Stainless SteelA product stored as:
100% Cottoncan therefore be exported as:
Cottonwithout modifying the WooCommerce product.
Using Product Attributes as Sources
The available product attribute sources are generated dynamically from your WooCommerce catalog.
Depending on your store, the Source selector may contain attributes such as:
Size
Color
Material
Brand
Genderas well as other global or supported custom WooCommerce product attributes.
Select the attribute that contains the value you want to export.
Multi-Valued Attributes
A non-variation WooCommerce product can have more than one value assigned to the same attribute.
For example:
Color:
Red
Blue
GreenDeviking Product Feeds lets you control how these multi-valued attributes are handled.
Available behavior includes:
Leave emptyor:
Show all valuesWhen Show all values is enabled, you can define the exact separator.
For example:
Values separator:
| can produce:
Red | Blue | GreenThe spaces and characters in the separator are preserved.
Attributes on Variations
Variation attributes are handled differently from multi-valued parent product attributes.
Consider:
T-Shirt
├── Black / Small
├── Black / Medium
└── White / LargeWhen each variation is exported as a separate feed record, its selected variation value is used automatically when available.
For example:
Black / Small
Size = Smallcan pass through the Value Map:
Small=>Sand generate:
Swhile:
White / Large
Size = Largegenerates:
LThis makes the same mapping suitable for all variations of the product.
Method 2: Use Dynamic Attributes for Conditional Values
Value Map is ideal for direct conversions.
However, sometimes the value you need to export depends on additional conditions.
In that case, use a Dynamic Attribute.
Go to:
Deviking Feeds → Dynamic Attributes
and click:
Add Dynamic Attribute
Enter a name such as:
Normalized Sizeor:
Feed GenderA Dynamic Attribute can contain multiple IF / ELSE rules and can later be selected as a source in feed Mapping.
Example: Size with Dynamic Attributes
Create:
Dynamic Attribute:
Normalized SizeThen add rules:
Rule 1
IF
Size = Small
RESULT
Static value: SRule 2
IF
Size = Medium
RESULT
Static value: MRule 3
IF
Size = Large
RESULT
Static value: LRule 4
IF
Size = Extra Large
RESULT
Static value: XLThen configure the default result.
For example:
ELSE
Source field:
SizeThe result becomes:
Small → S
Medium → M
Large → L
Extra Large → XL
42 → 42
43 → 43Known values are standardized while unmatched values keep their original attribute value.
Example: Gender with Dynamic Attributes
You could also create:
Dynamic Attribute:
Normalized Genderwith:
Rule 1
IF
Gender = Men
RESULT
Static value: maleRule 2
IF
Gender = Boys
RESULT
Static value: maleRule 3
IF
Gender = Women
RESULT
Static value: femaleRule 4
IF
Gender = Girls
RESULT
Static value: femaleand:
ELSE
Static value:
unisexThe Dynamic Attribute can then be mapped to:
Output Field:
gender
Source:
Normalized GenderDynamic Attribute Default Results
When no Dynamic Attribute rule matches, the ELSE / Default Result can:
Return empty valueor:
Return a Static valueor:
Return a Source fieldFor attribute normalization, returning the original source field is particularly useful when only selected values need to be converted.
For example:
Small → S
Medium → M
Large → L
ELSE
→ Original Size valueThis prevents unknown values from being discarded unnecessarily.
Static Value vs Source Field
A Dynamic Attribute rule can return two types of values.
Static Value
Returns the configured text whenever the rule matches.
Example:
IF Size = Extra Large
→ XLSource Field
Returns another value from the current product.
For example:
IF Size Is not empty
→ Source field: SizeThe returned value therefore depends on the current product or variation.
Multiple Conditions
Dynamic Attribute rules can contain several conditions.
Conditions inside a group can use:
ANDor:
ORFor example, a value could depend on both an attribute and another product field.
The first enabled rule whose conditions match returns its result.
Later rules are not evaluated after a match.
Because of this, more specific rules should normally appear before more general ones.
Rule Order
Suppose you configure:
Rule 1
Size = Extra Large
→ XL
Rule 2
Size Is not empty
→ Source field: SizeA product with:
Size = Extra Largematches Rule 1 first and returns:
XLIt never reaches Rule 2.
This makes rule order important whenever conditions overlap.
Reuse Dynamic Attributes Across Feeds
Dynamic Attributes are reusable sources.
For example, once you create:
Normalized Sizeyou can use it in several feeds:
Marketplace XML
Advertising CSV
Distributor Feed
Custom Product ExportThe conversion logic is maintained in one place instead of being recreated in every feed.
Value Map or Dynamic Attribute?
For a simple conversion such as:
Small → S
Medium → M
Large → Luse:
Value Map
It is shorter and easier to configure.
For logic such as:
IF one or more conditions match
→ return one value
ELSE
→ return another source or valueuse:
Dynamic Attributes
A practical rule is:
Direct value conversion
→ Value Map
Conditional reusable logic
→ Dynamic AttributeUsing the Result in Mapping
Once the value is configured, map it to whatever field name the receiving system expects.
For example:
Output Field:
size
Source:
Normalized Sizeor:
Output Field:
gender
Source:
Normalized GenderThe output field is not tied to any particular marketplace.
You can use the naming and structure required by the destination receiving the feed.
Mapping Resolution
When a normal Mapping row is generated, Deviking Product Feeds processes the value in this order:
Source
→ Fallback Source if the primary value is empty
→ Transform
→ Prefix / SuffixThis means a Value Map is applied to the resolved Mapping source before any configured Prefix or Suffix is added.
Preview the Converted Values
After configuring your attribute conversion:
- Save the Dynamic Attribute if you created one.
- Open the required feed.
- Configure the appropriate Mapping source.
- Save the feed.
- Run Preview.
- Check several different attribute values.
- Check variations if they are exported.
- Check values that are not included in your conversion rules.
- Run Validate Feed.
- Use Save & Generate when the result is correct.
Recommended Approach
For straightforward attribute normalization:
Source:
Size
Transform:
Value Mapwith:
Small=>S;
Medium=>M;
Large=>L;
Extra Large=>XLFor conditional or reusable logic:
Dynamic Attribute:
Normalized Sizewith:
IF Size = Small
→ S
IF Size = Medium
→ M
IF Size = Large
→ L
IF Size = Extra Large
→ XL
ELSE
→ Source field: SizeThe same workflow can be used for Size, Gender, Color, Material and other WooCommerce attributes, allowing every feed to use the terminology required by its destination without changing the original WooCommerce catalog.