This plugin is free for personal and commercial use. Just follow the instructions below.
- Send places orders to SendCloud
- Easily print packaging slips
- Make order picking fun with SendCloud
Fulfil orders with the SendCloud fulfillment platform with this Vendure plugin
yarn install vendure-plugin-sendcloud
vendure-config.ts
:plugins: [
SendcloudPlugin.init({}),
...
]
AdminUiPlugin.init({
port: 3002,
route: 'admin',
app: compileUiExtensions({
outputPath: path.join(__dirname, '__admin-ui'),
extensions: [SendcloudPlugin.ui],
}),
}),
Settings > Integrations
and create an integration.secret
and publicKey
of the created integrationhttps://your-vendure-domain.io/sendcloud/webhook/your-channel-token
. This
will update orders when the status changes in SendCloud.SetSendCloudConfig
Settings > SendCloud
secret
and public key
here and click save.Now, when an order is placed, it will be automatically fulfilled and send to SendCloud.
You can choose to send additional info to SendCloud: weight
, hsCode
, origin_country
and additional parcel items.
Parcel items will show up as rows on your SendCloud packaging slips.
import 'SendCloudPlugin, getNrOfOrders';
from;
('vendure-plugin-sendcloud');
plugins: [
SendcloudPlugin.init({
/**
* Implement the weightFn to determine the weight of a parcel item,
* or set a default value
*/
weightFn: (line) =>
(line.productVariant.product?.customFields as any)?.weight || 5,
/**
* Implement the hsCodeFn to set the hsCode of a parcel item,
* or set a default value
*/
hsCodeFn: (line) =>
(line.productVariant.product?.customFields as any)?.hsCode || 'test hs',
/**
* Implement the originCountryFn to set the origin_country of a parcel item,
* or set a default value
*/
originCountryFn: (line) => 'NL',
/**
* Implement the additionalParcelItemsFn to add additional rows to the SendCloud order.
* This example adds the nr of previous orders of the current customer to SendCloud
*/
additionalParcelItemsFn: async (ctx, injector, order) => {
additionalInputs.push(await getNrOfOrders(ctx, injector, order));
return additionalInputs;
},
}),
];