> 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/dobavlenie-importa/vkladka-osnovnye/tip-importa.md).

# Тип импорта

## <mark style="background-color:green;">Путь</mark>

Загружает файл импорта по внешней или внутренней ссылке

<div data-full-width="true"><figure><img src="/files/f2VPhov0DyC6bUjK0AGN" alt=""><figcaption><p>Настройки пути</p></figcaption></figure></div>

* ***URL или путь на сервере*** *- url адрес к файлу (например внешний сайт* `https://site.ru/file.csv` *или файл на вашем же сервере* `/upload/file.csv`*)*

## <mark style="background-color:yellow;">Почта</mark>

Загружает файл импорта из почты по IMAP

<div data-full-width="true"><figure><img src="/files/MaNww0NDTEhHXnaF2p7X" alt=""><figcaption><p>Настройки почты</p></figcaption></figure></div>

* ***Адрес сервера*** *- адрес серера почты (например для Яндекс* `imap.yandex.ru`*)*
* ***IMAP порт** - порт соединения (например для Яндекс* `993`*)*
* ***Имя пользователя** - имя пользователя почты (например для Яндекс* `price@mysite.ru`*)*
* ***Пароль** - пароль пользвателя почты (например пароль от почты или пароль приложения)*
* ***Email отправителя*** - почта отправителя, по которой будет отбор писем
* ***Имя папки в почте*** - название  папки почты откуда брать письма (по умолчанию это корень), для скорости загрузки, прайсы лучше складывать каждый в свою папку поставщика

## <mark style="background-color:red;">FTP</mark>

Загружает файл импорта по FTP

<div data-full-width="true"><figure><img src="/files/faLHVT1FdOzyNdkTznxW" alt=""><figcaption><p>Настройки FTP</p></figcaption></figure></div>

* ***Имя хоста*** *- адрес хоста (IP или домен без протокола)*
* ***Порт** - порт соединения (например* `21`*)*
* ***Имя пользователя** - логин для авторизации*
* ***Пароль** - пароль для авторизации*
* ***Имя папки*** - название папки соединения (по умолчанию это корень)
* ***Имя файла*** - название файла для скачивания

## <mark style="background-color:blue;">API</mark>

Пользовательская загрузка файла импорта через Ваш обработчик (для API не используются настройки типа файла)

<div data-full-width="true"><figure><img src="/files/K4rz9LaGpxaRfafV7HvM" alt=""><figcaption><p>Настройки API</p></figcaption></figure></div>

{% code lineNumbers="true" fullWidth="true" %}

```php
<?php

class ASMP_MegaImport_Handler7 extends ASMP_MegaImport_Controller
{
	public function getItems()
	{
	    // указываем какие поля обновляем
	    $this->updateFields = array(
		0 => array(
			'name' => 1, // обновляем всегда
			'image' => 2, // обновляем если не заполнено
			'props' => 1, // обновляем всегда
		)
	    );
	
	    // тут ваша логика получения данных из сервиса
	    $oCore_Http = Core_Http::instance()
		->url($this->path)
		->method('GET')
		->timeout(10)
		->execute();
		
	    $data = json_decode($oCore_Http->getDecompressedBody());
	
	    if(is_object($data) && isset($data->products))
	    {
		 foreach ($data->products as $product)
		 {
		      $oObject = new StdClass();
		      $oObject->marking = $product->code;
		      $oObject->name = $product->name;
		      $oObject->producer = 'Samsung';
		      
		      // добавление доп. свойства
		      $oParam = new StdClass();
		      $oParam->id = 123; // или $oParam->name = "Цвет";
		      $oParam->value = $product->color;
		
		      $oObject->props[] = $oParam;
	              
		      // добавление изображения
		      $oObject->image[] = $product->image;
		      
		      // import
		      $oShop_Item = $this->_importItem($oObject, $product);

		      if($oShop_Item === FALSE)
			   return $this;
			
		      !is_null($oShop_Item) && $this->total++;
			
		      if($this->debug && $this->total >= $this->_debugLimit)
			   break;
		 }
	    }
	
	    $message = sprintf('%s: total %d', __FUNCTION__, $this->total);

	    ASMP_MegaImport_Log_Controller::instance()
		->status(ASMP_MegaImport_Log_Controller::$MESSAGE)
		->entity($this->ASMP_MegaImport_Log)
		->write($message);

	    return FALSE;
	}
}
```

{% endcode %}
