Skip to main content

Crate promotion_kit

Crate promotion_kit 

Source
Expand description

§promotion_kit

A powerful Rust toolkit for managing dynamic promotions with flexible rules and seamless integration.

This crate provides a lightweight and extensible toolkit for managing promotions, vouchers, and discounts in any transactional system, such as e-commerce, SaaS, digital products, or other service platforms.


§✅ Features

  • Define flexible promotions with percentage or fixed amount discounts
  • Configure minimum transaction amounts, usage limits, and validity periods
  • Apply promotions and calculate discounts using a clean, composable API
  • Track usage counts and validate conditions with a minimal rule engine

§✨ Quick Start

 use promotion_kit::promotion::{Promotion, DiscountType, TargetScope};
 use promotion_kit::service::apply_promotion;
 
 let promo = Promotion {
    code: "WELCOME10".into(),
    description: "10% off for new users".into(),
    discount: DiscountType::Percentage(10.0),
    usage_limit: Some(100),
    used: 0,
    valid_from: 1_700_000_000,
    valid_until: 1_800_000_000,
    min_transaction: Some(100.0),
    target: TargetScope::Global,
    currency: Some("IDR".to_string()),
 };
 
 let discount = apply_promotion(&promo, 200.0, 1_750_000_000).unwrap();
 assert_eq!(discount, 20.0);

§📄 License

Licensed under the Apache-2.0 license


§👨 Author

Jerry Maheswara jerrymaheswara@gmail.com


§❤️ Built with Love in Rust

This project is built with ❤️ using Rust — a systems programming language that is safe, fast, and concurrent.
Rust is the perfect choice for building reliable and efficient applications.


§🤝 Contributing

Pull requests, issues, and feedback are welcome!
If you find this crate useful, give it a ⭐ and share it with others in the Rustacean community.

Modules§

discount
Implements the logic for calculating the monetary value of a discount based on the provided promotion and transaction amount.
error
Defines all errors related to promotion validation and application.
promotion
Contains the core data structures for defining a promotion and discount rules.
rule_engine
Provides a lightweight rule engine and context model for validating promotions.
service
Contains the main application logic for validating and applying promotions.