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

Назначить category_id не по порядку, а согласно XML?

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

Здравствуйте, ребята. Прошу помощи. 

 

Образовалась проблема следующего характера: 

 

Используется модуль для импорта товаров и категорий

anyCSV PRO import export – импорта и экспорта CSV

ссылка на модуль, если понадобится: https://shop.ocext.com/index.php?_route_=obmyen-dannymi/csv-import-export-opencart-modul-importa-i-eksporta-vsyekh-dannykh-dlya-csv

 

Импортируется файл XML , который я прикрепляю к  сообщению.

 

Также фрагмент файла XML, для удобства:

<categories>

			<category id="65">Аксеcсуары</category>
			<category id="71" parentId="65">Бирки</category>
			<category id="111" parentId="65">Брелоки</category>
			<category id="69" parentId="65">Коробочки</category>
			<category id="66" parentId="65">Мешочки</category>
			<category id="70" parentId="65">Подставки</category>
			<category id="110" parentId="65">Помпон</category>
			<category id="120" parentId="65">Сумки</category>
			<category id="68" parentId="65">Шеи</category>
  ...........
  и так далее указаны Категории...... 
  
  Затем в строках товаров указана привязка к конкретной группе
  
  
  Пример:
  
  <offers>
        <offer id="1031973999" available="true" article="031973-999">
          <url>https://sunstones.ua/tovar/kolco-fj-srystal-031973</url>
          <price>150</price>
          <currencyId>UAH</currencyId>
          <categoryId>37</categoryId>
 				<picture>https://sunstones.ua/photo/big/031973.jpg</picture>
 	<name>031973-999 Кольцо 'FJ' Сrystal</name>
          <description><![CDATA[Ширина: 7 мм.<br>
Бренд: FJ<br>
Вес: 2,1 г.<br>
Камень: Сrystal<br>
Материал: Бижутерный сплав<br>
Покрытие: гипоаллергенное]]></description>
          <quantity_in_stock>8</quantity_in_stock>
          <vendor></vendor>
        </offer>

 

 

Предисловие: 

 

Модулем устанавливается два идентификатора

Для категории  category_id

Для товара model

 

Суть проблемы:

 

Во время импорта создаются категории на сайте , но номер  category_id устанавливается для категории по порядку (1,2,3,4 ...), а не такой, как в файле импорта (65, 71, 111). В связи с этим есть две проблемы. 

 

1. Товары попадают не по своим категориям, т.к. товарам назначен номер категории, а он отличается от того, что в файле импорта.

2. При обновлении ассортимента возникнет проблема с идентификацией категорий - создадутся дубли категорий, т.к. номера category_id у них разные.

 

 

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

 

 

yml2.xml

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


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

так у автора спросите

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


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, nikifalex сказал:

так у автора спросите

Это разумеется. У автора "все в порядке" он не видит проблемы или не хочет видеть (узнаю как ответит), кроме того отвечает крайне медленно и не информативно. 

 

Тут вопрос скорее не модуля касается, а самого принципа работы.

 

Я недавний пользователь ocstore и мне важно понимать, как реализовать, чтобы category_id у категории не задавался спонтанно, ведь это идентификатор (не хочу, чтобы это было любое попавшееся число по нарастающей из системы). Если  category_id после импорта отличается от цифры в файле импорта - не будет идентификации в будущем. То есть снова при импорте файла появятся дубли категорий. И так каждый раз из-за несоответствий номера category_id. 

 

Есть вариант делать идентификатором название категории - но это не надежно. Переименовали категорию - и при импорте модуль не увидит такого раздела товаров из-за различий в имени.

 

Кто как это реализует у себя?

 

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


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

Лучший вариант, чтобы в модуле импорта была возможность сопоставления
Категория из прайса -> Категория в базе магазина


Присваивать id категорий в базе также как и в прайсе неверно, т.к. могут быть прайсы разных поставщиков и в этих прайсах совпадать id категорий (хотя сами категории разные)

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


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

ну модуль не прописывет поле category_id при импорте. Это чья бага? Модуля конечно.

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


Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, thentru сказал:

Лучший вариант, чтобы в модуле импорта была возможность сопоставления
Категория из прайса -> Категория в базе магазина


Присваивать id категорий в базе также как и в прайсе неверно, т.к. могут быть прайсы разных поставщиков и в этих прайсах совпадать id категорий (хотя сами категории разные)

 

Да, могут быть нюансы, если поставщиков несколько. Но если поставщик один, это реализуемо в целом? Если поставщик один - то как таковой проблемы быть и не может. По поводу использовать сравнитель типа: категория прайса номер = категория в системе номер - это хорошая идея. Спрошу.

 

 

38 минут назад, nikifalex сказал:

ну модуль не прописывет поле category_id при импорте. Это чья бага? Модуля конечно.

По этому поводу вот ответ процитирую:

 

Мой коммент: номер назначился системой по порядку всем группам, а номера "category id "  были указаны в файле

 

Ответ разработчика:

Естественно. Он называется автоинкрементарный айди. То есть нельзя просто без подготовки базы, проверки всех связей, взять и импортировать автоинкремент. Он базой создается. Его руками никто не импортирует никогда.

Счетчик типа.

Сама по  себе эта задача не очень верная. Идентификаторы файла и базы – это идентификаторы файлы и базы – это два разных счетчика. Если нужна синхронизация, чтобы два разных идентификатора совпадали. То сначала нужно подготовить базу.

 

 

 

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

 

 

 

 

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


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

он вам объяснил на "рабоче-крестьянском", а не на "техническом".

На техническом слушайте thentru

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


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

спасибо всем за помощь.

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


Ссылка на сообщение
Поделиться на другие сайты
On 26.07.2017 at 4:44 PM, Guava said:

спасибо всем за помощь.

 

Тоже пользуюсь 

импорт  yml через anyCSV в ocStore 2.3.0.2.1

Заливаются категории , вендор, атрибуты но товары нет!  

 

Непонятно как привязать categoryId к товару?

в форме программы

 <categoryId>
 <categoryId>

 

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


Ссылка на сообщение
Поделиться на другие сайты
On 25.07.2017 at 5:29 PM, Guava said:

Предисловие: 

 

Модулем устанавливается два идентификатора

Для категории  category_id

Для товара model

 

Как вы устанавливаете  category_id?

У меня в форме нет такого поля .Только идентификатор для товара 

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


Ссылка на сообщение
Поделиться на другие сайты
38 минут назад, dimug сказал:

 

Как вы устанавливаете  category_id?

У меня в форме нет такого поля .Только идентификатор для товара 

пишите автору. информация от вас не полная.

возможно надо поменять в поле  category_id - загружать как данную для товара, а не для категории. Категории там грузятся на основе собственной логики какой то.  

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


Ссылка на сообщение
Поделиться на другие сайты
26 minutes ago, Guava said:

пишите автору. информация от вас не полная.

возможно надо поменять в поле  category_id - загружать как данную для товара, а не для категории. Категории там грузятся на основе собственной логики какой то.  

 

У вас в форме импорта имеется поле category_id которую вы привязываете к карточке товара category_id?

У меня нет такого полЯ и я не могу привязать при импорте товар к главной категории. Видимо поэтому и товары не импортируются

 

categoryID.jpg

Изменено пользователем dimug

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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