Knowledge Base
Deviking Product feeds Pro

Building and Formatting CSV Product Feeds

Deviking Product Feeds Pro lets you create custom CSV product feeds using data directly from your WooCommerce catalog.

You can control the columns included in the file, their order, the source of each value, formatting rules, delimiters and other CSV-specific options.

This makes CSV feeds suitable for marketplaces, advertising platforms, inventory systems and custom integrations.


Create a CSV Feed

From your WordPress dashboard, go to:

Deviking Feeds → Add Feed

Create a new feed and select:

CSV

You can either start with Custom CSV or apply one of the available CSV-based marketplace templates.

When using a ready-made template, click:

Apply Template

to load the predefined column structure and initial Attribute Mapping.

You can then adjust the mapping to match your WooCommerce catalog.


CSV Structure

A CSV file stores each product as a separate row and each product field as a column.

For example:

 
id,title,sku,price,availability
123,"Running Shoes",SHOE-123,79.90,"in stock"
124,"Training Shoes",SHOE-124,59.90,"out of stock"
 

In this example:

 
id
title
sku
price
availability
 

are the CSV columns.

Each row in Attribute Mapping defines one of these columns.


Configure the Delimiter

The Delimiter determines which character separates one column from another.

A standard CSV file normally uses a comma:

 
,
 

which produces:

 
123,"Example Product",29.90
 

Some destinations may require another delimiter, such as a semicolon:

 
;
 

resulting in:

 
123;"Example Product";29.90
 

Always use the delimiter specified by the system receiving the feed.


Configure the Enclosure

The Enclosure determines how text values are wrapped when necessary.

The most common enclosure character is:

 
"
 

For example:

 
123,"Premium Running Shoes",79.90
 

Enclosures are particularly important when a value itself contains the configured delimiter.

For example:

 
Lightweight, breathable running shoe
 

can safely be written as:

 
"Lightweight, breathable running shoe"
 

without creating an additional CSV column.


Header Row

Enable the CSV header row when the destination expects the first line of the file to contain the column names.

For example:

 
id,title,price,sku
123,"Example Product",29.90,ABC-123
124,"Another Product",39.90,ABC-124
 

Here:

 
id,title,price,sku
 

is the header row.

The column names are taken from the output fields configured in Attribute Mapping.


UTF-8 BOM

Some spreadsheet applications or external systems may require a UTF-8 BOM to correctly recognize the file encoding.

Enable this option when the receiving system specifically requires it or when characters such as accented or non-Latin text are not being detected correctly.

For most modern feed systems, standard UTF-8 output is sufficient.


Configure CSV Columns

The Attribute Mapping section controls which columns appear in the generated CSV file.

A basic configuration might look like:

Output FieldSource
idProduct ID
titleProduct Name
descriptionDescription
skuSKU
priceCurrent Price
linkProduct URL
image_linkFeatured Image
availabilityStock Status

This could generate:

 
id,title,description,sku,price,link,image_link,availability
123,"Example Product","Product description",ABC-123,29.90,"https://example.com/product/example-product/","https://example.com/product.jpg","instock"
 

Add a Column

Add a new row to Attribute Mapping whenever you need another CSV column.

For example:

 
Output Field: brand
Source: Attribute → Brand
 

adds a column such as:

 
brand
Example Brand
 

You can add as many mapping rows as required by the destination.


Reorder Columns

The order of the mapping rows determines the order of the columns in the generated CSV file.

For example:

 
id
title
price
brand
 

generates:

 
id,title,price,brand
 

If the destination requires a specific column order, rearrange the mapping rows before generating the feed.


Rename Output Columns

The Output Field does not need to use the same name as the WooCommerce source.

For example:

 
Output Field: product_name
Source: Product Name
 

generates:

 
product_name
"Example Product"
 

while:

 
Output Field: item_price
Source: Current Price
 

generates:

 
item_price
29.90
 

This allows the feed to follow the exact field names required by the destination without changing anything in WooCommerce.


Source

The Source determines where the value for each CSV column comes from.

Sources can include WooCommerce information such as:

  • Product ID and SKU
  • Product Name
  • Description and Short Description
  • Prices
  • Stock information
  • Product URL
  • Images
  • Categories
  • Product attributes
  • Taxonomies
  • Custom fields / post meta
  • Parent-product values
  • Static values

The original WooCommerce product data is not modified.


Static Values

You can also create a column containing the same value for every exported product.

For example:

 
Output Field: condition
Source: Static Value
Value: new
 

produces:

 
condition
new
new
new
 

This is useful when a destination requires a mandatory field that has the same value throughout the catalog.


Fallback Source

A Fallback Source provides an alternative value when the primary source is empty.

