npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@rahul_vendure/vendure-plugin-extra-promotions

v1.1.0

Published

Extra promotion conditions and actions for Vendure: first-order, collection-based, stock-level, time-range, weekday, cross-sell and more.

Readme

@rahul_vendure/vendure-plugin-extra-promotions

Additional promotion conditions and actions for Vendure beyond the built-in defaults, with a dashboard extension for collection picker inputs.

Features

Conditions

| Condition | Code | Description | | --- | --- | --- | | First Order | first_order | Customer is placing their first order | | Min Order Count | min_order_count | Customer has placed at least N previous orders (loyalty) | | Collection Contains | order_contains_products_in_collections | Order contains items from specified collections | | Not In Collection | order_contains_products_not_in_collections | Order contains items NOT in specified collections | | Min Stock Level | min_stock_level | Order contains overstocked items (stock clearance) | | Time Range | time_range | Current time is within a time window (Happy Hour) | | Weekday | weekday | Current day matches specified days of the week | | Cross-Sell | cross_sell | Order contains trigger products | | Happy Hours Collection | happy_hours_collection | Happy hour time window + items from selected collections |

Actions

| Action | Code | Description | | --- | --- | --- | | Collection Discount | collection_percentage_discount | Percentage discount on items in specified collections | | Exclude Collection Discount | exclude_collection_percentage_discount | Percentage discount on items NOT in specified collections | | Stock Clearance Discount | stock_clearance_discount | Percentage discount on overstocked items only | | Cross-Sell Discount | cross_sell_discount | Discount target products when trigger products are in the order | | Happy Hours Collection Discount | happy_hours_collection_discount | Percentage discount on items in selected collections during happy hour |

Dashboard Extension

  • Custom collection picker form input for selecting collections in promotion condition/action args

Installation

npm install @rahul_vendure/vendure-plugin-extra-promotions

Setup

import { ExtraPromotionsPlugin } from '@rahul_vendure/vendure-plugin-extra-promotions';

const config: VendureConfig = {
    plugins: [
        ExtraPromotionsPlugin,
    ],
};

No .init() call needed — the plugin registers all conditions and actions automatically.

Paired Conditions & Actions

Some actions are designed to work with specific conditions:

  • Stock Clearance: Use min_stock_level condition with stock_clearance_discount action. The condition identifies overstocked lines, and the action discounts only those lines.
  • Cross-Sell: Use cross_sell condition with cross_sell_discount action. The condition checks for trigger products and identifies target lines, the action discounts the targets.
  • Happy Hours Collection: Use happy_hours_collection condition with happy_hours_collection_discount action. The condition checks the time window and identifies lines from selected collections, the action discounts only those lines.

Tip: For a happy-hour discount on all products (no collection filter), use the standalone time_range condition with any built-in Vendure discount action.

Compatibility

  • Vendure ^3.0.0

License

MIT