WooCommerce, Шаблоны Google Sheets

Массовый импорт Вариативных товаров

Массовый импорт вариативных товаров в Woocommerce

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

Woocommerce экспортирует данные логически занимая свободные ячейки, что визуально — совсем неудобно.

Обработка картинок к товарам

  1. С самого начала обрабатываем картинки к нашим будущим вариациям. Сжимаем любой онлайн программой.
  2. Формируем одинаковую длину и ширину (чтобы картинки были квадратными).
  3. Даем картинкам транслитированные чпу названия, через дефисы.
  4. Импортируем картинки в медиабиблиотеку.
  5. Заполняем alt и title картинок.

Формируем понятную структуру шаблона для импорта вариативных товаров

Процесс импорта вариативных товаров в интернет-магазинe на wordpress происходит в 2 этапа:

  1. Импорт головной карточки.
  2. Импорт вариаций головной карточки.

Для начала нужно привести все в обычную структурированную информационную среду (пример файла склада). Вид может быть какой угодно, лишь бы было откуда извлекать информацию во вкладки для импорта.

Импорт главной карточки может идти по 2м сценариям:

а) Когда SKU (артикул) карточки товара присваивается головной маске, а все вариации (к примеру, цвет/размер/модель…) будут идти под своими ID в рамках одного SKU (артикула).

б) Когда головная маска импортируется без SKU (артикула), а вариации имеют свой SKU.

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

Внутри рабочей среды склада формируем шаблон, где все атрибуты будут вкладываться маске вариативного товара. На примере головной карточке присвоены разнообразные свойства, такие как: Тип (variable), общее название карточки, габариты упаковки, категория, описание и прочая информация.

Сами варианты (вариации: цвет/размер/модель…) будут иметь лишь фиксированные варианты атрибута. На примере — вариациям присвоены SKU, Название по цветам, Цена, Ссылка на картинку, Цвет и т.д.

Импорт variable маски вариативной карточки

Вся идея заключается в автоматической сортировке информации по вкладкам. В первой части импорта импортируется variable часть карточки со всеми присвоенными атрибутами и свойствами.

Чтобы реализовать такой конфигуратор, нам потребуется прописать формулы:

