---
title: Replace Product Sales Channels
description: How to import product sales channel assignments with visibility control in Shopware 6, including replace mode and update mode.
---

![](/images/image.png)

This feature allows you to **fully control which Shopware sales channels each product is assigned to**, and define exactly how visible the product should be in each channel when importing data.

## Supported Fields

**Sales Channel Columns**

- **salesChannel** — List of sales channel UUIDs, each optionally paired with a visibility value
- **salesChannelNames** — List of sales channel names, each optionally paired with a visibility value

**Visibility Values**

- **10** — Hidden from listings and search (accessible only via direct link)
- **20** — Hidden from listings (visible in search results)
- **30** — Visible in listings and search (default)

## Data Format Examples

**CSV Example with Channel Names**

```
productNumber, salesChannelNames
SW10001, Storefront:30
SW10002, Headless:20|Storefront:30
SW10003, Storefront
```

**CSV Example with Channel IDs**

```
productNumber, salesChannel
SW10001, 019527ca391372d5a256adf8a79152a0:30
SW10002, 98432def39fc4624b33213a56b8c944d:20|019527ca391372d5a256adf8a79152a0:30
SW10003, 019527ca391372d5a256adf8a79152a0
```

**Multiple Sales Channels**

Use | (pipe) to separate entries:

```
salesChannelNames
Headless:20|Storefront:30|API-Channel:10
```

## Import Behavior

**Replace Mode (Enabled)**

![](/images/image%201.png)

- **Complete Replacement** — All existing sales channel assignments for the product are removed.
- **New Assignment** — Only the channels specified in the import file are assigned.
- **Visibility Update** — If the same channel is included, its visibility is updated.

**Update Mode (Disabled)**

![](/images/image%202.png)

- **Preserve Existing** — Existing sales channel assignments remain unchanged.
- **Add/Update Only** — New channels are added, but existing ones are not updated.
- **No Removal** — Channels not listed in the import are retained.

## Visibility Handling

- **Explicit Values** — Use colon notation, e.g., Storefront:20
- **Default Visibility** — If no value is provided, visibility defaults to **30** (fully visible)
- **Valid Range** — Only **10**, **20**, and **30** are accepted

## Data Format Rules

- **Channel Identification Priority:** If both IDs and names are provided, **IDs take precedence**
- **Format:** `channelIdentifier:visibilityValue`
- **Multiple Channels:** Separate entries with pipe (|)

## Use Case Examples

**Basic Assignment**

```
productNumber, salesChannelNames
SW10001, Storefront
```

*Result:* Product assigned to Storefront with default visibility (30)

**Specific Visibility**

```
productNumber, salesChannelNames
SW10001, Storefront:20
```

*Result:* Product visible in search only

**Multiple Channels**

```
productNumber, salesChannelNames
SW10001, Storefront:30|Headless:20|B2B-Portal:10
```

*Result:* Different visibility levels across channels

**Channel Removal (Replace Mode)**

```
productNumber, salesChannelNames
SW10001, Storefront:30
```

*Result:* All previous channel assignments removed; only Storefront remains

## Important Notes

- **Channel Validation:**
    - All sales channels must exist in Shopware prior to import
    - Channel names are **case-sensitive**
    - Invalid names or IDs will trigger import errors
- **Performance:**
    - Replace Mode performs delete operations; large imports may take longer
    - Existing visibility IDs are retained to ensure referential integrity
- **Compatibility**
    - Works with CSV and XML import files
    - Supports new products and updates to existing products
- **Error Handling**
    - Invalid visibility values (anything other than 10, 20, or 30) will cause errors
    - Non-existent channels will stop the import
    - Improper formatting (missing ":" or "|") will be rejected
