Skip to main content
Content Logic lets you define reusable variables, computed formulas, and conditional content blocks that automatically generate and format your product content. Instead of writing the same patterns over and over, you create logic rules once and apply them across your entire catalog.
Content Logic is currently in Beta. You can access it from Settings > Content Logic after selecting a project.

Why use Content Logic?

Consistency at Scale

Define content patterns once and apply them to hundreds or thousands of products automatically.

Dynamic Content

Use formulas and conditions to generate content that adapts based on product attributes, brand, or category.

Channel Optimization

Transform content for different sales channels — truncate for marketplaces, format for your webshop, strip HTML for feeds.

Reduce Manual Work

Eliminate repetitive copy-paste work by letting variables and conditions handle content generation.

Variable syntax

All variables use the {{scope.key}} syntax. Type {{ in any formula-enabled field to open the autocomplete dropdown and browse available variables.
{{product.name}}            → resolves to the product's name
{{global.company_name}}     → resolves to your company name
{{brand.tagline}}           → resolves to the brand's tagline
{{category.material}}       → resolves to the category's material
{{current.year}}            → resolves to the current year
{{channel.description_short}} → resolves to the transformed description
Variables are resolved automatically when content is processed — on export, in AI prompts, in bulk actions, and anywhere else WISEPIM generates content.

Variable scopes

Content Logic organizes variables into seven tabs, each serving a different purpose:
TabSyntaxPurpose
Defaults{{product.*}}, {{current.*}}Built-in variables that resolve automatically from product data
Global{{global.*}}Shared values that stay the same across all products
Brands{{brand.*}}Values that differ per brand / product family
Categories{{category.*}}Values that differ per category
Products{{product.*}} (custom)Computed variables using formulas on product fields
Channels{{channel.*}}Content transformations for specific sales channels
Conditional{{if key}}Different content based on product data conditions
Each tab shows a count badge when it contains variables, so you can see which scopes are in use at a glance.
Content Logic requires your project to have product families, categories, and product attributes configured. Brand variables map to your product families, and category variables map to your categories.

Default variables

View examples and use cases → The Defaults tab is a read-only reference of every built-in variable available to you. These resolve automatically — you don’t need to create them.

Date & Time

VariableExample value
{{current.year}}2026
{{current.month}}February
{{current.month_number}}02
{{current.week}}8
{{current.day}}17
{{current.day_name}}Tuesday
{{current.quarter}}Q1
{{current.season}}Winter
{{current.date}}2026-02-17

Product Identity

VariableDescription
{{product.sku}}Stock Keeping Unit
{{product.ean}}European Article Number (barcode)
{{product.upc}}Universal Product Code (12-digit)
{{product.mpn}}Manufacturer Part Number
{{product.brand}}Brand name
{{product.supplier}}Supplier name
{{product.family}}Product family
{{product.category}}Primary category
{{product.product_type}}Simple, Configurable, Virtual, Bundle, Grouped

Product Content

VariableDescription
{{product.name}}Product name
{{product.description}}Full description
{{product.short_description}}Short description
{{product.meta_title}}SEO title
{{product.meta_description}}SEO description
{{product.meta_keywords}}SEO keywords
{{product.main_image}}Main image URL

Pricing

VariableDescription
{{product.price}}Current selling price
{{product.special_price}}Promotional price
{{product.cost}}Purchase / cost price
{{product.savings}}Price minus special price
{{product.savings_percent}}Discount percentage
{{product.margin}}Price minus cost
{{product.margin_percent}}Margin as percentage of price

Physical Properties

VariableDescription
{{product.weight}}Weight value
{{product.weight_unit}}g, kg, oz, or lb
{{product.length}}, {{product.width}}, {{product.height}}Dimension values
{{product.dimension_unit}}mm, cm, m, in, or ft

Inventory

VariableDescription
{{product.stock_quantity}}Current stock level
{{product.stock_status}}in_stock, out_of_stock, or on_backorder
{{product.low_stock_threshold}}Low stock alert threshold

Shipping & Customs

VariableDescription
{{product.hs_code}}Harmonized System code
{{product.country_of_origin}}ISO country code

Status & Scores

VariableDescription
{{product.status}}active, inactive, pending, or archived
{{product.completion_score}}Data completeness percentage
{{product.quality_score}}Overall quality score

Store Info

VariableDescription
{{global.name}}Store / company name
{{global.url}}Website URL
{{global.currency}}Currency symbol
{{global.currency_code}}ISO currency code
{{global.locale}}Locale setting
Your custom product attributes also appear in the Defaults tab, referenced as {{attribute.your_attribute_code}}.
Browse the Defaults tab to see what product data is available before creating your own custom variables. You might already have what you need.

Global variables

View examples and use cases → Global variables are key-value pairs that stay the same across all products. Use them for company-wide values you reference often.
1

Open the Global tab

Go to Settings > Content Logic and click the Global tab.
2

Add a variable

Click Add Variable. Enter a key (alphanumeric and underscores only) and a value. The value field supports formula autocomplete — type {{ to reference other variables.
3

Use it in your content

Reference it as {{global.your_key}} anywhere variables are supported.

Common global variables

KeyExample valueUse case
company_nameACME Industrial BVProduct descriptions, legal text
website_urlshop.example.comCTAs and links
support_emailsupport@example.comContact information
return_policy30-day return policy, no questions asked.Product pages, descriptions
shipping_promiseFree shipping on orders over €50.Promotional content
warranty_text2-year manufacturer warranty included.Product specs
lead_time_textShips within 3-5 business days.B2B ordering info
moq_default1Default minimum order quantity
compliance_generalAll products comply with EU regulations.Legal/compliance footers
Global variables can reference other variables in their value. For example, your return_policy variable could include {{global.company_name}} to dynamically insert the company name.

Brand variables

View examples and use cases → Brand variables let you define a schema of fields and fill in different values per brand. They map to your product families — each product family is a brand. This is ideal when different brands need different messaging, compliance statements, or specifications.
1

Define the schema

On the Brands tab, create fields for the data you want per brand. Each field has a key, label, and type (text, long text, or URL).
2

Fill in values per brand

Select a brand from the dropdown and fill in the fields. A progress indicator shows how many fields are completed (e.g., “3/5 filled”).
3

Reference in content

Use {{brand.your_key}} in product content. WISEPIM resolves it based on each product’s brand.

Field types

TypeInputUse case
TextSingle lineTaglines, short values
Long textMulti-line textareaOrigin stories, compliance text, descriptions
URLURL input with validationBrand websites, logo URLs

Example schema

KeyLabelTypeBrand A valueBrand B value
taglineTaglineTextInnovation for LifeBuilt to Last
origin_storyOrigin StoryLong textFounded in 1985 in Munich…Family-owned since 1962…
compliance_textComplianceLong textISO 9001:2015 certified. REACH compliant.CE marked. RoHS compliant. UL listed.
websiteWebsiteURLhttps://brand-a.comhttps://brand-b.com
moqMin. Order QtyText50100
When content is generated, a product from Brand A gets “Innovation for Life” for {{brand.tagline}}, while a product from Brand B gets “Built to Last”.

Category variables

View examples and use cases → Category variables work the same way as brand variables but are scoped to product categories. Define a schema, then fill in values per category.

Example schema

KeyLabelCategory: FastenersCategory: Electrical
materialMaterialStainless Steel AISI 304Copper / PVC
care_instructionsCareStore in dry conditionsKeep away from moisture
short_introShort IntroHigh-grade fasteners for structural applications.Electrical components for industrial wiring.
size_guide_urlSize Guide/guides/fastener-sizes/guides/wire-gauges
Reference them as {{category.material}}, {{category.care_instructions}}, etc. Each product gets the values matching its primary category.

Product variables (computed)

View examples and use cases → Product variables use formulas to compute new values from existing product data. They recalculate per product.
1

Open the Products tab

Go to Settings > Content Logic and click the Products tab.
2

Add a variable

Click Add Variable. Enter a label, key, and formula. Use the Insert Field and Insert Operator buttons to build your formula, or type {{ for autocomplete.
3

Check the preview

The live preview shows your formula resolved with sample data, so you can verify the output before saving.

Formula operators

Arithmetic

OperatorDescriptionExample
+Add{{product.price}} + 10
-Subtract{{product.price}} - {{product.cost}}
*Multiply{{product.price}} * 1.21
/Divide{{product.price}} / {{product.stock_quantity}}
%Modulo{{product.stock_quantity}} % 12
( )Grouping({{product.price}} - {{product.cost}}) / {{product.price}} * 100

Math functions

FunctionDescriptionExample
round()Round to nearest integerround({{product.price}} * 1.21)
floor()Round downfloor({{product.margin_percent}})
ceil()Round upceil({{product.weight}} / 0.5) * 0.5
min(,)Smaller of two valuesmin({{product.price}}, 99.99)
max(,)Larger of two valuesmax({{product.cost}} * 1.5, 9.99)
abs()Absolute valueabs({{product.price}} - {{product.special_price}})

Text functions

FunctionDescriptionExample
concat(,)Join two valuesconcat({{product.brand}}, " - ", {{product.name}})
uppercase()Convert to UPPERCASEuppercase({{product.sku}})
lowercase()Convert to lowercaselowercase({{product.brand}})

Escaping operators

To use an operator character as literal text (not as a math operator), prefix it with a backslash:
S\/M\/L     → renders as "S/M/L" (no division)
10\% off    → renders as "10% off" (no modulo)

Example product variables

Price including VAT:
  • Key: price_incl_vat
  • Formula: round({{product.price}} * 1.21 * 100) / 100
  • Result: 120.99 → €146.40
Margin percentage (formatted):
  • Key: margin_display
  • Formula: round(({{product.price}} - {{product.cost}}) / {{product.price}} * 100)
  • Result: 42%
Display name with SKU:
  • Key: display_name
  • Formula: {{product.name}} ({{product.sku}})
  • Result: Stainless Steel Hex Bolt M10x50 (SS-HB-M1050)
Price per kilogram:
  • Key: price_per_kg
  • Formula: round({{product.price}} / {{product.weight}} * 100) / 100
  • Result: €15.29/kg
Make sure the fields you reference actually have values. If a field is empty, the variable resolves to an empty string — and math on empty values won’t compute.

Channel variables

View examples and use cases → Channel variables transform existing product content for specific sales channels. Each variable takes a source field and applies one or more transformation rules in sequence.
1

Open the Channels tab

Go to Settings > Content Logic and click the Channels tab.
2

Add a variable

Click Add Variable. Enter a label, key, and select the source field to transform.
3

Add transformation rules

Add one or more rules. Rules are applied in order — the output of one becomes the input for the next.

Source fields

Description, Short Description, Product Name, Meta Title, Meta Description, Features.

Transformation rules

RuleParametersWhat it does
TruncateMax length (default: 150)Cuts text to a maximum character count
Strip HTMLRemoves all HTML tags, leaving plain text
TemplateTemplate stringWraps or reformats content using a template
Bullet PointsMax bullets (default: 5)Converts text into a bullet-point list

Example channel variables

Amazon short description:
  • Source: Description
  • Rules: Strip HTML → Bullet Points (max: 5) → Truncate (500)
  • Result: Your full HTML description becomes a clean, 5-bullet, max-500-char summary for Amazon.
Google Shopping title:
  • Source: Product Name
  • Rules: Template ({{value}} - {{product.brand}} - Buy at {{global.company_name}}) → Truncate (150)
  • Result: “Stainless Steel Hex Bolt M10x50 - Fischer - Buy at Industrial Supplies BV”
Marketplace plain-text description:
  • Source: Description
  • Rules: Strip HTML → Truncate (2000)
  • Result: Full description with all formatting stripped, capped at 2000 characters.
Chain rules in the right order. Strip HTML first, then truncate — otherwise you might cut in the middle of an HTML tag.

Conditional blocks

View examples and use cases → Conditional blocks show different content based on product data. They work like if/else statements for your content.
1

Create a block

On the Conditional tab, click Add Block. Give it a name and key.
2

Define conditions

Select a product field, choose an operator, and enter a comparison value. Add multiple conditions and combine them with AND or OR logic.
3

Write the content for each branch

Enter the content that should appear when the conditions are met (then), add optional else if branches for additional scenarios, and an optional else for the fallback.

Condition operators

OperatorDescriptionNeeds value?
equalsExact matchYes
not_equalsDoes not equalYes
containsContains substringYes
not_containsDoes not containYes
starts_withString starts withYes
ends_withString ends withYes
greater_thanNumeric greater thanYes
less_thanNumeric less thanYes
greater_than_or_equalGreater than or equalYes
less_than_or_equalLess than or equalYes
in_listValue is one of (comma-separated)Yes
is_emptyField has no valueNo
is_not_emptyField has a valueNo
is_trueBoolean is trueNo
is_falseBoolean is falseNo
Conditions can reference any product field, custom attribute, or date/time variable. The field selector groups them by category (Product Identity, Content, Pricing, Physical Properties, Inventory, Shipping, Status, Date & Time) and includes your custom attributes.

Example conditional blocks

Free shipping banner:
  • Key: free_shipping
  • IF product.price greater than 50Free shipping included.
  • ELSE → Shipping calculated at checkout.
Stock urgency message:
  • Key: stock_message
  • IF product.stock_quantity less than 5 AND product.stock_status equals in_stockOnly {{product.stock_quantity}} left — order soon.
  • ELSE IF product.stock_status equals out_of_stockCurrently out of stock. {{global.restock_text}}
  • ELSE → In stock and ready to ship.
Seasonal promotion:
  • Key: seasonal_promo
  • IF current.season equals WinterWinter Sale: save {{product.savings_percent}}% today.
  • ELSE IF current.season equals SummerSummer clearance — {{product.savings_percent}}% off.
  • ELSE → (empty — no promo outside sale seasons)
B2B lead time by category:
  • Key: lead_time
  • IF product.category in_list Custom Orders, Made to OrderLead time: 4-6 weeks. Contact us for expedited options.
  • ELSE IF product.stock_quantity greater than 0In stock. {{global.lead_time_text}}
  • ELSE → Available on backorder. {{global.backorder_lead_time}}
Hazardous material warning:
  • Key: hazmat_notice
  • IF product.is_dangerous_good is_true → ⚠ Hazardous material. Special shipping restrictions apply. {{brand.hazmat_handling}}
  • ELSE → (empty)

Where you can use variables

Once defined, you can reference Content Logic variables in:

Saving changes

Content Logic auto-detects when you’ve made changes. A save bar appears at the bottom of the page:
  • Click Save to persist your changes
  • Click Undo to revert to the last saved state
Settings are saved at the project level — all team members with access to the project share the same variable definitions.

Best practices

Start with Globals

Begin with global variables for company-wide values like company name, shipping policy, and contact info. They’re the simplest to set up and immediately useful across your catalog.

Use Descriptive Keys

Name variables clearly — warranty_text instead of var1, compliance_text instead of ct. You’ll reference these keys everywhere, so make them readable.

Test with Real Products

After creating conditional blocks or formulas, verify them against different products to make sure the right content appears for each scenario. Use the live preview to catch issues early.

Layer Your Scopes

Combine scopes for rich content — use global variables for shared text, brand variables for manufacturer-specific content, and category variables for product-type details, all in one formula.