• Stars
    star
    251
  • Rank 161,862 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Customisable Promo Code / Coupon / Voucher Generator - Use cases: online coupons, prepaid vouchers, in-app promo codes

Coupon Code Generator

Generate unique, random, and hard to guess coupon / voucher codes. Use cases: promo codes, loyalty coupons, gift vouchers, in-app purchases, referral links

This library originates from Voucherify.

https://www.voucherify.io/?utm_source=github&utm_medium=repo&utm_campaign=opensource

Voucherify - programmable building blocks for coupon, referral, and loyalty programs.

Our developer friendly, API-first platform helps developers integrate digital promotions across any marketing channel or customer touchpoint - eventually giving full control over campaigns back to the marketing team.

Why Voucherify?

  • RESTful API with pre-built client libraries and comprehensive documentation
  • Configurable webhooks allow you to integrate Voucherify with any API service out there
  • Get real-time visibility into every change in your system with monitoring & logs
  • Explore the possibilities with dozens of working demos and test mode
  • Livechat & Slack support

See the full documentation - https://docs.voucherify.io

Installation

In Node.js

Install with npm:

$ npm install --save voucher-code-generator

Include with require:

var voucher_codes = require('voucher-code-generator');

In a browser

<script src="voucher_codes.js"></script>

Usage

Generate 5 codes, each 8 characters long:

voucher_codes.generate({
    length: 8,
    count: 5
});

Sample result: ["FR6bwx1q", "ByamOdWV", "7roFwfQs", "rmWlwvll", "pgih5eAB"]

Charset

Default charset is alphanumeric (numbers and letters). However, you can specify your own charset:

voucher_codes.generate({
    length: 6,
    count: 3,
    charset: "0123456789"
});

Sample result: ["386525", "676442", "019075"]

You can also use one of the predefined charsets by calling voucher_codes.charset(name).

name charset
"numbers" "0123456789"
"alphabetic" "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
"alphanumeric" "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

For example:

voucher_codes.generate({
    length: 5,
    count: 4,
    charset: voucher_codes.charset("alphabetic")
});

Result: ["odghy", "kZEYc", "eOTCl", "wVCzD"]

Prefix and Postfix

You can optionally surround each generated code with a prefix and/or postfix.

For instance:

voucher_codes.generate({
    prefix: "promo-",
    postfix: "-2015"
});

Result: ["promo-WZ4x1t3U-2015"]

Pattern

Codes may follow a specified pattern. Use hash (#) as a placeholder for random characters. Notice that if pattern is specified then length is ignored.

Example:

voucher_codes.generate({
    pattern: "##-###-##",
});

Result: ["P7-ofW-Ka"]

Infeasible configs

There exist some configs that are not feasible. For example it's not possible to generate 1000 codes if you want your codes to be 2 characters long and consisting only of numbers. Voucher code generator detects such cases and throws an error "Not possible to generate requested number of codes.".

try {
    voucher_codes.generate({
        count: 1000,
        length: 2,
        charset: "0123456789"
    });
catch (e) {
    console.log("Sorry, not possible.");
}

Sequential code

It is possible to generate a specific code from the pool of all possible codes for a config using a sequenceOffset parameter. The offset must be greater than equal 0, otherwise the first possible combination will be returned.
The offset must be less than the number of maximum combinations for a config, otherwise the last possible combination will be returned. It is possible to generate a series of codes starting from sequenceOffset by additionally using count config parameter.

var sequenceOffset = 52;

voucher_codes.generate({
    count: 3,
    length: 2,
    charset: "0123456789"
}, sequenceOffset);

Result: ["52", "53", "54"]

Config reference

attribute default value description
length 8 Number of characters in a generated code (excluding prefix and postfix)
count 1 Number of codes generated.
charset alphanumeric Characters that can appear in the code.
prefix "" A text appended before the code.
postfix "" A text appended after the code.
pattern "########" A pattern for codes where hashes (#) will be replaced with random characters.

Testing

Install dependencies:

npm install

Run tests:

npm run test

License

Code released under the MIT license.

More Repositories

1

developer-challenge

36
star
2

voucher-code-generator-java

Java
31
star
3

voucherify-nodejs-sdk

[Deprecated] Node.js SDK for Voucherify - coupons, vouchers, promo codes
JavaScript
27
star
4

voucherify-java-sdk

Java SDK for Voucherify - coupons, vouchers, promo codes
Java
23
star
5

voucherify-nodejs-example

Voucherify sample application | Use cases: online coupons, prepaid vouchers, in-app promo codes
JavaScript
22
star
6

voucherify-php-sdk

PHP SDK for Voucherify - coupons, vouchers, promo codes
PHP
19
star
7

voucherify-ios-sdk

Voucherify iOS SDK | Use cases: online coupons, prepaid vouchers, in-app promo codes
Swift
18
star
8

voucherify-android-sdk

Android SDK for Voucherify - coupons, vouchers, promo codes
Java
17
star
9

voucherify-dotNET-sdk

.Net SDK for Voucherify - coupons, vouchers, promo codes http://www.voucherify.io
C#
12
star
10

voucherify-python-sdk

Voucherify Python SDK | Use cases: online coupons, prepaid vouchers, in-app promo codes
Python
10
star
11

coupon

Coupons SDK list for Voucherify
10
star
12

voucherify-ruby-sdk

Ruby SDK for Voucherify - coupons, vouchers, promo codes
Ruby
9
star
13

voucherify-js-sdk

Voucherify SDK for JavaScript and node.js – coupons, vouchers, promo codes
TypeScript
9
star
14

voucherify-openapi

Mustache
4
star
15

randomcodegenerator

Use cases: coupons, vouchers, promo codes, gift cards
HTML
3
star
16

voucherify-redeem-app

JavaScript
3
star
17

commerce-tools-integration

TypeScript
3
star
18

magento-extension

Voucherify extension to Magento checkout form.
JavaScript
2
star
19

voucherify-publish-app

JavaScript
2
star
20

voucherify-rust-sdk

Rust
1
star
21

voucherify-twilio

Sample of usage Twilio mixed with Voucherify
JavaScript
1
star
22

voucherify-showcase-store

Voucherify React Demo Store
JavaScript
1
star
23

voucherify-iot

Proof of Concept Voucherify integration with NFC scanner. It allows to redeem a coupon saved on NFC tag.
JavaScript
1
star
24

voucherify-samples

Shell
1
star
25

braze-connected-content

Connected Content and Liquid for Braze and Voucherify integration
HTML
1
star