Vendure Order Export Plugin
npm install @pinelab/vendure-plugin-order-exportVendure Order Export Plugin
Section titled “Vendure Order Export Plugin”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
Section titled “Getting started”- Add the server in your
vendure-config.ts
import { OrderExportPlugin } from '@pinelab/vendure-plugin-order-export';
// Server pluginplugins: [ OrderExportPlugin.init({ // Optionally add your own strategies here exportStrategies: [], }),];- Make sure your user has the permission
ExportOrders - After starting your server, you should be able to see the
Export ordersin the menu on the left side, under ’ sales.’ - Select a date range, select an export strategy and click export!
Custom export strategies
Section titled “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 dashboard 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()], }),];