> For the complete documentation index, see [llms.txt](https://support.morozovpimnev.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.morozovpimnev.ru/megaimport/sobytiya-khuki.md).

# События (хуки)

#### Хук после завершения импорта

{% code lineNumbers="true" %}

```php
class My_MegaImport
{
   static public function onAfterFinish($controller)
   {
      $oASMP_MegaImport = $controller->ASMP_MegaImport;
      $oASMP_MegaImport_Log = $controller->ASMP_MegaImport_Log;
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onAfterFinish', array('My_MegaImport', 'onAfterFinish'));
```

{% endcode %}

#### Хук после создания группы

{% code lineNumbers="true" %}

```php
class My_MegaImport
{
   /**
    * $oShop_Group - группа в магазине
    * $oGroup - объект данных для создания группы
    */
   static public function onAfterImportGroup($controller, $args)
   {
      [$oShop_Group, $oGroup] = $args;
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onAfterImportGroup', array('My_MegaImport', 'onAfterImportGroup'));
```

{% endcode %}

#### Хук до/после создания товара

{% code lineNumbers="true" %}

```php
class My_MegaImport
{
   /**
    * $oItem - объект данных для создания товара
    * $data - data данные файла, массив или SimpleXMLElement в зависимости от типа файла
    */
   static public function onBeforeImportItem($controller, $args)
   {
      [$oItem, $data] = $args;
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onBeforeImportItem', array('My_MegaImport', 'onBeforeImportItem'));

class My_MegaImport
{
   /**
    * $oItem - объект данных для создания товара
    * $oShop_Item - товар в магазине
    * $data - data данные файла, массив или SimpleXMLElement в зависимости от типа файла
    */
   static public function onAfterImportItem($controller, $args)
   {
      [$oItem, $oShop_Item, $data] = $args;
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onAfterImportItem', array('My_MegaImport', 'onAfterImportItem'));
```

{% endcode %}

#### Хук до загрузки цен

{% code lineNumbers="true" %}

```php
class My_MegaImport
{
   /**
    * $oShop_Item - товар в магазине
    * $aPrices - массив цен
    * $type - тип товара, 0 - основной, 1 - модификация 
    */
   static public function onBeforeImportPrices($controller, $args)
   {
      [$oShop_Item, $aPrices, $type] = $args;
      
      // если вернуть новый массив $aPrices, будет использоваться он
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onBeforeImportPrices', array('My_MegaImport', 'onBeforeImportPrices'));
```

{% endcode %}

#### Хук до загрузки свойств

{% code lineNumbers="true" %}

```php
class My_MegaImport
{
   /**
    * $oShop_Item - товар в магазине
    * $oProp - объект данных для создания свойства
    */
   static public function onBeforeAddItemProperty($controller, $args)
   {
      [$oShop_Item, $oProp] = $args;
   }
}

Core_Event::attach('ASMP_MegaImport_Controller.onBeforeAddItemProperty', array('My_MegaImport', 'onBeforeAddItemProperty'));
```

{% endcode %}
