Skip to content

Feature Request: Multi-Channel Support for Existing Channel Bulk Actions #4812

Description

@Ryrahul

Is your feature request related to a problem? Please describe.

The Dashboard bulk actions for entities like Products, Collections, Facets, Shipping Methods, Payment Methods, Promotions, etc. currently support assigning/removing items to/from a single channel at a time via the "Assign to channel" / "Remove from channel" bulk actions.

In multi-channel setups (marketplaces, regional storefronts, B2B/B2C splits), it's common to need the same set of products, collections, and other entities available across many channels.

Today the only way to do this in the UI is:

  1. Select the items
  2. Click Assign to channel
  3. Pick one channel
  4. Repeat the entire flow N times for N channels

This is tedious, error-prone, and doesn't scale well.

We've ended up writing a custom plugin and custom bulk action simply to expose a multi-channel version of this workflow, which suggests there may be a gap worth addressing in core.


Describe the solution you'd like

Extend the existing channel-related bulk actions (at minimum for Products, but ideally for every entity that already supports assignToChannel / removeFromChannel) so the channel selector supports multiple channel selection in a single action.

Proposed UX

Assign to Channel

  • The existing Assign to channel dialog should allow selecting multiple channels.
  • All selected items should be assigned to all selected channels in a single operation.

Remove from Channel

  • The existing Remove from channel dialog should allow selecting multiple channels.
  • All selected items should be removed from all selected channels in a single operation.

Possible implementation approaches

Option A: API-level support

Extend mutations to accept multiple channel IDs:

assignProductsToChannel(
  input: {
    productIds: [ID!]!
    channelIds: [ID!]!
  }
)

Option B: UI-level support

Keep the existing API unchanged and have the Admin UI:

  • Accept multiple channel selections
  • Fan out requests in parallel (one request per channel)
  • Aggregate success and error reporting for the user

Affected entities

This would be useful for any entity that currently exposes channel assignment bulk actions, including:

  • Products
  • Collections
  • Facets
  • Shipping Methods
  • Payment Methods
  • Promotions
  • etc
  • Any other channel-aware entity supporting bulk channel assignment

Describe alternatives you've considered

Custom plugin

Register a custom BulkAction that opens a multi-select channel dialog and calls assignProductsToChannel once per selected channel.

This works, but every team using Vendure must reinvent the same functionality.

Admin API scripts

Automate channel assignment through scripts.

While effective, this is not accessible to non-technical administrators.

Repeating the existing workflow

Use the current bulk action multiple times, once per channel.

This becomes increasingly slow and error-prone as the number of channels grows.


Additional context

  • This is a feature request, not a bug report.

  • Current behavior matches the documented single-channel design.

  • We're already shipping this capability in production via a custom plugin.

  • I'd be happy to contribute a PR if the maintainers agree on the preferred UX:

    • Extend the existing action with multi-select support, or
    • Introduce a separate "Assign to multiple channels..." bulk action.

Environment

  • **@vendure/core version:**3.6.4

  • Node.js version: 22.22.3

  • Database: postgres

  • OS: macOS

  • Package manager: pnpm

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions