Skip to content

Back-In-Stock Vendure plugin for email notifications of sold-out products on replenishment

Notifications You must be signed in to change notification settings

calliT-today/vendure-plugin-back-in-stock

Repository files navigation

Back-In-Stock Vendure Plugin

Vendure version

Keep your customers in the loop for when a sold-out product gets replenished and generate more revenue by adding potential future sales!

Getting started

yarn add @callit-today/vendure-plugin-back-in-stock

yarn add -D @vendure/ui-devkit


  Add the plugin, email handler and AdminUI extensions to plugins in vendure-config.ts

export const config: VendureConfig = {
  // .. config options
  plugins: [
    BackInStockPlugin.init({ enableEmail: true, limitEmailToStock: false }),
    EmailPlugin.init({
      // .. email config
      handlers: [...defaultEmailHandlers, backInStockNotificationHandler]
    )},
    AdminUiPlugin.init({
      route: 'admin',
      port: 3002,
      adminUiConfig: {
          apiHost: 'http://localhost',
          apiPort: 3000,
      },
      app: compileUiExtensions({
          outputPath: path.join(__dirname, '../admin-ui'),
          extensions: [BackInStockPlugin.uiExtensions],
          devMode: IS_DEV,
      }),
    }),
  ],
};


  Create a template file for the Back-In-Stock email in static/email/templates/back-in-stock/body.hbs

{{> header title="{{productVariant.name}} - Back In Stock!" }}

<mj-section background-color="#fafafa">
    <mj-column>
        <mj-text color="#525252">
            {{ productVariant.name }} is now back in stock!
        </mj-text>

        <mj-button font-family="Helvetica"
                   background-color="#f45e43"
                   color="white"
                   href="{{ url }}/{{ productVariant.product.slug }}">
            View Product
        </mj-button>

    </mj-column>
</mj-section>

{{> footer }}

 

How it works

For any product that is out of stock, customers can signup to be notified via email when the product is back in stock. When a product is replenished, the plugin gets active subscriptions for it and sends email notifications.

Disable email notifications by setting enableEmail to false in plugin init
For limiting notifications sent to the amount of saleable stock set limitEmailToStock to true

 

Next steps

Implement frontend functionality. Refer to back-in-stock branch on storefront-qwik-starter

 

Todo

✅ Customizable options for disabling email notifications and sending emails to the amount of saleable stock

✅ Ability to send email notifications manually from the Admin UI

🔜 Dashboard with metrics and tracking conversions


 

License

MIT

Development

Run yarn start to start Vendure on http://localhost:3050/admin

Generate graphql types

  1. Start the dev-server with yarn start
  2. In another terminal window, run yarn generate