Перейти к содержанию

Рекомендуемые сообщения

Немного предыстории.

Есть работающая версия выгрузки из 1С 8.3 УТ 10.3 в Opencart 1.4.1.5 (если версию не путаю). Делал ее не сам, поэтому столкнулся с рядом проблем на этапе выгрузки категорий, после перехода на последнюю версию Opencart 2.1.0.2.

 

А именно. После выгрузки категорий магазин не понимает структуры категорий. Это конечно лечиться кнопкой "Починить" в админке, но хотелось бы заливать изначально уже верные категории.

 

Сначала разберемся в структуре таблиц. За структуру вложенности если я правильно понял отвечает:

category_path, где:

  category_id - код категории, который берем из 1С.

  path_id - параметр, который отвечает за вложенность категорий.

  level - не разобрался что это.

 

Кусок кода, который отвечает за выгрузку данной таблицы:

Соединение.Execute("INSERT INTO `category_path` (`category_id`, `path_id`, `level`)
| VALUES ('"+Код+"', '"+РодительКод+"', 0)
| ON DUPLICATE KEY UPDATE path_id='"+РодительКод+"'");

То есть на этом этапе мы получаем примерно следующее:

post-671624-0-23956900-1457521282_thumb.jpg

 

Категория с кодом 1 является родительской и имеет path_id равный 0.

Категория с кодом 3 является родительской и имеет path_id равный 0. И т.д.

А категория с кодом 9 является вложенной и имеет path_id равный 3.

 

Тут вроде бы все понятно, но при выгрузке категории не воспринимаются. После починки мы видим:

post-671624-0-04157700-1457521541_thumb.jpg

Категория с кодом 1 является родительской и получила path_id равный 1.

Категория с кодом 3 является родительской и получила path_id равный 3. И т.д.

А категория с кодом 9 является вложенной и имеет path_id равный 9 и level равны 1.

Так же категория с кодом 9 является вложенной и имеет path_id равный 3 и level равны 0.

 

Мог бы кто нибудь объяснить принцип формирования таблиц?

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

 

 

 

  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного разобрался в структуре.

category_id - код категории

path_id - код категории в которую вложена данная категория

level - уровень глубины категории.

 

Т.е. имеем например:

category_id - 3 / path_id - 3 / level - 0 - это у нас корневая категория

category_id - 9 / path_id - 3 / level - 0 - это категория вложенная в категорию с кодом 3

category_id - 9 / path_id - 9 / level - 1 - это та же самая категория, но повторно объявляется, что она так же является корневой.

 

Завтра попробую наладить выгрузку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.