WP All Import


Tempter
840

Задача:

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

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


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

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

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

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

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


SeVlad

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

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

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


Tempter

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


SeVlad

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

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


Tempter

Товары связываются с категориями по тем же 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

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

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

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

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

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

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

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

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


Tempter

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

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

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


Sitealert

Tempter:
изменю id каждой категории. По идее должно сработать

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


SeVlad

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

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


ElenaStanislavna

Tempter #:

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

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

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

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


Solunsun

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

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

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

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

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

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