• Веб-программирование
  • Уфа
  • 26 ноября, 2024

Проблемы с опенкарт атрибутами

  • Продолжительность проекта 1-5 Дней

Описание

У меня была проблема, когда при попытке ввода названия атрибута в поле в карточке товара сайт отдавал ответ очень долго сек 10 и только потом появлялся список названий данного атрибута. https://prnt.sc/10sx545 Как видите идентичных названий очень много. Это сложилось изза того что у нас есть система которая загружает артибуты из розетки и складывает их в бд. Но для каждой категории розетки значения одного и того же названия атрибута может быть разное и по этому много названий атрибутов дублируются. Есть таблица в бд, она отвечает за атрибуты. Очень большая - http://joxi.ru/VrwN3gQH4DLeZA 580 мегабайт Вообщем решение, которое я предложил было следующее и оно помогло. Человек который это сделал меня игнорирует. Я вижу решение через оптимизацию конкретной таблицы, которая 580 мб например атрибут цвет имеет 4050 дублей И так со многими. Получается можно удалить дубли и все будет работать быстро. Но проблема в том что у старых товаров эти атрибуты закреплены под разными id. Получается если удалить все и оставить один атрибут, то этот же атрибут останется только у тех товаров к которым он привязан, а у остальных товаров данный атрибут просто исчезнет. К примеру если цвет имеет 4050 дублей и оставить 1, а удалить 4049 остальных, то этот атрибут только и останется у товаров у которых он есть. У остальных товаров атрибут исчезнет так как удален атрибут. Получается можно удалить дубли атрибутов, но написать скрипт для перегенерации айди атрибутов у тех товаров у которых удалились эти дубли атрибутов. Тоесть если мы имеем 3 атрибута цвета с айди 1,2,3 при удалении айди 2 и 3 нам нужно товарам у которых они есть присвоить айди 1. Таким образом товары не потеряют свои атрибуты. Когда это было сделано - все стало работать нормально. =========================== Чел написал скрипт, который удалил лишние атрибуты, оставил 1 и прописал его айди у тех товаров у которых удалили айди дубли. Цитирую его реализацию, по крайней мере то что он писал "Технически это будет так - скрипт выбирает с базы все эти атрибуты. Сохраняя все id в массив. Выбирает 1 из них (первый). Остальные удаляет. Потом сразу-же с этого массива где остальные id, переберает их, ищет их в товарах и заменяет на первый, который оставили" ИСКЛЮЧЕНИЕ ПРИ УДАЛЕНИИ ДУБЛЕЙ Есть 3 названия атрибутов: Доставка/оплата Страна-производитель товара производитель Для них в другом функционале жесткая привязка к айди и именно эти айди удалять нельзя. вот скрин айди https://prnt.sc/10sxhxm Тоесть по этим 3 атрибутам мы работаем так же - выбираем один айди и применяем его всем остальным которые удалили. Но если попадают атрибуты с айди что на скрине - эти атрибуты удалять запрещено.

Требуемые навыки

ID проекта:4969

Отправьте ваше предложение

  • Stick this Proposal to the Top

    The sticky proposal will always be displayed on top of all the proposals.

  • ₽12.00
  • Make Sealed Proposal

    The sealed proposal will be sent to the project author only it will not be visible publically.

  • ₽7.00
  • Featured Proposal

    The featured proposal will have a distinctive color and popped up between other proposals to get the author's attention.

  • ₽5.00
Бюджет

Expired

beta

Сотрудничает с 15 марта, 2021
Посмотреть профиль

О работодателе

  • 1 Завершенные проекты
  • Способ оплаты
  • Электронная почта подтверждена