База знаний   /   Handy Product Manager

Ломается дерево категорий в модуле Handy Product Manager

Опубликовано 06 July 2021 12:51 pm

Поломка категорий является причиной другой ошибки в js-коде. Они зачастую создаются проблемными значениями атрибутов, где содержаться двойные или одинарные кавычки. С этим багом боролся несколько обновлений. Но, проблемы все еще встречаются. И как оказалось, они не только из-за кавычек (которые явно мешают js-коду), а еще и переносы строк. Причем это может быть не только в значении атрибута, но также в названии атрибута.

Ошибка в модуле Handy Product Manager: Uncaught SyntaxError: '' string literal contains an unescaped line break

При этом в стандартной админке товара OpenCart при автозаполнении названия атрибута наблюдается задваивание (затраивание или вообще многократное повторнеие) атрибутов с одинаковым названием.

Как с этим бороться? Вот в чем вопрос? :) Есть ли смысл искать обходные пути для нормальной работы модуля, если стандартная админка тоже не работает в нормальном режиме? Или все таки это вопрос платной работы для отдельно взятого клиента, которая по сути даже в поддержку модуля-то и не входит, если у него система не в порядке. Проблема в том, что люди покупают мой модуль, чтобы навести порядки с помощью массового редактирования. И тут как бы вопрос в том, оправдываете ли модуль их ожидания и соответствует ли это описания модуля?..

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

Пример запросов, которые могут помочь:

 

SELECT * FROM `oc_product_attribute` WHERE `attribute_id` IN (SELECT `attribute_id` FROM `oc_attribute_description` WHERE `name` LIKE '%Гибридный слот%')

UPDATE `oc_product_attribute` SET `attribute_id` = '1811' WHERE `attribute_id` IN (SELECT `attribute_id` FROM `oc_attribute_description` WHERE `name` LIKE '%Гибридный слот%');

DELETE FROM `oc_attribute`  WHERE `attribute_id` IN (SELECT `attribute_id` FROM `oc_attribute_description` WHERE `name` LIKE '%Гибридный слот%' AND `attribute_id` != '1811' );

DELETE FROM `oc_attribute_description` WHERE `attribute_id` IN (SELECT `attribute_id` FROM `oc_attribute_description` WHERE `name` LIKE '%Гибридный слот%' AND `attribute_id` != '1811' );

Решение этого вопроса заняло 1 час на полное вдупление...

Ломается дерево категорий в модуле Handy Product Manager

Название атрибута содержит лишние символы - OpenCart

 

Задваивание атрибутов в админке OpenCart