Суть задачи:
Тебе надо сделать отображение похожих товаров “аналогов” по таблице кросс-кодов. Это будет выглядеть примерно сл. образом: в общем списке товаров, здесь: http://a.shinaland.com.ua/product/product => выводим иконку “аналога” http://prntscr.com/montgc => сама иконка вот:
выводим ее в столбце “Наименование”. При нажатии на єту кнопку, будет открываться
в новой вкладке такая же странице, только с нужным списком товаров.
*ТЕБЕ нужно написать такую функцию, чтобы ее можно было использовать и при отображении аналогов на фронтенде!!!!!
Блок №1 Предварительная задачка:
1) Надо связать Бренды наших товаров brand.id с таблицей “кроссов”: article_cross.SupplierId => ДЛЯ ЭТОГО => В Таблице brand (в базе nokian_land) => добавляем столбец supplierid_tecdoc
Также нужно вывести в админке, при создании / редактировании бренда: http://a.shinaland.com.ua/product/brand/create => http://prntscr.com/moqefm => я выбираю с выпадающего списка бренд (через таблицу Suppliers, которая в БД nokian_tecdoc) => ПРИ этом в поле сохранения целочисленое значения в столбец: supplierid_tecdoс => подписать так: Номер бренда в базе TecDoc (suppliers.id)
1а) Заодно в таблицу бренда добавь поле “slug” => которое надо автоматически формировать при добавлении / редактировании карточки товаров: делать транслитерацию букв на латиницу маленькими буквами и пробелы заменять на дефис, все остальные символы игнорируем
1б) И еще, в той же таблице добавить описание производителя, на странице вывода добавить форму “форматирования”: http://prntscr.com/miubsu
*Как закончишь эту задау, сразу маякни, чтобы проставил во всех брендах Supplier_Id
2) Надо указать supplierid_tecdoc в таблице product, чтобы быстро получать доступ к аналогам запчастей.
2а) Надо проставить supplierid_tecdoc во всех существующих товарах => берем его через поле product.brand_id > brand.id > brand.supplierid_tecdoc
2б) Автоматически вписываем значение supplierid_tecdoc при добавлении / редактировании / копировании карточки товара
2в) *Задача для Влада: Автоматически вписываем при загрузке прайсов => копирование карточек товаров
Бло №2 Принцип подбора аналогов => Итак юзер нажал на иконку отображения аналога:
1) Берем с текущего товара product.supplierid_tecdoc && product.search_article_vendor => Ищем вcе записи в таблице article_cross по таким полям: article_cross.SupplierId && article_cross.PartsDataSupplierNumber => РЕГИСТР БУКВ ЗНАЧЕНИЯ НЕ ИМЕЕТ
2) Вытягиваем ВСЕ значения по столбцам: ManufacturerId + OENbr
3) Делаем поиск в article_cross по каждой записи ManufacturerId + OENbr => ищем соответствующие им: SupplierId + PartsDataSupplierNumber => все эти значения собираем в массив данных
4) Потом в этом массиве мы исключаем все дубли по таким столбцам: SupplierId + PartsDataSupplierNumber
5) потом ищем все эти товары в таблице product по связке: product.supplierid_tecdoc && product.search_article_vendor && status != 0
6) !!!!ВНИМАНИЕ если по одному product.article найдено несколько товаров, то показываем только OДИН => тот, у которого минимальная price_supplier
7) ФИНАЛОЧКА: выводим на экран результат поиска продуктов, чтобы все работало как обычно (показывались все необходимые иконочки: http://prntscr.com/mozdf1 => НУ А Если по клику на “шестеренки”, аналоги не найдены, то прога просто пишет: “Аналоги не найдены” (без открытия новой вкладки)