This plugin extends Vendure to support multiple sellers across different channels, allowing for more flexible pricing and seller management in multi-channel e-commerce setups.
- Associate sellers with specific channels
- Set custom prices for product variants per channel and seller
- Extended GraphQL API for managing channel sellers and prices
- Automatic price resolution based on the current channel and seller context
npm install vendure-plugin-multi-channel-seller
Add the plugin to your Vendure config:
import { MultiChannelSellerPlugin } from 'vendure-plugin-multi-channel-seller';
export const config: VendureConfig = {
// ... other config
plugins: [
MultiChannelSellerPlugin,
// ... other plugins
],
};
Use the Admin API to create, update, and delete channel sellers:
mutation {
createChannelSeller(input: {
code: "SELLER1_CHANNEL1",
sellerId: "1",
channelId: "1"
}) {
id
code
}
}
Set custom prices for product variants per channel and seller:
mutation {
createChannelPrice(input: {
basePriceId: "1",
channelSellerId: "1",
currencyCode: USD,
price: 1999
}) {
id
price
}
}
Fetch channel sellers and prices using the extended API:
query {
channelSellers {
items {
id
code
seller {
id
name
}
channel {
id
code
}
}
}
}
query {
productVariant(id: "1") {
name
price
channelPrices {
price
channelSeller {
code
}
}
}
}
This plugin extends both the Admin API and Shop API with new types and operations. Refer to the api-extensions.ts
file for a complete list of additions.
The plugin can be further customized by extending the provided services and resolvers. Refer to the source code for more details on the available extension points.
Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.