171 похожих чатов

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

импортировать товары из xml/yml поставщиков. Обычно характеристики находятся в тегах param. Если брать в расчёт обычный импорт - то этими тегами будут создаваться множество опций товара, причём они местами могут повторяться, т.к. одна и та же характеристика может отличаться в названии у разных поставщиков, в итоге у нас могут быть десятки разных опций обозначающих одно и тоже. Вопрос в следующем: кто-то как-то решал подобные задачи? Ну, например, хранить все param и их значения в json массиве в товаре, и выводить из него характеристики товара на фронт. А стандартные опции minishop создавать в единственном экземпляре и например, в где-то в настройках указывать сопоставление данной опции с param всех поставщиков, которые обозначают одно и тоже, но названия у них отличаются. Таким образом можно решить задачу например, с фильтрами товаров mFilter, чтобы можно было фильтровать товары по одной опции, которая в свою очередь тащила бы значения из всех сопоставленных param.
Например: у поставщика 1 характеристика называется "объём памяти, Гб" у поставщика 2 "память", у поставщика 3 - "количество памяти". И у всех значение = 256 Гб.

Если мы просто проимпортируем товары то создадим 3 опции обозначающих одно и тоже и как потом пользоваться фильтром ??

Но если мы сделаем одну опцию у себя назовём её "объём памяти" и настроим сопоставление с данной опцией из всех param ("объём памяти, Гб" , "память", "количество памяти"), то в фильтре у нас будет одна опция, которая будет осуществлять отбор товаров с вышеперечисленными param. Насколько такая задача речурсоемкая с точки зрения сервера? Может есть какие-то другие способы стандартизировать информацию из xml поставщиков?

6 ответов

4 просмотра

Хм, ну как по мне тут проще настроить сопоставление на стадии импорта. Без всяких json , т. е. 3 последний вариант но напрямую в базу

Нет, надо на стадии импорта проверять param в xml и определять в нужное поле товара на сайте просто, пример на скрине

Дмитрий- Автор вопроса
rusikus
Хм, ну как по мне тут проще настроить сопоставлени...

Ну тогда при каждом новом импорте надо сопоставления делать и создавать под каждую характеристику свою опцию. В моём примере опции можно создать только такие, которые будут использоваться в фильтре а остальные грузить как есть

Дмитрий
Ну тогда при каждом новом импорте надо сопоставлен...

Так это в плане ресурсов более дешёвый вариант

rusikus
Так это в плане ресурсов более дешёвый вариант

Сколько товаров планируется на сайте?

Дмитрий
Ну тогда при каждом новом импорте надо сопоставлен...

Ничего подобного. Ты сначала сделай сопоставление, чтобы привести все опции к единому виду. А затем их раскидывай как хочешь. Что-то отдельными сущностями, что-то в properties. Иначе ты и в шаблоне это все через миллион условий выводить будешь. Зачем велосипед придумывать. Пусть нагрузка на железо будет при разборе импорта, чем при работе парсера

Похожие вопросы

Обсуждают сегодня

Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Или ты челендж хочешь?
Ilya Shvechikov
7
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Карта сайта