Vendure Order Export plugin

Easily export orders in your preferred format with this Vendure plugin

Made by a Vendure Silver Partner!
This plugin is free for personal and commercial use. Just follow the instructions below.

Order export flow

  • Export orders between given dates
  • Define your own file formats: CSV, Excel, PDF
  • Define your own data: Order lines, product variants, tax reports


yarn install vendure-plugin-order-export
  1. Add the server and admin UI extensions in your vendure-config.ts
import { OrderExportPlugin } from 'vendure-plugin-order-export';

// Server plugin
plugins: [
    // Optionally add your own strategies here
    exportStrategies: [],
      port: 3002,
      route: 'admin',
      app: compileUiExtensions({
         outputPath: path.join(__dirname, '__admin-ui'),
         extensions: [OrderExportPlugin.ui],
  1. Make sure your user has the permission ExportOrders
  2. After starting your server, you should be able to see the Export orders in the menu on the left side, under ' sales.'
  3. 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 '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({
  }: ExportInput): Promise<string> {
    const orders = await orderService.findAll(
        filter: {
          orderPlacedAt: {
            between: {
              start: startDate,
              end: endDate,
    // 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: [
    exportStrategies: [new MyCustomExport()],