For example:

 
Source: Description
Fallback: Short Description
 

If a product does not have a full description, the short description is exported instead.

Another example:

 
Source: SKU
Fallback: Product ID
 

This helps reduce missing values without requiring separate rules for each product.


Skip Empty Values

Use Skip if empty when a mapping should not output a value if no usable source is available.

For CSV feeds, the corresponding column still remains part of the file structure, but the product’s value for that column can remain empty.

For example:

 
id,title,brand
123,"Product A","Brand A"
124,"Product B",
 

Prefix and Suffix

Prefix and Suffix allow you to add content around the original source value.

For example:

 
Source value: 2.5
Suffix: kg
 

can produce:

 
2.5 kg
 

Another example:

 
Source value: 12345
Prefix: SKU-
 

produces:

 
SKU-12345
 

These changes affect only the feed output.


Dynamic Prefix and Suffix

Product Feeds Pro can also use dynamic source values inside Prefix and Suffix fields.

This makes it possible to combine several pieces of WooCommerce information into a single CSV value.

Dynamic values use source placeholders such as:

 
{{source:...}}
 

The placeholder is resolved separately for every exported product.


Transform Column Values

Transforms allow you to modify WooCommerce values before they are written to the CSV file.

Available transformations include options such as:

  • Trim
  • Strip HTML
  • Preserve HTML
  • Lowercase
  • Uppercase
  • Limit characters
  • Replace text
  • Number Format
  • Value Map

Transforms apply only to the generated feed and do not modify the product stored in WooCommerce.


Strip HTML

Descriptions and other WooCommerce fields may contain HTML.

For example:

 
<p>Premium <strong>running shoes</strong>.</p>
 

Using Strip HTML can output:

 
Premium running shoes.
 

This is useful when the receiving platform expects plain text.


Preserve HTML

When the destination accepts HTML content, use Preserve HTML instead.

This allows supported markup to remain in the exported value rather than being removed during processing.

Always check whether the receiving platform accepts HTML before enabling this behavior.


Number Format

Use Number Format when the destination requires numeric values in a specific format.

For example, a price can be normalized to:

 
29.90
 

instead of an inconsistent representation.

This is useful for price, cost and other numeric fields.


Value Map

Value Map lets you translate WooCommerce values into the terminology required by another system.

For example:

 
WooCommerce      Feed
--------------------------
instock       →  in stock
outofstock    →  out of stock
onbackorder   →  preorder
 

The original WooCommerce stock status remains unchanged.

Only the CSV output is transformed.


Character Limits

Some platforms impose maximum lengths on fields such as product titles or descriptions.

Use the character limit transformation when a value must not exceed a specified length.

For example:

 
Maximum length: 150
 

ensures that the exported value does not exceed 150 characters.


Product Variations

CSV feeds can include product variations according to the feed’s Product Scope.

You can configure the feed to export:

  • products and variations;
  • parent products only;
  • variations only.

When variations are exported separately, every variation becomes its own CSV row.

For example:

 
sku,title,color,size,price
TSHIRT-BLK-S,"T-Shirt","Black","Small",24.90
TSHIRT-BLK-M,"T-Shirt","Black","Medium",24.90
TSHIRT-WHT-S,"T-Shirt","White","Small",24.90
 

Variation-specific sources can provide values such as SKU, price, stock and attributes for each variation.


Preview Before Generating

Use Preview before generating the complete feed.

Preview allows you to verify:

  • column names;
  • column order;
  • delimiter;
  • mapped product values;
  • transformations;
  • fallback values;
  • variation output.

This is especially useful when working with strict marketplace specifications.


Save and Generate

When your CSV configuration is ready, you can use:

Save Feed

to save the configuration without rebuilding the file.

Use:

Generate Feed

to generate the CSV using the last saved configuration.

Or use:

Save & Generate

to save your current changes and immediately create a new version of the feed.


Open the Generated CSV

After generation, click:

Open Feed

to access the generated file.

The resulting feed can then be supplied to a marketplace or external service using its feed URL.

A simplified final file may look like:

 
id,title,sku,price,availability
101,"Running Shoes",RUN-101,79.90,"in stock"
102,"Training Shoes",TRN-102,64.90,"in stock"
103,"Walking Shoes",WLK-103,54.90,"out of stock"
 

Recommended Workflow

For a new CSV feed:

Create Feed → Select CSV → Apply Template or Build Mapping → Configure CSV Settings → Preview → Save & Generate → Open Feed

When using a marketplace template, always review the mapped sources before generating the final file. A template defines the expected output structure, but your WooCommerce store may use different attributes or custom fields for values such as brand, GTIN, MPN or other channel-specific data.