Skip to main content

Channel

Channel

A Channel represents a distinct sales channel and configures defaults for that channel.

  • Set a channel-specific currency, language, tax and shipping defaults
  • Assign only specific Products to the Channel (with Channel-specific prices)
  • Create Administrator roles limited to the Channel
  • Assign only specific StockLocations, Assets, Facets, Collections, Promotions, ShippingMethods & PaymentMethods to the Channel
  • Have Orders and Customers associated with specific Channels.

In Vendure, Channels have a number of different uses, such as:

  • Multi-region stores, where there is a distinct website for each territory with its own available inventory, pricing, tax and shipping rules.
  • Creating distinct rules and inventory for different sales channels such as Amazon.
  • Specialized stores offering a subset of the main inventory.
  • Implementing multi-vendor marketplace applications.
Signature
class Channel extends VendureEntity {
constructor(input?: DeepPartial<Channel>)
@Column({ unique: true })
code: string;
@Column({ unique: true })
token: string;
@Column({ default: '', nullable: true })
description: string;
@Index()
@ManyToOne(type => Seller, seller => seller.channels)
seller?: Seller;
@EntityId({ nullable: true })
sellerId?: ID;
@Column('varchar') defaultLanguageCode: LanguageCode;
@Column({ type: 'simple-array', nullable: true })
availableLanguageCodes: LanguageCode[];
@Index()
@ManyToOne(type => Zone, zone => zone.defaultTaxZoneChannels)
defaultTaxZone: Zone;
@Index()
@ManyToOne(type => Zone, zone => zone.defaultShippingZoneChannels)
defaultShippingZone: Zone;
@Column('varchar')
defaultCurrencyCode: CurrencyCode;
@Column({ type: 'simple-array', nullable: true })
availableCurrencyCodes: CurrencyCode[];
@Column({ default: true })
trackInventory: boolean;
@Column({ default: 0 })
outOfStockThreshold: number;
@Column(type => CustomChannelFields)
customFields: CustomChannelFields;
@Column() pricesIncludeTax: boolean;
@ManyToMany(type => Product, product => product.channels, { onDelete: 'CASCADE' })
products: Product[];
@ManyToMany(type => ProductVariant, productVariant => productVariant.channels, { onDelete: 'CASCADE' })
productVariants: ProductVariant[];
@ManyToMany(type => FacetValue, facetValue => facetValue.channels, { onDelete: 'CASCADE' })
facetValues: FacetValue[];
@ManyToMany(type => Facet, facet => facet.channels, { onDelete: 'CASCADE' })
facets: Facet[];
@ManyToMany(type => Collection, collection => collection.channels, { onDelete: 'CASCADE' })
collections: Collection[];
@ManyToMany(type => Promotion, promotion => promotion.channels, { onDelete: 'CASCADE' })
promotions: Promotion[];
@ManyToMany(type => PaymentMethod, paymentMethod => paymentMethod.channels, { onDelete: 'CASCADE' })
paymentMethods: PaymentMethod[];
@ManyToMany(type => ShippingMethod, shippingMethod => shippingMethod.channels, { onDelete: 'CASCADE' })
shippingMethods: ShippingMethod[];
@ManyToMany(type => Customer, customer => customer.channels, { onDelete: 'CASCADE' })
customers: Customer[];
@ManyToMany(type => Role, role => role.channels, { onDelete: 'CASCADE' })
roles: Role[];
@ManyToMany(type => StockLocation, stockLocation => stockLocation.channels, { onDelete: 'CASCADE' })
stockLocations: StockLocation[];
}

constructor

method
(input?: DeepPartial<Channel>) => Channel

code

property
string

The name of the Channel. For example "US Webstore" or "German Webstore".

token

property
string

A unique token (string) used to identify the Channel in the vendure-token header of the GraphQL API requests.

description

property
string

seller

property

sellerId

property

defaultLanguageCode

property

availableLanguageCodes

property

defaultTaxZone

property

defaultShippingZone

property

defaultCurrencyCode

property

availableCurrencyCodes

property

trackInventory

property
boolean

Specifies the default value for inventory tracking for ProductVariants. Can be overridden per ProductVariant, but this value determines the default if not otherwise specified.

outOfStockThreshold

property
number

Specifies the value of stockOnHand at which a given ProductVariant is considered out of stock.

customFields

property
CustomChannelFields

pricesIncludeTax

property
boolean

products

property

productVariants

property

facetValues

property

facets

property

collections

property

promotions

property

paymentMethods

property

shippingMethods

property

customers

property

roles

property

stockLocations

property