Export orders in your own customizable format.
npm install @pinelab/vendure-plugin-order-export
Support by
Support languages
en
nl
Integration type
Partner
Category
Admin tools
Compatible with
>=2.2.0
Latest version
1.3.0
Last published
Dec 20, 2024
Downloads in past month
470
Vendure Order Export Plugin
Official documentation here
This plugin allows administrators to export orders to a file. The default exports orders and their totals to a csv file. You can implement your own strategy to determine what and how data is exported.
Getting started
- Add the server and admin UI extensions in your
vendure-config.ts
import { OrderExportPlugin } from '@pinelab/vendure-plugin-order-export';
// Server plugin
plugins: [
OrderExportPlugin.init({
// Optionally add your own strategies here
exportStrategies: [],
}),
AdminUiPlugin.init({
port: 3002,
route: 'admin',
app: compileUiExtensions({
outputPath: path.join(__dirname, '__admin-ui'),
extensions: [OrderExportPlugin.ui],
}),
}),
...
];
- Make sure your user has the permission
ExportOrders
- After starting your server, you should be able to see the
Export orders
in the menu on the left side, under ’ sales.’ - Select a date range, select an export strategy and click export!
Custom export strategies
You can easily implement your own export strategy and pass it to the plugin:
import { ExportStrategy } from '@pinelab/vendure-plugin-order-export';
import { promises as fs } from 'fs';
import { createObjectCsvWriter } from 'csv-writer';
export class MyCustomExport implements ExportStrategy {
// Name as shown in the admin UI
readonly name = 'my-custom-export';
// Content-type of your export file
readonly contentType = 'text/csv';
// File extension of your export file
readonly fileExtension = 'csv';
async createExportFile({
ctx,
startDate,
endDate,
orderService,
}: ExportInput): Promise<string> {
const orders = await orderService.findAll(
ctx,
{
filter: {
orderPlacedAt: {
between: {
start: startDate,
end: endDate,
},
},
},
},
['lines.productVariant']
);
// Do your magic with the order data here
const filePath = '/tmp/your-temp-file.csv';
const csvWriter = createObjectCsvWriter({ path: filePath });
await csvWriter.writeRecords({ data: 'your custom data' });
return filePath;
}
}
Don’t forget to add the strategy to your plugin:
plugins: [
OrderExportPlugin.init({
exportStrategies: [new MyCustomExport()],
}),
];
Get started
Create your first commerce experience with Vendure in less than 2 minutes
Vendure is a registered trademark. Our trademark policy ensures that our brand and products are protected. Feel free to reach out if you have any questions about our trademarks.
Documentation
Newsletter
Get the latest product news and announcements delivered directly to your inbox.