Баги и недоделки Shop-Script 6

Илья С

Баги не все, написал про наиболее заметные:

1. Облако меток в приложениях магазин и блог (возможно, и других) - метки выводятся со всех поддоменов, вне зависимости используется ли метка на данной витрине. На первый взгляд проблема простая, но посмотрев код, исправить оказалось не так просто, как возможное решение для разработчиков - в таблице тегов shop_tag создать колонки с количеством тегов для каждого типа товаров. Если во всех типах товаров данной витрины тег не встречается, в выборку для облака он не попадает.

2. Тема Дефолт 2.0
Выводит записи всех блогов сразу со всех сайтов (подоменов), что неправильно.

В бредкрамбах (breadcrumbs) на первом месте - Название магазина из общих настроек. Если витрин несколько, и каждая продаёт разные товары, будет нелогично. Лучше написать "На главную" или название поселения: https://www.webasyst.ru/forum/1567/kak-v-shablone-...

3. Баг с предпросмотром тем. Если при смене темы нажать "открыть предпросмотр" - режим предпросмотра запоминается в куки, из режима предпросмотра можно выйти только почистив куки браузера.

4. Баг с клонами шаблонов магазина
Создаю 2 разных клона темы (пробовал Дефолт 2.0 и другие), создаются папки \wa-data\public\shop\themes\default1\ и \wa-data\public\shop\themes\default2\
Создаю 2 витрины, назначаю для каждой свой клон.
Меняю в настройках логотип, цвет, ссылки на соцсети для одной витрины, а меняются для всех сразу. Всеми витринами используются настройки клона по умолчанию \wa-data\public\shop\themes\default\, вместо клонов default1 и default2. С таким багом использовать 1 шаблон (например, Дефолт 2.0) для 2 витрин очень проблематично. Как временное решение, в папке \wa-apps\shop\themes\ для каждой витрины создать свою копию темы.
Настройки клонов тем блога сохраняются нормально.

5. В Магазине на вкладке Витрина при выборе другой витрины, кнопка "Открыть витрину" не меняется, ведёт на одну и ту же витрину, первую в списке.

Версии последние, Shop-Script 6.0.3.38328, шаблон обновлён.


6 июля 2015
  • 1. А если у меня 100 типов, то как? 100 колонок добавлять? А если я потом половине товаров поменяю типы, представляете какие пересчёты надо будет делать и сколько запросов выполнить?

    2. По поводу всех доменов проверим.
    Название можно легко поменять в теме дизайна. Для темы default 2.0 это файл main.html приложения магазин.
    Строчка:

    <a href="{$wa_app_url}">{$wa->shop->settings('name')}</a> <span class="rarr">&rarr;</span>

    3. В админке при предпросмотре появляется окошко, где можно нажать завершить предпросмотр. И запоминается не в куки, а в сессию.

    4. Потому что клон нужно создавать и для родительской темы, а у вас для клонов default1 и default2 родительская тема осталась просто default из приложения сайт, а как раз эти настройки относятся к ней, а не к теме магазина.

    5. Это и не предусмотрено, для перехода на выбранную витрину есть справа ссылка сайт.

  • Илья С 6 июля 2015 15:20

    1. Должно тогда быть другое решение. Перебирать все теги в облаке и проверять используется ли он в товарах данной витрины, думаю не менее ресурсоёмко.

    3. Странно что окошко не появляется. Adblock-ом и браузером не блокируется.

  • Илья С 6 июля 2015 15:41

    С 3 пунктом разобрался, такие ссылки в новом окне по привычке открываю средней кнопкой мыши. Окно появляется только при клике левой.

  • Первый пункт сложный.

    Принадлежность товаров к витринам и тегов к товарам - два раза многие-к-многим и в общем случае довольно динамична. Пытаться поддерживать где-то в БД постоянно обновляемое состояние связи тегов с витринами - неблагодарное дело.

    С другой стороны, вычислять теги конкретной витрины на лету - дорого. Большая нагрузка на сайт, тормозить будет.

    Мне кажется, целесообразно пойти следующим путём. По крону раз в несколько часов получать для каждой витрины облако тегов. Честным, тяжёлым способом: получить список типов товаров одной витрины; сделать запрос в БД с джойнами тип товара->товар->тэги. Полученное облако тегов сохранить в файл в кеше. При генерации фронтэнда брать данные из кеша.

    Этот способ не требует модификации исходников магазина и добавления колонок в БД. Всё вполне реализуемо в рамках скромного плагина.



Чтобы добавить комментарий, зарегистрируйтесь или войдите