Example what to do [badge:Full Example|info]

Step 1 – Point user to entity [navigate:/products|Open Products|shopping-cart]

Open the products section: [navigate:/products|Products]

Add new product: [navigate:/products/new|New Products]

Navigate with a custom icon: [navigate:/devdoc/test-where|Test Filters|play]

Navigate to import screen: [navigate:/devdoc/imports|Imports|upload]

Navigate to mapper: [navigate:/mapper|Mapper|mapper]

Add a product: [navigate:/products/new|Add Product|plus]

Step 2 – Apply a filter

Filter all visible NIKE products:

brand_id = 'code:NIKE' and visibility in ('visible')

Step 3 – (Optional) Mass-update the filtered set

Before exporting, you can bulk-assign an export channel to all matching products:

{
  "export_channel": "eshop-de"
}

Step 4 – (Optional) Use AI to enrich descriptions before export

{
  "prompt": "Write a short product description suitable for the German market.",
  "fields": ["description_de"]
}

Step 5 – Run a query to inspect data

{
  "fields": ["code", "name", "price", "visibility"],
  "where": "visibility = 'visible'",
  "limit": 10
}

Step 5b – Plain query block (no entity, copyable display only)

products(where: "visibility = 'visible'", limit: 10) {
    id
    code
    name
    price
}

Step 6 – Import products from a CSV

{
  "columns": {
    "code": "PRODUCT_CODE",
    "name": "PRODUCT_NAME",
    "price": "PRICE_EUR"
  },
  "matchBy": "code"
}

Step 6b – Plain import block (no entity, copyable display only)

{
  "columns": {
    "code": "PRODUCT_CODE",
    "name": "PRODUCT_NAME"
  },
  "matchBy": "code"
}

Step 7 – Map feed data to products using Mapper

products = '$.items[*]' {
  code = 'CODE',
  name = 'NAME',
  price = 'PRICE'
}

Step 7b – Plain mapper block (no entity, copyable display only)

products = '$.items[*]' {
  code = 'CODE',
  name = 'NAME'
}

Step 8 – Create an export with this filter

Navigate to export configuration: [navigate:/exports/new|Export configuration]

Use the same filter expression there:

brand_id = 'code:NIKE' and visibility in ('visible')

Step 8b – Plain filter block (no entity, read-only display)

brand_id = 'code:NIKE' and visibility in ('visible')

Placeholders

The article body can reference runtime values using placeholders.

Send a query to the API endpoint for company {companyId}:

POST {HOSTNAME}/api/query
Authorization: Bearer <token>
X-Company-Id: {companyId}

The {HOSTNAME} placeholder resolves to the current application origin (e.g. https://app.productsync.com). The {companyId} placeholder resolves to the current organisation’s ID.


Inline code spans

Use the visibility field to control product availability. Set it to visible, hidden, or catalog. The endpoint path is /api/v1/products and the method is GET.


Callout boxes

This is an **informational** callout. Use it for tips, notes, and neutral context.
**Warning:** Changing the `matchBy` field after your first import will cause duplicates.
**Tip:** You can combine multiple filters using `and` / `or` operators.
**Danger:** Deleting a feed mapping is irreversible. Make sure you have a backup.

GFM pipe tables

FieldTypeRequiredDescription
codestringUnique product identifier
namestringProduct display name
pricenumberBase price excluding VAT
visibilityenumOne of visible, hidden, catalog

Multi-language code tabs

tab: JSON
{
  "code": "PROD-001",
  "name": "Running Shoes",
  "price": 99.90
}
---
tab: XML
<product>
  <code>PROD-001</code>
  <name>Running Shoes</name>
  <price>99.90</price>
</product>
---
tab: CSV
code,name,price
PROD-001,Running Shoes,99.90

Numbered steps

1. Open **Products** in the left navigation.
2. Click **Filters** and add `visibility = 'visible'`.
3. Select all matching products using the checkbox.
4. Choose **Mass Update** from the action menu.
5. Set `export_channel` and confirm.

Feature grid cards

card: Real-time sync
icon: refresh-cw
Automatically synchronise product data between your ERP and all connected channels.

card: Flexible mapping
icon: workflow
Map any source field to any target field using the visual Mapper editor.

card: Smart filtering
icon: filter
Use powerful WHERE expressions to target exactly the products you need.

“Try it” CTA button

Try the filter directly: [try:/devdoc/test-where|Open filter playground|play]

Import your first products now: [try:/imports/new|Start import wizard|upload]


Inline badges

The visibility field accepts three values: [badge:visible|success] [badge:hidden|warning] [badge:catalog|info]

This feature is [badge:Beta|warning] and the API is [badge:Stable|success].