WooCommerce, Шаблоны Google Sheets

Импорт Вариативных товаров в WooCommerce

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

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

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

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

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

О том, как правильно обрабатывать картинки для товаров в интернет-магазине WooCommerce

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

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

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

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

Импорт главной карточки может идти по 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.

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

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

Обратно ко всем статьям.

Комментарии к статье: “Импорт Вариативных товаров в WooCommerce

  1. Максим:

    Как добавить свои атрибуты (т.е. добавить ячейки)

    1. Воспользоваться алгоритмом из статьи.

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

Ваш адрес email не будет опубликован.