MiniShop3 1.2.0 - 1.3.0 Самое интересное
Друзья, взял за правило, выпускать еженедельные релизы с исправлениями багов, которые вы старательно присылаете, а также с поэтапными улучшениями системы, основанными на ваших же вопросах и предложениях.
Мне не хватает времени и желания описывать каждый релиз отдельно, потому сегодня обзор самого интересного за месяц в честь выхода версии 1.3.0
Ранее был доступен статичный сниппет, для желающих отобразить на экране краткую статистику по заказу, без корзины. Добавил свежий чанк для оформления, добавил стилей, добавил поддержку в JS. Теперь он обновляется как и корзина. на любые события.
Вызов на странице:
Выяснился неприятный баг. В pdoTools по умолчанию вшита поддержка доп категорий минишопа. Когда мы вызываем сниппет msProducts — тот в свою очередь поручает всю работу pdoTools — который не работает с MiniShop3. Пришлось взять всю работу на себя и прямо внутри сниппета реализовать работу с категориями. Как физической, так и виртуальной. Заодно решил еще одну фундаментальную проблему.
PdoTools, показывая в категории все товары, в том числе вложенные в дочерние категории, строит довольно неприятный запрос в базу данных. Он берет текущую категорию и засовывает в запрос перечень ID ВСЕХ вложенных ресурсов, не обращая внимания, товары это или категории товаров. Итого в запросе могут быть десятки тысяч ID. Я эту проблему решил, сократив запрос на тестовом сайте количество ID с 40 000+ до 20+ (просто 20, без тысяч). Это значит теперь каталог будет строиться существенно быстрее, потребляя меньше памяти.
Сразу же сделал PR для miniShop2 — надеюсь @Евгений Webinmd который любезно присматривает за старичком проверит его и выпустит релиз.
В разделе админки «Свои поля» появился новый тип — выпадающий список с фиксированными значениями.
Как создать:
1. Идём в Приложения → MiniShop3 → Утилиты → Свои поля
2. Создаём новое поле, выбираем тип «Выпадающий список»
3. В поле «Опции» указываем варианты в формате:
В карточке товара появится выпадающий список с этими вариантами.
Теперь стоимость заказа пересчитывается автоматически когда:
Если у вас MySQL версии 8.0 и выше — теперь всё работает без ошибок. В MySQL 8 появились новые зарезервированные слова, из-за которых некоторые запросы падали. Исправлено.
При оформлении заказа теперь проверяются обязательные поля. Если в настройках доставки указаны правила валидации (например, обязательный адрес) — система не даст оформить заказ без этих данных.
Настройка правил: Приложения → MiniShop3 → Настройки → Доставка → (выбрать доставку) → Правила валидации.
Страница редактирования товара стала удобнее. Вкладка «Товар» теперь содержит подвкладки:
В принципе, повторил путь miniShop2. Василий в свое время тоже сначала расположил все вкладки в одну линию, потом по мере развития компонентов уперся в то, что вкладок стало много и родные для минишопа переехали ниже, став вложенными.
Если вы пишете свои компоненты и хотите добавить вкладку в карточку товара — теперь это просто:
Мне не хватает времени и желания описывать каждый релиз отдельно, потому сегодня обзор самого интересного за месяц в честь выхода версии 1.3.0
Виджет msOrderTotal обновляется на лету.
Ранее был доступен статичный сниппет, для желающих отобразить на экране краткую статистику по заказу, без корзины. Добавил свежий чанк для оформления, добавил стилей, добавил поддержку в JS. Теперь он обновляется как и корзина. на любые события.
Вызов на странице:
<div id="orderTotalBlock">
{'!msOrderTotal' | snippet :'selector' => '#orderTotalBlock']}
</div>Что покажет:<span class="ms3-order-total">
<span class="ms3-order-total__count">10</span>
<span class="ms3-order-total__cost">14400 руб.</span>
</span>Добавили товар — сумма обновилась. Убрали — тоже. Без перезагрузки страницы.Товары из дополнительных категорий
Выяснился неприятный баг. В pdoTools по умолчанию вшита поддержка доп категорий минишопа. Когда мы вызываем сниппет msProducts — тот в свою очередь поручает всю работу pdoTools — который не работает с MiniShop3. Пришлось взять всю работу на себя и прямо внутри сниппета реализовать работу с категориями. Как физической, так и виртуальной. Заодно решил еще одну фундаментальную проблему.
PdoTools, показывая в категории все товары, в том числе вложенные в дочерние категории, строит довольно неприятный запрос в базу данных. Он берет текущую категорию и засовывает в запрос перечень ID ВСЕХ вложенных ресурсов, не обращая внимания, товары это или категории товаров. Итого в запросе могут быть десятки тысяч ID. Я эту проблему решил, сократив запрос на тестовом сайте количество ID с 40 000+ до 20+ (просто 20, без тысяч). Это значит теперь каталог будет строиться существенно быстрее, потребляя меньше памяти.
Сразу же сделал PR для miniShop2 — надеюсь @Евгений Webinmd который любезно присматривает за старичком проверит его и выпустит релиз.
Новый тип поля — Выпадающий список
В разделе админки «Свои поля» появился новый тип — выпадающий список с фиксированными значениями.
Как создать:
1. Идём в Приложения → MiniShop3 → Утилиты → Свои поля
2. Создаём новое поле, выбираем тип «Выпадающий список»
3. В поле «Опции» указываем варианты в формате:
new==Новый
used==Б/У
refurbished==ВосстановленныйФормат: значение==подпись (каждый вариант с новой строки).В карточке товара появится выпадающий список с этими вариантами.
Автоматический пересчёт стоимости
Теперь стоимость заказа пересчитывается автоматически когда:
- Меняете способ доставки
- Меняете способ оплаты
- Добавляете/удаляете товары из корзины
Совместимость с MySQL 8.0
Если у вас MySQL версии 8.0 и выше — теперь всё работает без ошибок. В MySQL 8 появились новые зарезервированные слова, из-за которых некоторые запросы падали. Исправлено.
Валидация заказа
При оформлении заказа теперь проверяются обязательные поля. Если в настройках доставки указаны правила валидации (например, обязательный адрес) — система не даст оформить заказ без этих данных.
Настройка правил: Приложения → MiniShop3 → Настройки → Доставка → (выбрать доставку) → Правила валидации.
Админка: вложенные вкладки товара
Страница редактирования товара стала удобнее. Вкладка «Товар» теперь содержит подвкладки:
- Свойства — основные поля товара
- Галерея — изображения
- Категории — привязка к категориям
- Связи — связанные товары
- Опции — цвет, размер и т.д.
В принципе, повторил путь miniShop2. Василий в свое время тоже сначала расположил все вкладки в одну линию, потом по мере развития компонентов уперся в то, что вкладок стало много и родные для минишопа переехали ниже, став вложенными.
Для разработчиков: Plugin Registry
Если вы пишете свои компоненты и хотите добавить вкладку в карточку товара — теперь это просто:
window.MS3ProductTabsRegistry.register({
key: 'my-custom-tab',
title: 'Мои данные',
component: MyVueComponent
});Ваша вкладка появится рядом со стандартными. Работает без пересборки MiniShop3. Можно добавлять вкладки как на Vue, так и на extJSПрочие исправления
- Корзина больше не пропадает после авто-регистрации клиента
- Галерея работает стабильно (загрузка/удаление изображений)
- Пагинация в настройках производителей и связей товаров
- Email-уведомления отправляются корректно
- Множество мелких улучшений интерфейса
Поблагодарить автора
Отправить деньги
Комментарии: 2
У меня без перезагрузки страницы вообще данные не меняются нигде не в корзине, не в msOrderTotal, товары в корзине удаляются но исчезают только после перезагрузки. Пришлось временно подключать Jquery. Что не так не пойму, в минишоп2 таких траблов не было, все работало с коробки.
Какую версию MiniShop3 используете? Покажите вызов сниппета корзины
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.