Table of Contents

uRapidFlow Customization

Events

A general way to add observers to the events is:

  1. Declare an observer in your custom module configuration, etc/events.xml or etc/adminhtml/events.xml (any new file)

An example: Acme/Module/etc/events.xml

MyCustom_Module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
  <event name="urapidflow_profile_reindex_after">
    <observer name="urapidflow" instance="Acme\Module\Observer\ProductUrlUpdateObserver"/>
  </event>
</config>

Acme/Module/Observer/ProductUrlUpdateObserver.php

Observer.php
<?php
 
namespace Acme\Module\Observer;
 
use Magento\Framework\Event\ObserverInterface;
 
class ProductUrlUpdateObserver implements ObserverInterface
{
    /**
     * @var \Unirgy\RapidFlow\Helper\Url
     */
    protected $helper;
 
    /**
     * CategoryUrlUpdateObserver constructor.
     * @param \Unirgy\RapidFlow\Helper\Url $helper
     */
    public function __construct(\Unirgy\RapidFlow\Helper\Url $helper)
    {
        $this->helper = $helper;
    }
 
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        /** @var \Unirgy\RapidFlow\Model\Profile $profile */
        $profile = $observer->getData('profile');
        try {
            $this->helper->updateProductsUrlRewrites();
        } catch (\Magento\Framework\Exception\AlreadyExistsException $e) {
            $profile->getLogger()->error($e->getLogMessage());
        }
    }
}

Product Import Events

There are 5 stages during product import process where a custom logic can be plugged in as an event observer:

The events are fired for each page of data (by default 100 rows), and each stage has more vars available than previous, and including all vars that were available before.

urapidflow_product_import_after_fetch

Vars
Example

This example observer will change weight values of ā€œ2kgā€ and ā€œ470gā€ into correct decimal weight value.

Acme/Module/Observer/WeightUpdateObserver.php

WeightUpdateObserver.php
<?php
 
class WeightUpdateObserver implements ObserverInterface
{
    public function execute(Observer $observer)
    {
        $vars = $observer->getEvent()->getVars();
        foreach ($vars['new_data'] as &$row) {
            if (strpos($row['weight'], 'kg')!==false) {
                $row['weight'] = intval($row['weight']);
            } elseif (strpos($row['weight'], 'g')!==false) {
                $row['weight'] = intval($row['weight'])/1000;
            }
        }
        unset($row);
    }
}

urapidflow_product_import_after_validate

Vars

urapidflow_product_import_after_diff

Vars

Product Export Events

There are 2 stages during product import process where a custom logic can be plugged in as an event observer:

The events are fired for each page of data (by default 100 rows), and each stage has more vars available than previous, and including all vars that were available before.

urapidflow_catalog_product_export_before_format

Vars

urapidflow_catalog_product_export_before_output

Vars