kkosmider/lunarphp-omnibus

A LunarPHP package for tracking historical prices and Omnibus directive compliance.

1.0.4 2025-02-03 11:55 UTC

README

A package to track historical prices of purchasable items in LunarPHP for compliance with the EU Omnibus Directive.

Features

  • Track historical prices for all purchasable models.
  • Support for multi-currency and customer group pricing.
  • Automatically log price changes.
  • Retrieve the lowest price within the last 30 days.

Installation

  1. Install the package using Composer:

    composer require kkosmider/lunarphp-omnibus
  2. Publish the migrations and configurations:

    php artisan vendor:publish --tag=omnibus.migrations
  3. Add the HasHistoricalPrices trait to your purchasable models.

Usage

This package automatically listens to price changes and records them in the historical_prices table. Use the HasHistoricalPrices trait in your purchasable models:

use Kkosmider\Omnibus\Traits\HasHistoricalPrices;

class ProductVariant extends \Lunar\Models\ProductVariant
{
    use HasHistoricalPrices;
}

Retrieve the lowest price within the last 30 days:

$variant = ProductVariant::find(1);

$lowestPrice = $variant->getHistoricalLowestPrice();
$variantHistoricalPrices = $variant->historicalPrices()->get();

Configuration

Customize configurations in config/omnibus.php after publishing:

php artisan vendor:publish --tag=omnibus.config