Ячейка A1: =ЕСЛИ(A2=»»;»»;»Type»)
Ячейка A2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!B:B;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!B:B);»»);’Данные’!A2));»»)
Ячейка B1: =ЕСЛИ(B2=»»;»»;»ID»)
Ячейка B2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!D:D;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!D:D);»»);’Данные’!A2));»»)
Ячейка C1: =ЕСЛИ(C2=»»;»»;»SKU»)
Ячейка C2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!C:C;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!C:C);»»);’Данные’!A2));»»)
Ячейка D1: =ЕСЛИ(D2=»»;»»;»Name»)
Ячейка D2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!E:E;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!E:E);»»);’Данные’!A2));»»)
Ячейка E1: =ЕСЛИ(E2=»»;»»;»Published»)
Ячейка E2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!G:G;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!G:G);»»);’Данные’!A2));»»)
Ячейка F1: =ЕСЛИ(F2=»»;»»;»Short description»)
Ячейка F2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!Q:Q;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!Q:Q);»»);’Данные’!A2));»»)
Ячейка G1: =ЕСЛИ(G2=»»;»»;»Description»)
Ячейка G2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!R:R;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!R:R);»»);’Данные’!A2));»»)
Ячейка H1: =ЕСЛИ(H2=»»;»»;»In stock?»)
Ячейка H2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!F:F;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!F:F);»»);’Данные’!A2));»»)
Ячейка I1: =ЕСЛИ(I2=»»;»»;»Weight»)
Ячейка I2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!J:J;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!J:J);»»);’Данные’!A2));»»)
Ячейка J1: =ЕСЛИ(J2=»»;»»;»Length»)
Ячейка J2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!K:K;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!K:K);»»);’Данные’!A2));»»)
Ячейка K1: =ЕСЛИ(K2=»»;»»;»Width»)
Ячейка K2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!L:L;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!L:L);»»);’Данные’!A2));»»)
Ячейка L1: =ЕСЛИ(L2=»»;»»;»Height»)
Ячейка L2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!M:M;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!M:M);»»);’Данные’!A2));»»)
Ячейка M1: =ЕСЛИ(M2=»»;»»;»Allow customer reviews?»)
Ячейка M2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!P:P;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!P:P);»»);’Данные’!A2));»»)
Ячейка N1: =ЕСЛИ(N2=»»;»»;»Regular price»)
Ячейка N2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!H:H;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!H:H);»»);’Данные’!A2));»»)
Ячейка O1: =ЕСЛИ(O2=»»;»»;»Sale price»)
Ячейка O2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!I:I;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!I:I);»»);’Данные’!A2));»»)
Ячейка P1: =ЕСЛИ(P2=»»;»»;»Categories»)
Ячейка P2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!N:N;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!N:N);»»);’Данные’!A2));»»)
Ячейка Q1: =ЕСЛИ(Q2=»»;»»;»Tags»)
Ячейка Q2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!O:O;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!O:O);»»);’Данные’!A2));»»)
Ячейка R1: =ЕСЛИ(R2=»»;»»;»Images»)
Ячейка R2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!S:S;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!S:S);»»);’Данные’!A2));»»)
Ячейка S1: =ЕСЛИ(S2=»»;»»;»Upsells»)
Ячейка S2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!T:T;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!T:T);»»);’Данные’!A2));»»)
Ячейка T1: =ЕСЛИ(T2=»»;»»;»Cross-sells»)
Ячейка T2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!U:U;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!U:U);»»);’Данные’!A2));»»)
Ячейка U1: =ЕСЛИОШИБКА(ЕСЛИ(И(U2=»»;U3=»»);»»;»Attribute 1 Name»);»»)
Ячейка U2: =ЕСЛИОШИБКА(ЕСЛИ(ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!V:V;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!V:V);»»);’Данные’!A2));»»)=»»;»»;’Данные’!$V$1);»»)
Ячейка V1: =ЕСЛИ(U1=»»;»»;»Attribute 1 Value(s)»)
Ячейка V2: =ЕСЛИОШИБКА(ЕСЛИ(ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!V:V;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!V:V);»»);’Данные’!A2));»»)=»»;»»;’Данные’!$V$1);»»)
Ячейка W1: =ЕСЛИ(U1=»»;»»;»Attribute 1 Visible»)
Ячейка W2: =ЕСЛИ(U2=»»;»»;1)
Ячейка X1: =ЕСЛИ(U1=»»;»»;»Attribute 1 Global»)
Ячейка X2: =ЕСЛИ(U2=»»;»»;1)
Ячейка Y1: =ЕСЛИОШИБКА(ЕСЛИ(И(Y2=»»;Y3=»»);»»;»Attribute 2 Name»);»»)
Ячейка Y2: =ЕСЛИОШИБКА(ЕСЛИ(ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!W:W;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!W:W);»»);’Данные’!A2));»»)=»»;»»;’Данные’!$W$1);»»)
Ячейка Z1: =ЕСЛИ(Y1=»»;»»;»Attribute 2 Value(s)»)
Ячейка Z2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!W:W;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variable»;СТРОКА(‘Данные’!W:W);»»);’Данные’!A2));»»)
Ячейка AA1: =ЕСЛИ(Y1=»»;»»;»Attribute 2 Visible»)
Ячейка AA2: =ЕСЛИ(Y2=»»;»»;1)
Ячейка AB1: =ЕСЛИ(Y1=»»;»»;»Attribute 2 Global»)
Ячейка AB2: =ЕСЛИ(Y2=»»;»»;1)
Ячейка AC1: =ЕСЛИ(Y1=»»;»»;»Attribute 2 default»)
Ячейка AC2: =ЕСЛИ(Y2=»»;»»;ЕСЛИОШИБКА(ЛЕВСИМВ(СЖПРОБЕЛЫ(Z2);ПОИСК(«,»;СЖПРОБЕЛЫ(Z2))-1);СЖПРОБЕЛЫ(Z2)))

Скачиваем данную вкладку в расширении CSV и импортируем через встроенный импортер WooCommerce.

После того, как карточки импортировались, нужно в каждой активировать функцию «используется для вариаций» (если у вас url атрибутов на кириллице)

Это самый каверзный процесс из всего импорта.
Не забываем в головных карточках изменять ярлыки на транслитированные (чтобы в url не было кириллицы) если у Вас не установлен плагин Cyr-To-Lat.

Импорт Variation части вариативного товара

Во вкладке для вариаций автоматически сформирован список вариаций к маскам, импортируемым в первом шаге, через формулы следующего вида:

Ячейка A1: =ЕСЛИ(A2=»»;»»;»Type»)
Ячейка A2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!B:B;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variation»;СТРОКА(‘Данные’!B:B);»»);’Данные’!A2));»»)
Ячейка B1: =ЕСЛИ(B2=»»;»»;»SKU»)
Ячейка B2: =ЕСЛИОШИБКА(ИНДЕКС(‘Данные’!C:C;НАИМЕНЬШИЙ(ЕСЛИ(‘Данные’!B:B=»variation»;СТРОКА(‘Данные’!C:C);»»);’Данные’!A2));»»)
Ячейка C1: =ЕСЛИ(C2=»»;»»;»Name»)
Ячейка C2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:E;3;0);»»)&» — «&V2)
Ячейка D1: =ЕСЛИ(D2=»»;»»;»Parent»)
Ячейка D2: =ЕСЛИ(‘Данные’!D2=»»;»»;ЕСЛИ(‘Импорт main’!C2=»»;ЕСЛИ(A2=»»;»»;»id:»&ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:D;2;0);»»));’Импорт main’!C2))
Ячейка E1: =ЕСЛИ(E2=»»;»»;»Regular Price»)
Ячейка E2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:H;6;0);»»))
Ячейка F1: =ЕСЛИ(F2=»»;»»;»Sale price»)
Ячейка F2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:I;7;0);»»))
Ячейка G1: =ЕСЛИ(G2=»»;»»;»Published»)
Ячейка G2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:G;5;0);»»))
Ячейка H1: =ЕСЛИ(H2=»»;»»;»In stock?»)
Ячейка H2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:F;4;0);»»))
Ячейка I1: =ЕСЛИ(I2=»»;»»;»Short description»)
Ячейка I2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:Q;15;0);»»))
Ячейка J1: =ЕСЛИ(J2=»»;»»;»Description»)
Ячейка J2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:R;16;0);»»))
Ячейка K1: =ЕСЛИ(K2=»»;»»;»Weight»)
Ячейка K2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:J;8;0);»»))
Ячейка L1: =ЕСЛИ(L2=»»;»»;»Length»)
Ячейка L2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:K;9;0);»»))
Ячейка M1: =ЕСЛИ(M2=»»;»»;»Width»)
Ячейка M2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:L;10;0);»»))
Ячейка N1: =ЕСЛИ(N2=»»;»»;»Height»)
Ячейка N2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:M;11;0);»»))
Ячейка O1: =ЕСЛИ(O2=»»;»»;»Allow customer reviews?»)
Ячейка O2: =ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:P;14;0);»»))
Ячейка P1: =ЕСЛИ(P2=»»;»»;»Images»)
Ячейка P2: =ЕСЛИ(A2<>»»;ЕСЛИОШИБКА(ЛЕВСИМВ(СЖПРОБЕЛЫ(ВПР(B2;’Данные’!C:S;17;0));ПОИСК(«,»;СЖПРОБЕЛЫ(ВПР(B2;’Данные’!C:S;17;0)))-1);СЖПРОБЕЛЫ(ВПР(B2;’Данные’!C:S;17;0)));»»)
Ячейка Q1: =ЕСЛИ(Q2=»»;»»;»Attribute 1 Name»)
Ячейка Q2: =ЕСЛИ(ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:V;20;0);»»))=»»;»»;’Данные’!$V$1)
Ячейка R1: =ЕСЛИ(Q1=»»;»»;»Attribute 1 Value(s)»)
Ячейка R2: =ЕСЛИ(Q2=»»;»»;ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:V;20;0);»»)))
Ячейка S1: =ЕСЛИ(Q1=»»;»»;»Attribute 1 Visible»)
Ячейка S2: =ЕСЛИ(Q2=»»;»»;1)
Ячейка T1: =ЕСЛИ(Q1=»»;»»;»Attribute 1 Global»)
Ячейка T2: =ЕСЛИ(Q2=»»;»»;1)
Ячейка U1: =ЕСЛИ(U2=»»;»»;»Attribute 2 Name»)
Ячейка U2: =ЕСЛИ(ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:W;21;0);»»))=»»;»»;’Данные’!$W$1)
Ячейка V1: =ЕСЛИ(U1=»»;»»;»Attribute 2 Value(s)»)
Ячейка V2: =ЕСЛИ(U2=»»;»»;ЕСЛИ(A2=»»;»»;ЕСЛИОШИБКА(ВПР(B2;’Данные’!C:W;21;0);»»)))
Ячейка W1: =ЕСЛИ(ИЛИ(U1=»»;W2=»»);»»;»Attribute 2 Visible»)
Ячейка W2: =ЕСЛИ(U2=»»;»»;ЕСЛИ(U2=»Цвет»;»»;1))
Ячейка X1: =ЕСЛИ(U1=»»;»»;»Attribute 2 Global»)
Ячейка X2: =ЕСЛИ(U2=»»;»»;1)

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

Перед началом процесса второй части импорта, нужно проставить присвоенные системой woocommerce ID головных карточек в ячейки перед вариациями, относящимися к головной карточке во вкладке «Данные».

Прописав ID, скачиваем файл (вкладку «Импорт Variation») в расширении CSV и импортируем через встроенную функцию импорта WooCommerce.

Названия полей взяты из статьи на Github.

Пример импортируемой карточки с вариативным товаром из статьи.

Пожалуйста, не забудьте подписаться на мой канал на Youtube, вам совершенно не сложно, а мне — мотивация продолжать разрабатывать файлы!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *