Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.
Форум  ->   Интернет Магазин  ->  Экспорт/Импорт подвидов товара


Показать все сообщения в этой ветке


Добавлено: 11.05.11 08:30:20  




Регистрация: 03.07.07
Сообщений: 940


Обратиться по имени

Alex, сразу хочу отметить, что формат файла мы регулярно развиваем, добавляя новые возможности.

Вот формат для 5.10:

ОБЩИЕ ПОЛОЖЕНИЯ.

Файл должен быть в формате csv, разделители ';'.
Содержимое столбцов в файле описывается в специальных строках, там же в файле.
Нулевая колонка файла всегда содержит тип строки. В зависимости от типа, строка обрабатывается различным способом.

ТИПЫ СТРОК В ФАЙЛЕ.

CT - описание столбцов категорий
IT - описание столбцов товаров
ST - описание столбцов подвидов
C - категория
I - товар
S - подвид

ТРЕБОВАНИЯ К НАЛИЧИЮ ПОЛЕЙ.

Категории и товары должны иметь внешние идентификаторы для обмена данными, по которым они однозначно сопоставляются с соответствующим элементом в каталоге.
Категории должны иметь поле с внешним идентификатором родительской категории.

ТРЕБОВАНИЯ К ПОСЛЕДОВАТЕЛЬНОСТИ СТРОК В ФАЙЛЕ.

Описание столбцов должно находиться выше самих элементов.

Описание столбцов может встречаться в любой момент. Новое описание элемента замещает старое, которое было встречено ранее и используется для всех последующих элементов, пока не будет встречено новое описание элемента данного типа.

Категории должны располагаться таким образом, чтобы родительская категория уже существовала на момент импорта категории.

Товары должны располагаться таким образом, чтобы категории, в которых они располагаются, существовали в каталоге на момент импорта товара. То есть, либо данные категории уже существуют в каталоге, либо должны находиться в файле выше чем их товары.

Строки с подвидами должны располагаться непосредственно после товара, к которому они относятся, до следующего товара или категории.

ЛОГИКА ИМПОРТА.

Файл импортируется построчно.

Встречающиеся описания колонок заменяют предыдущие значения.

Категории сопоставляются с существующими категориями по полю id_external.
Если сопоставление не найдено, то категория импортируется как новая.
Родительская категория сопоставляется по ее id_external (столбец id_parent_external).
Если родительская категория не обнаружена, то категория не импортируется.
Если для новой категории не задан набор свойств, или ряд других параметров, то они наследуются от родительской категории.

Товары сопоставляются по id_external.
Категория товара сопоставляется по ее id_external (столбец id_category_external) либо по id_category. Преимущество у id_category_external.
Товары, категории которых неопознанны, не будут импортированы, либо импортируются в категорию по умолчанию (зависит от настроек).
Если категория товара указана, но не опознана, в лог пишется ошибка.
Если присутствует id_category_external, то значение столбца id_category игнорируется.

Подвиды сопоставляются с подвидами данного товара по набору значений свойств.
Подвиды, которых нет в файле, но есть в базе данных, в зависимости от настроек, либо оставляются как есть, либо удаляются, либо им устанавливается остаток 0.
У сопоставленных подвидов обновляются значения цены, остатка, и тп., смотря что есть в файле импорта.
Не сопоставленные подвиды - создаются.

ПОДРОБНЫЙ ФОРМАТ СТРОК.

Строки описаний столбцов должны содержать названия полей таблицы БД соответствующего элемента в соответствующих столбцах файла.
Из этих столбцов файла будут браться значения для полей элемента.


CT - описание столбцов категорий

В нулевом столбце должен содержаться тип строки "CT".

В строке обязательно должен присутствовать столбец id_external.
Если он отсутствует, то импорт последующих строк не производится, пока не будет встречено корректное описание столбцов категорий.
То есть, не импортируется ни сама категория, ни ее товары, ни их подвиды.
В лог выдается сообщение об ошибке.

Кроме названий реальных полей таблицы БД, в строке могут встречаться следующие служебные поля:
id_parent_external - в этом столбце должен содержаться id_external родительской категории.

Если id_parent_external присутствует, то родительская категория сопоставляется по id_parent_external.
Если id_parent_external нет, то сопоставление идет по по id_parent, если id_parent присутствует.
Если в строке нет ни id_parent_external ни id_parent, то категория импортируется как подкатегория в главной категории, а в лог выдается ошибка. Если это обновление категории - то просто родительская категория не изменяется.

Если в описании столбцов отсутствует поле lang, то берется язык данных из текущего окружения модуля. В случае импорта через скрипт импорта, язык должен быть передан GET параметром.
Если язык определить не удалось - используется язык по умолчанию из настроек плагина.

Пример корректной строки описания импортируемых столбцов категории:

CT;id_external;id_parent_external;name;public;announce;description;sublink;ext_picture


C - категория

В нулевом столбце должен содержаться тип строки "C".
В остальных столбцах значения соответствующих полей.

Например, для описания столбцов категории

CT;id_external;id_parent_external;name;public;announce;description;sublink;ext_picture

Строка данных категории может выглядеть так:

"C";"amiro_gen_123";"amiro_gen_122";"Название категории 1";"1";"анонс категории 1";"описание категории 1";"sublink_cat_parent/katalog-igrushek/igrovye-nabory/safsof-tailand";"_mod_files/ce_images/eshop/a-playmobil.gif"


IT - описание столбцов товаров

В нулевом столбце должен содержаться тип строки "IT".

В строке обязательно должен присутствовать столбец id_external.
Если он отсутствует, то товара и его подвидов не производится.
В лог выдается сообщение об ошибке.

Кроме названий реальных полей таблицы БД, в строке могут встречаться следующие служебные поля:
id_category_external - в этом столбце должен содержаться id_external категории элемента.
Если столбец отсутствует, то категория элемента определяется по столбцу id_category.
--В лог выдается предупреждение, что используется ненадежная идентификация категории.
Если столбец id_category_external отсутствует, то категория товаров не изменяется, а новые товары импортируются в категорию по умолчанию.

Пример корректной строки описания импортируемых столбцов товара:
IT;id_external;id_category_external;name;public;announce;description;sublink;ext_picture;custom_field_15;custom_field_16;

I - товар

В нулевом столбце должен содержаться тип строки "I".
В остальных столбцах значения соответствующих полей.

Например, для описания столбцов товара

IT;id_external;id_category_external;name;public;announce;description;sublink;ext_picture;custom_field_15;custom_field_16;

Строка данных может выглядеть так:

"I";"amiro_gen_500";"amiro_gen_123";"Название товара";"1";"анонс товара";"описание товара";"product-link";"_mod_files/ce_images/eshop/a-playmobil.gif";"значение поля 15";"значение поля 16"


ST - описание столбцов подвидов

В нулевом столбце должен содержаться тип строки "ST".

Пример корректной строки описания подвида:

ST;public;prop_14;prop_15;price;rest

S - подвид

В нулевом столбце должен содержаться тип строки "S".
В остальных столбцах значения соответствующих полей.

Например, для описания столбцов товара

ST;public;prop_14;prop_15;price;rest

Строка данных может выглядеть так:

"S";"1";"значение свойства-подвида 14";"значение свойства-подвида 14";"125.50";"10"


ПРИМЕР СОДЕРЖИМОГО ФАЙЛА.

Предполагается, что prop_14, prop_15 - подвиды цвета и размера соответственно.
id_external корневой категории = "_20000"
Amiro_gen_20065 - id_external существующей категории

Содержимое файла:

CT;id_external;id_parent_external;name
C;uz_cat_gen_0;_11111;Категория с неверно указанной родительской
C;uz_cat_gen_1;_20000;Книги
IT;id_external;id_category_external;name;price
I;uz_item_gen1;uz_cat_gen_1;Книга1;100
C;uz_cat_gen_2;Amiro_gen_20065;Футболки
IT;id_external;id_category_external;name;price
I;uz_item_gen2;uz_cat_gen_2;Футболка хб;500
ST;prop_14;prop_15;rest;price
S;черный;XL;5;500
S;белый;XL;4;500
S;красный;XL;6;500
I;uz_item_gen3;Amiro_gen_20065;Накидка;300
S;серый;M;3;300
S;серый;L;3;300
S;серый;XL;3;300
I;uz_item_gen4;Amiro_gen_44444;потеряный;300



Готовые модули для Амиро - от бесплатных модулей до модулей импорта и геотаргетирования
Более 65 модулей, более 1100 внедрений модулей.
0


Создать новую тему Ответить