Помощь Импорт и экспорт в Magento 2

Какие средства используете для импорта-экспорта в Magento 2?


  • Всего проголосовало
    21

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
153
Всем привет! Предлагаю в этой ветке делиться опытом и решением задач, связанных с импортом-экспортом в Magento 2.
 

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
153
Возникла проблема со стандартным импортом, полностью проходит проверку, импортирует без ошибок, но товары не появляются на фронтенде, крон откразывается работать после импорта.
В админке висит сообщение о том, что нужно сделать реиндекс или включить крон.

20 пользовательских атрибуты добавлял в колонку additional_attributes:
Код:
brend=Имя,strana=Китай,stil=,vysota=550,shirina=550,diametr=250,tip_=E14,tsvet_stola=Хром|Белый/Коричневый
Фигурирует множественный выбор: Хром|Белый/Коричневый
Прочитав скудную документацию Для просмотра ссылки Войди или Зарегистрируйся и вопросы на гитхабе решения точного не было найдена по поводу:
1 Знаки разделения в админке оба стоят по умолчанию ",". В файле CSV тоже, только данные с множественным выбором разделены "|".
2 В админке Fields enclosure галочку не ставлю. (с ней вылазят ошибки) Информации о ней вообще не нашёл, для чего она нужна.
3 Не ставил в колонке additional_attributes: has_options=0,required_options=0 (тоже ни одного упоминания понятного для чего они нужны) 0 - для простого продукта, 1 - для настраиваемого, резонный вопрос: это нужно для каждого атрибута в линии или вообще можно не ставить это?
 
Последнее редактирование:

alex_me

Постоялец
Регистрация
25 Янв 2017
Сообщения
172
Реакции
130
Сначала лучше все же переиндексировать

php magento indexer:reindex

а потом починить cron, если проблема с ним
 

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
153
Реиндекс сейчас автоматический с двумя режимами: по расписанию (каждую минуту) и при обновлении и сохранении. То есть теперь нет необходимости делать его через консоль. В админке вы можете только выбрать более подходящий вариант.

Все пользовательские атрибуты в Magento 2 помещаются не в отдельные слоты, а в один additional_attributes.

Путём различных вариаций, так как нет вменяемой документации, определил корректные настройки для импорта:

В админ-панели оставляем по умолчанию:
Field separator - ,
Multiple value separator - ,
Fields enclosure - НЕ ставим галочку.
Этот параметр только для пользовательских аттрибутов во вкладке additional_attributes. Он говорит, что каждое значение лежит в кавычках.

Пример:

custom_attribute_1="Стальной",custom_attribute_2="Круг"|"Квадрат"|"Эллипс"

Но эта функция не нужна и ваша вкладка будет выглядеть так:

custom_attribute_1=Стальной,custom_attribute_2=Круг|Квадрат|Эллипс

Множественный выбор именно для additional_attributes разделяется трубой "|".
Не смотря на то, что вы увидите в официальной документации разделение категорий тоже трубой, это неправильно сейчас! Только пользовательские атрибуты с множественным выбором во вкладке additional_attributes.

Важный момент, все атрибуты во вкладке additional_attributes должны быть по алфавиту. Иначе крон и реиндекс не будет работать после импорта.

Не должно быть пустых значений в additional_attributes (этот момент не точен).

custom_attribute_1=,custom_attribute_2=Круг|Квадрат|Эллипс

PS Стандартный импорт очень хорош тем, что проверяет и выявляет большинство косяков в CSV файле и покажет для какого продукта не найдены изображения.
 
Последнее редактирование:

GataBon

Писатель
Регистрация
26 Июн 2017
Сообщения
2
Реакции
0
Prevet vseme ja neruske nu chetajo po ruske nu not peshat neochen.
Hi everyone I'm not Russian, I can read Russian but writing is problem for me.

Eta tolka export paka nu sdelaju i import jesle kamu nebut enteresna.
Eta tolko nacheal patom mozhete raseret.

This is only export at the moment I will make import if anyone interested
This is only starting point which you can expand.


Mne nekagda neravewlos magento export/import dle etava ja vsegda delal scodam po bolshe vazmozhnaste tak
I newer liked magento import/export for that reson I always make code to do so

A pervich me sdelaiem nash malenke app shto bab patkliuchetsa v magento
We will make small conection app to magento


Dle etava nam nuzhno sdelat Novaju papku e php document
For that we will need to make new folder with php file inside

MagentoROOT/scripts/abstract.php


Nutre php documente me palazhem etat script (mnoga abesnet nu jesle vaprosafr jes pazhalsta)
Iside php file we eill paste this script ( alot to explain here but if you have any quastions please ask)

Код:
<?php
use \Magento\Framework\AppInterface as AppInterface;
use \Magento\Framework\App\Http as Http;

use Magento\Framework\ObjectManager\ConfigLoaderInterface;
use Magento\Framework\App\Request\Http as RequestHttp;
use Magento\Framework\App\Response\Http as ResponseHttp;
use Magento\Framework\Event;
use Magento\Framework\Filesystem;
use Magento\Framework\App\AreaList as AreaList;
use Magento\Framework\App\State as State;

