macopedia / magento2-omnibusdirective

Implementation of EU Omnibus Directive for Magento 2
GNU General Public License v3.0
13 stars 2 forks source link

Macopedia Magento 2 Omnibus Directive module

Implementation of EU Omnibus Directive for Magento 2.

Requirements

Magento version > 2.4.x

Main features

  1. Historical prices
    1. Adds Historical price and Historical price updated at product attributes
    2. Keeps minimal price from last 30 days - calculated from price and special_price attributes change after product save in admin panel
    3. Cronjob which removes historical prices older than 30 days
    4. Displays historical price on product view page
  2. Trusted review validation
    1. Extends product review form by an additional input order_number
    2. Validates purchased product by order number (Increment ID) - only validated buyer can add review to product

Not implemented features

Installation

  1. Using composer:
composer require macopedia/module-omnibusdirective
  1. Using zip file:
    1. Download zip file
    2. Extract module in directory app/code/Macopedia/OmnibusDirective

Enable module and install patches:

   bin/magento module:enable Macopedia_OmnibusDirective
   bin/magento setup:upgrade

Notice - if you have custom theme and modified review form template file Magento_Review/templates/form.phtml you have to add manually order_id input (see example in file view/frontend/templates/review/form.phtml):

<div class="field review-field-order-id required">
    <label for="order_id_field" class="label"><span><?= $block->escapeHtml(__('Order number')) ?></span></label>
    <div class="control">
        <input type="text" name="order_id" id="order_id_field" class="input-text" data-validate="{required:true}" data-bind="value: review().order_id" />
    </div>
</div>

Prices import

If you have custom script to import prices, you can use method \Macopedia\OmnibusDirective\Model\Product\HistoricalPrice::getHistoricalPriceUpdateValue to calculate historical price. As parameters, you should pass array with original prices $origData (before import values):

$origData = 
[
    'special_price' => xxx,
    'historical_price' => xxx,
    'price' => xxx
]

and updated prices array $data (after import values):

$data = 
[
    'special_price' => xxx,
    'price' => xxx
]

Screenshots

Historical price on product page

product-page-historical-price

Review validation by order number field

product-page-trusted-review