Customizing Availability Values in Product Feeds
WooCommerce stock status values do not always match the terminology required by the system receiving your product feed.
WooCommerce uses stock status values such as:
instock
outofstock
onbackorderwhile a feed destination may require values such as:
in stock
out of stock
available for orderor:
available
unavailable
backorderWith Deviking Product Feeds Pro, you can convert WooCommerce stock status into the exact availability terminology required by each feed without changing the product’s actual WooCommerce stock status.
For straightforward conversions, use Value Map. For more complex availability logic that depends on additional product conditions, use a Dynamic Attribute.
Method 1: Convert Stock Status with Value Map
When each WooCommerce stock status simply needs to become another value, Value Map is the simplest option.
Open:
Deviking Feeds → Feeds
Edit the required feed and go to Mapping.
Create or edit the field that will contain the availability value.
For example:
Output Field:
availability
Source:
Stock Status
Transform:
Value MapThen enter the required conversions:
instock=>in stock;
outofstock=>out of stock;
onbackorder=>available for orderThe generated values become:
| WooCommerce Stock Status | Feed Value |
|---|---|
instock | in stock |
outofstock | out of stock |
onbackorder | available for order |
The WooCommerce stock status itself is not modified.
Use Any Required Availability Terminology
The output values are configurable.
For example, another destination may expect:
instock=>available;
outofstock=>unavailable;
onbackorder=>backorderor:
instock=>yes;
outofstock=>no;
onbackorder=>yesThe important part is that the values on the left are the WooCommerce source values, while the values on the right are the values written to the feed.
The general syntax is:
source value=>output valueMultiple mappings can be separated with semicolons or new lines.
XML Example
With:
instock=>available;
outofstock=>unavailable;
onbackorder=>backordera product that is currently in stock can generate:
<product>
<sku>ABC-100</sku>
<availability>available</availability>
</product>An unavailable product can generate:
<product>
<sku>ABC-101</sku>
<availability>unavailable</availability>
</product>and a product on backorder can generate:
<product>
<sku>ABC-102</sku>
<availability>backorder</availability>
</product>CSV Example
The same Value Map configuration works in CSV feeds:
sku,title,availability
ABC-100,"Product A",available
ABC-101,"Product B",unavailable
ABC-102,"Product C",backorderThe conversion is independent of whether the feed uses XML or CSV.
Different Availability Values for Different Feeds
Each feed has its own Mapping configuration.
This means the same WooCommerce stock status can be exported differently depending on the destination.
For example:
Feed A
instock=>in stock;
outofstock=>out of stock;
onbackorder=>available for orderwhile another feed can use:
Feed B
instock=>available;
outofstock=>unavailable;
onbackorder=>backorderBoth feeds use the same WooCommerce product data, but each produces the vocabulary expected by its destination.
Method 2: Use a Dynamic Attribute
Use a Dynamic Attribute when the availability output depends on more than a simple one-to-one stock status conversion.
Go to:
Deviking Feeds → Dynamic Attributes
and click:
Add Dynamic Attribute
Enter a descriptive name such as:
Feed AvailabilityYou can then create IF / ELSE rules using WooCommerce product data.
Basic Stock Status Dynamic Attribute
For example:
Rule 1
IF
Stock Status = instock
RESULT
Static value:
availableAdd another rule:
Rule 2
IF
Stock Status = onbackorder
RESULT
Static value:
backorderThen configure the default result:
ELSE
Static value:
unavailableThe resulting logic is:
instock
→ available
onbackorder
→ backorder
everything else
→ unavailableAdd the Dynamic Attribute to a Feed
After saving the Dynamic Attribute, open:
Deviking Feeds → Feeds
Edit the feed and go to Mapping.
Configure the availability field:
Output Field:
availability
Source:
Feed AvailabilityThe Dynamic Attribute is evaluated for every exported product record.
Use Additional Conditions
A Dynamic Attribute becomes useful when stock status is only one part of the availability rule.
For example, you may want products with very low stock to use a different feed value.
A rule could be:
Rule 1
IF
Stock Status = instock
AND
Stock Quantity <= 5
RESULT
Static value:
limited availabilityfollowed by:
Rule 2
IF
Stock Status = instock
RESULT
Static value:
availableand:
Rule 3
IF
Stock Status = onbackorder
RESULT
Static value:
backorderwith:
ELSE
→ unavailableThe result could be:
In stock, quantity 3
→ limited availability
In stock, quantity 25
→ available
On backorder
→ backorder
Out of stock
→ unavailableRule Order Matters
Dynamic Attribute rules are evaluated from top to bottom.
The first enabled rule whose conditions match returns its result.
For example:
Rule 1
Stock Status = instock
AND
Stock Quantity <= 5
→ limited availabilitymust appear before:
Rule 2
Stock Status = instock
→ availableOtherwise, every in-stock product would match the broader second condition before the more specific low-stock rule could be used.
When conditions overlap, place the more specific rules first.
Stock Quantity Conditions
The built-in Stock Quantity source can also be used in Dynamic Attribute conditions.
For example:
Stock Quantity <= 0Stock Quantity <= 5Stock Quantity > 5Numeric comparison operators include:
>
>=
<
<=This lets you create feed-specific stock classifications such as:
0 or less
→ unavailable
1–5
→ low stock
more than 5
→ availableWhen the required output depends only on WooCommerce’s stock state, however, using Stock Status is usually simpler.
Example: Detailed Availability Labels
You can create a Dynamic Attribute such as:
Dynamic Attribute:
Availability Labelwith:
Rule 1
IF
Stock Status = instock
AND
Stock Quantity <= 5
→ Static value: Limited stockRule 2
IF
Stock Status = instock
→ Static value: In stockRule 3
IF
Stock Status = onbackorder
→ Static value: Available on backorderELSE
→ Static value: Out of stockA generated feed could then contain:
<availability>Limited stock</availability>or:
<availability>Available on backorder</availability>depending on the current product data.
Use a Source Field as the Result
A Dynamic Attribute rule does not have to return fixed text.
The result can also be another Source field.
For example:
IF
Stock Status = instock
RESULT
Source field:
Stock QuantityThis can be useful when a destination expects one type of information for one condition and another value for a different condition.
For most availability fields, however, a Static value is easier to control.
Configure the Default Result
If none of the Dynamic Attribute rules match, the ELSE / Default Result can:
Return empty valueReturn a Static valueor:
Return a Source fieldFor availability logic, a Static default is often useful.
For example:
ELSE
→ Static value: unavailableThis ensures that any product not handled by an earlier rule still receives a predictable output value.
Variations and Stock Status
When variations are exported as individual feed records, stock-related sources are resolved for the current variation.
For example:
T-Shirt
├── Black / Small — instock
├── Black / Medium — outofstock
└── White / Large — onbackorderWith:
instock=>available;
outofstock=>unavailable;
onbackorder=>backorderthe generated variation records can contain:
Black / Small
→ availableBlack / Medium
→ unavailableWhite / Large
→ backorderThis allows each variation to carry its own availability value in the feed.
Changing Availability Values Is Different from Filtering Products
Changing the availability value does not remove products from the feed.
For example:
outofstock=>unavailablemeans that an out-of-stock product can still appear in the feed with:
availability = unavailableIf the product should not appear in the feed at all, use a product filter instead.
For example, an Exclude rule can remove products where:
Stock Status = outofstockThese are two separate operations:
Value Map / Dynamic Attribute
→ Changes the exported valueFilter
→ Determines whether the product is exportedValue Map or Dynamic Attribute?
Use Value Map when the requirement is a direct conversion:
instock → available
outofstock → unavailable
onbackorder → backorderConfigure:
Source:
Stock Status
Transform:
Value MapUse a Dynamic Attribute when availability depends on multiple conditions:
IF Stock Status = instock
AND Stock Quantity <= 5
→ limited availability
IF Stock Status = instock
→ available
IF Stock Status = onbackorder
→ backorder
ELSE
→ unavailableA practical rule is:
Direct stock-status conversion
→ Value Map
Conditional availability logic
→ Dynamic AttributePreview the Result
After configuring the availability conversion:
- Save the Dynamic Attribute if you created one.
- Open the required feed.
- Configure the availability Mapping row.
- Save the feed.
- Run Preview.
- Check an
instockproduct. - Check an
outofstockproduct. - Check an
onbackorderproduct if available. - Check several variations if the feed exports variations.
- Run Validate Feed.
- Use Save & Generate when the output is correct.
Recommended Configuration
For most feeds that only require different availability terminology, use:
Output Field:
availability
Source:
Stock Status
Transform:
Value Mapwith:
instock=>in stock;
outofstock=>out of stock;
onbackorder=>available for orderUse Dynamic Attributes only when the resulting availability value needs additional conditions such as stock quantity or other product data.
This keeps the configuration simple while allowing each feed to export exactly the stock and availability terminology required by its destination.