abstract class AbstractApp implements AppInterface
{
    public function __construct(
        \Magento\Framework\ObjectManagerInterface $objectManager,
        Event\Manager $eventManager,
        AreaList $areaList,
        RequestHttp $request,
        ResponseHttp $response,
        ConfigLoaderInterface $configLoader,
        State $state,
        Filesystem $filesystem,
        \Magento\Framework\Registry $registry
    ) {
        $this->_objectManager = $objectManager;
        $this->_eventManager = $eventManager;
        $this->_areaList = $areaList;
        $this->_request = $request;
        $this->_response = $response;
        $this->_configLoader = $configLoader;
        $this->_state = $state;
        $this->_filesystem = $filesystem;
        $this->registry = $registry;
    }

    public function launch()
    {
        $this->run();
        return $this->_response;
    }

    abstract public function run();

    public function catchException(\Magento\Framework\App\Bootstrap $bootstrap, \Exception $exception)
    {
        return false;
    }
}

?>

A teper nam nuzan file catori budet paselat vapros iz nash nowe document abstract.php ( mozhat bet zapros zakazos producta i neskalko eschio veshe) na etat ras tolka producta exporta
Now we need other fille which will be requesting data from our abstract.php ( that can be used to request orders or products few things more to) for this time only products export


Novi documnet buded v papke MagentoROOT/scripts/index.php
New document will be made MagentoROOT/scripts/index.php


Nutre php documente me palazhem etat script (mnoga abesnet nu jesle vaprosafr jes pazhalsta)
Iside php file we eill paste this script ( alot to explain here but if you have any quastions please ask)


Код:
<?php
require dirname(__FILE__) . '/../app/bootstrap.php';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
require dirname(__FILE__) . '/abstract.php';

class Getapp extends AbstractApp
{

    public function run()
    {
        $this->_objectManager->get('Magento\Framework\Registry')->register('isSecureArea', true);
        $this->_state->setAreaCode('frontend');


        $_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $productCollection = $_objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');

        $collection = $productCollection->create()
                ->addAttributeToSelect('*')
                ->load();
       

        $data= "Product ID, Product Name, Product Weight\n";
        $i =1;

        foreach ($collection as $product){
           
        //nam nuzhno sdelat array ez date  = making arry from data
           
            $data .= $product->getId().",";
            $data .= $product->getName().",".$product->getWeight().",".$product->getPrice();
            $data .="\n";
                    $i++;


        } 

           
            //a teper delaem csv iz date / Time to make csv with data

            header("Content-Type: application/csv");
            $csv_filename = 'data.xlsx';
            header("Content-Disposition:attachment;filename=".$csv_filename);
            $fd = fopen ($csv_filename, "w");
            fputs($fd,$data);
            fclose($fd);
            echo $data;
            die();

        }
}

/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Getapp');
$bootstrap->run($app);
?>

Test prashol pered Magento ver. 2.1.7
Test was done on Magento ver. 2.1.7
 

alex_me

Постоялец
Регистрация
25 Янв 2017
Сообщения
172
Реакции
130
Why app ?
Console command is just what you need for such task:
Для просмотра ссылки Войди или Зарегистрируйся

Sample command template from Magento developers:
Для просмотра ссылки Войди или Зарегистрируйся

There is very cool solution to write custom import/export commands:
Ready command line interface for import/export: Для просмотра ссылки Войди или Зарегистрируйся
Module that performs import/export: Для просмотра ссылки Войди или Зарегистрируйся

Just modify these two modules for your import/export
For instance, I've modified them to import wordpress caterories/products/reviews/crosssell/upsell using native wordpress xml / cvs export format
 

Kingr

Постоялец
Регистрация
5 Май 2013
Сообщения
97
Реакции
63
Всем привет! Предлагаю в этой ветке делиться опытом и решением задач, связанных с импортом-экспортом в Magento 2.
Рад приветствовать в ответ! Переносил с OsComerce 7000 товаров на Magento 1 (с помощью Magmi), затем с Magento 1 перенес на Magento 2.1.7 (текущая). Пытался разобраться с Data Transfer Tool - не получилось, переносил штатным импортером с помощью CSV формата. Атрибутов у товаров было мало, поэтому было проще. Буду рад обсуждению всего, что связанно с Маджентой 2.
 

NapoleON_OFF

Постоялец
Регистрация
7 Май 2009
Сообщения
63
Реакции
67
На Magento2, так же как и на Magento1,с импортом отлично справляется Magmi. Любые атрибуты, вариации, несколько фото, сопутка, рекомендуемые товары.....
 

FalconX

Постоялец
Регистрация
2 Янв 2017
Сообщения
43
Реакции
60
Magmi без проблем работает с Magento2 ??? Разработчик вроде только этим летом выпустил релиз для Magento2.
 

webandr84

Создатель
Регистрация
2 Дек 2013
Сообщения
23
Реакции
3
А никто не делал импорт експорт через REST API? Нужно сделать интеграцию магазина с 1С, и вот подумал сделать это через API но пока даже не знаю в какую сторону копать
 
Сверху