WP All Import

12
T
На сайте с 24.07.2008
Offline
132
1225

Задача:

есть xml файл категорий товаров, необходимо их залить в WP Woocommerce.

Категории имеют иерархию, пример xml:


<category id="10077">Одежда</category>
<category parentId="10077" id="10078">Футболки</category>

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

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

Делаем импорт, категории импортируются, но в процессе импорта категориям присваивается новый ПОРЯДКОВЫЙ номер ID, из-за чего вся иерархия категорий идёт под хвост коту. А их больше двух тысяч и исправлять всё руками смысла нет.

Подскажите пожалуйста, может быть есть возможность заставить WP присваивать нужный ID записям?

SeVlad
На сайте с 03.11.2008
Offline
1609
#1
Tempter:
Подскажите пожалуйста, может быть есть возможность заставить WP присваивать нужный ID записям?

ID - это ссурогатный ключ, который автоматически генерится.

Синхронизируй не по ID, а по др полям. SСU напр.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
T
На сайте с 24.07.2008
Offline
132
#2

У категорий нет SCU

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
Tempter:
У категорий нет SCU

Так ты импортируй ТОВАРЫ. Они в категориях.

T
На сайте с 24.07.2008
Offline
132
#4

Товары связываются с категориями по тем же ID о которых идёт речь:


<offer type="vendor.model" id="14" available="true">
<url>----</url>
<price>297</price>
<currencyId>RUB</currencyId>
<categoryId>963</categoryId>
<delivery>true</delivery>
<vendor>Спортмастер</vendor>
<model>Футболка Denim Sport Желтая</model>
<vendorCode>4519746743234</vendorCode>
<picture>---</picture>
<manufacturer_warranty>true</manufacturer_warranty>
<pickup>true</pickup>
<store>true</store>
<productInStock label="На складе.">3</productInStock>
</offer>

залью я товары с несуществующими categoryId, и чем мне это поможет?

Походу без лазанья в MySQL на прямую не обойтись (((

SeVlad
На сайте с 03.11.2008
Offline
1609
#5

Tempter, мне кацца ты не верно понимаешь логику/архитектуру ВП и WC соответственно.

См. Тут не линейная иерархия сущностей (категория->подкатегория->товар), а всё крутится вокруг одной, основной сущности. Это пост (товар в WC). Всё остальное - это его "свойства" (таксономии если говорить о категориях товара).

Tempter:
залью я товары с несуществующими categoryId, и чем мне это поможет?

Ещё раз - не по ID нужно синхронизировать, а по др. полям. Что мешает прямо по названию это сделать?

В общем тебе для начала нужно преобразовать файл импорта.

---------- Добавлено 02.07.2019 в 21:46 ----------

Хотя.. тут мысля мелькнула - возможно можно через доп поля (куда занести categoryId) сделать..

Но это надо на свежую голову думать ;)

T
На сайте с 24.07.2008
Offline
132
#6

Ага, я тоже не рискую сегодня в базу лезть, но идея такая:

сейчас я залил все категории с помощью плагина в вп и нужный мне ID сохранил как мета данные для каждой записи (доп.поле).

Завтра залезу в mysql и запросом из этого доп.поля изменю id каждой категории. По идее должно сработать :)))

S
На сайте с 30.09.2016
Offline
469
#7
Tempter:
изменю id каждой категории. По идее должно сработать

Только не забудь, что id уникален, и нельзя записать значение id, если таковое уже существует.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
SeVlad
На сайте с 03.11.2008
Offline
1609
#8
Tempter:
залезу в mysql и запросом из этого доп.поля изменю id каждой категории. По идее должно сработать

Это на 99,9% надёжный способ, чтобы поломать сайт :)

ES
На сайте с 02.12.2020
Offline
0
#9
Tempter #:

Товары связываются с категориями по тем же ID о которых идёт речь:

залью я товары с несуществующими categoryId, и чем мне это поможет?

Походу без лазанья в MySQL на прямую не обойтись (((

Подскажите удалось решить проблему . Столнулась с такой же нигде не могу найти решения .

Александр
На сайте с 18.03.2020
Offline
144
#10

Чтобы не плодить темы, тоже задам вопрос:

Как мы знаем, при импорте пула товаров через встроенный импорт/экспорт, можно прогрузить, буквально, все. Но после импорта, приходится менять УРЛ с кирилицы на транслит.

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

Как называется переменная УРЛ товаров WP WooCommerce? На гитхабе не нашел, может есть тут знатоки?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий