# Тип импорта

## <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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.morozovpimnev.ru/megaimport/dobavlenie-importa/vkladka-osnovnye/tip-importa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
