В любом случае CSV будет накладывать свои ограничения.
И основное из них - это двумерная таблица (колонки x столбцы).
И все бы хорошо для простых полей, пока мы не пытаемся затолкать туда чуть больше чем просто строку.
Например - путь до картинки - без проблем даже для множественного поля.
А вот путь до картинки, где есть описание, alt, title и так чтобы множественное - уже большой вопрос.
Когда мы говорим о цене, то перед разработчиками встает головная боль, как вот это
<?php
$varName = array(
'8ab2212c-520a-4b65-a4a4-8d093aea1744' => array(
'variations' => array(
0 => array(
'_value' => array(
'value' => '10 usd',
),
'_sku' => array(
'value' => 'tshirt-first-base',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
),
1 => array(
'_value' => array(
'value' => '15 eur',
),
'_sku' => array(
'value' => 'tshirt-first-black-s',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-black.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 's',
),
),
2 => array(
'_value' => array(
'value' => '15 eur',
),
'_sku' => array(
'value' => 'tshirt-first-white-s',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 's',
),
),
3 => array(
'_value' => array(
'value' => '20 usd',
),
'_sku' => array(
'value' => 'tshirt-first-black-m',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-black.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'm',
),
),
4 => array(
'_value' => array(
'value' => '20 eur',
),
'_sku' => array(
'value' => 'tshirt-first-white-m',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'm',
),
),
5 => array(
'_value' => array(
'value' => '25 eur',
),
'_sku' => array(
'value' => 'tshirt-first-black-l',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-black.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'l',
),
),
6 => array(
'_value' => array(
'value' => '25 eur',
),
'_sku' => array(
'value' => 'tshirt-first-white-l',
),
'_balance' => array(
'value' => '-1',
'_basic' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'l',
),
),
7 => array(
'_value' => array(
'value' => '30 eur',
),
'_sku' => array(
'value' => 'tshirt-first-black-x',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-black.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'x',
),
),
8 => array(
'_value' => array(
'value' => '30 eur',
),
'_sku' => array(
'value' => 'tshirt-first-white-x',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'x',
),
),
9 => array(
'_value' => array(
'value' => '35 eur',
),
'_sku' => array(
'value' => 'tshirt-first-black-xl',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-black.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'xl',
),
),
10 => array(
'_value' => array(
'value' => '35 eur',
),
'_sku' => array(
'value' => 'tshirt-first-white-xl',
),
'_balance' => array(
'value' => '-1',
),
'_discount' => array(
'value' => '0 eur',
),
'_image' => array(
'value' => 'images/tshirt-white.png',
),
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'xl',
),
),
),
'values' => array(
1 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 's',
),
),
2 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 's',
),
),
3 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'm',
),
),
4 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'm',
),
),
5 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'l',
),
),
6 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'l',
),
),
7 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'x',
),
),
8 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'x',
),
),
9 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'черный',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'xl',
),
),
10 => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'value' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
'value' => 'xl',
),
),
),
'selected' => array(
'61ea0db8-ad23-4dd2-a2dc-d2f38c5cc970' => array(
'черный' => 'черный',
'белый' => 'белый',
),
'621c68de-a995-4302-acc6-543596657cf5' => array(
's' => 's',
'm' => 'm',
'l' => 'l',
'x' => 'x',
'xl' => 'xl',
),
),
'default_variant' => '6',
),
);
Затолкать в CSV и всем угодить
Этот код не с потолка. Это простейшая футболка №1 с бета сайта.
И тут есть небольшое но крайне важное условие. Импорт должен без проблем распознать каждое поле и положить его в нужную вариацию.
Шаг в право-влево => Расстрел на месте
Пока что положить каждое поле вариации в отдельную ячейку CSV - не вариант.
PS Формулы очень удобная вещь, яб сказал это минимум необходимый для пользования таблицами.
А мой скромный опыт говорит, что 1С может в любом формате загружать и выгружать данные. Вот только 1С-ники ленятся...