Первым делом открываем всем знакомую ссылочку, там сюрприз! Полностью обновленный демо сайт - Demo.JBZoo.com
Так совпали звезды, что у нас выпал очередной номер мажорной версии 2.2.0, поэтому название всей линейки будет иметь кодовое название «High Voltage». Название пришлось как нельзя кстати, т.к. весь долгий и нелегкий путь разработки сопровождался высоким напряжением как в команде разработчиков, так и в нашем сообществе.
Ранее мы уже анонсировали две бета версии. Первая бета (с видео-обзором новых фич) имела лишь ознакомительный характер, а начиная со второй беты мы запустили закрытое тестирование (только среди подписчиков «плюс» с ежедневными обновлениями). В итоге, некоторые наши клиенты уже успели создать новые сайты. В будущем мы сделаем обзор этих проектов.
Сейчас наша команда рада представить вам совершенно новую корзину JBZoo 220v. Попробуем пробежаться, по её новым возможностям. Да, именно «пробежаться», т.к. действительно получилось огромное количество фич и каждая из них несет свою уникальную изюминку. Описать все и сразу в рамках одного поста практически невозможно.
Итак, что же мы приготовили для ваших законных методов отъема денег у населения сайтов?
Новый конструктор для электронной коммерции!
Не ослышались, это именно конструктор!
Имея каплю фантазии в одной руке и мышку в другой, вы можете продавать:
-
произвольный товар с любым количеством параметров (цвет, размер).
-
заказы из онлайн калькулятора с вычислениями цены на лету.
-
«подъем» или «публикацию» платных объявлений.
-
файлы и отправлять их почте.
-
и т. д.
-
самому конструировать элемент цены из других элементов.
-
оповещать пользователя разными способами.
-
проверять заказ через дополнительные валидаторы.
-
делать групповые скидки и массово поднимать/понижать цены на сайте.
-
использовать произвольные статусы заказа.
-
вычислять цену доставки с помощью внешних сервисов.
-
гибко управлять валютами на сайте.
-
просматривать подробную информацию о заказе.
-
создавать произвольное количество полей в форме заказа.
-
гибко управлять почтовыми шаблонами (элементы и позиции).
-
и... устал перечислять... :)
Обновленное JBZoo API порадует программистов такими вещами, как:
-
создание любых расширений не сложнее, чем разработка элемента для Zoo.
-
гибкая шаблонизация с UIkit, сборщиками статики, переопределением файлов.
-
абстрактная фабрика виджетов JS для быстрого клепания jQuery-плагинов.
-
компиляция Less в CSS на лету с одноразовым кешированием.
-
минификация JS через Google.
-
работа с деньгами и валютами, как с простыми объектами.
-
и т.д.
И первый, кто попадает под наш пристальный взор — это старый добрый JBPriceAdvance. Наши программисты его не пощадили и переписали с нуля.
JBPrice — второе рождение!
Эти буквальные 3-4 квадратных сантиметрика на сайте, где мы привыкли видеть цену, так важны и сложны по своей сути, что на разработку ушло более чем 4 месяца. Не верите?
Отныне элемент цены — это такой небольшой комбайн, который сам состоит из элементов. По сути JBPrice ничего не умеет, все возможности товара — это дополнительные «элементы элемента цены этого JBPrice». Вот жесть то, да? Не успев начать, а я уже говорю запутано...
Допустим, мы продаем «старые добрые футболки», каждая из которых имеет свой цвет, размер, остаток, запах, артикул, а иногда даже цену. В то же время внутренний голос нам твердит, что все это лишь параметры одного и того же товара и всю эту кучу хочется объединить в одну группу-материал.
Для этого мы создаем в материале JBPrice (Plain или Calc), добавляем в него именно те параметры (читай как элементы), которые хотим видеть в футболке. Включаем вариации и выводим все это добро на сайте. Любые настройки выглядят как все те же привычные позиции с элементами. Сидим и лениво водим мышкой по админке ;)
Слышу, слышу как начинают бунтовать скептики и выкрикивают из-за задних парт «тормозит», «медленно», «тяжело работает». Вот вам пища для размышлений...
Предыдущий элемент цены съедал примерно 10-40 ms времени для рендринга. Сейчас наш великий и ужасный маг Александр (он же tapakan и автор JBPrice) добился разгона новой цены до 5-15 ms. А если включить кеширование, то смело делим все показатели на 5-10. Т.е. примерно 0,5-2 ms на рендеринг 1-го элемента! Мысленно сравниваем числа с предыдущим средним показателем в 20 ms. Такие дела... В элементе заключен дух ветра :)
...о Валютах
Все «денежные» расширения (т.е. те, что работают с вычислениями и обработкой денежных сумм), как назло, работают в самых разнообразных валютах. И теперь это как никогда сказывается на работе JBZoo.
Мы разработали новый подход к денежным вычислениям. Например, теперь можно положить в корзину товар в долларах, вычислить доставку в гривнах, и в итоге оплатить рублями. Круто, да?
Вот краткий перечень фич новой валютно-денежной системы JBZoo:
-
Разные сервисы валют — это отдельные элементы (расширения).
-
Разработка своего элемента курса валют сводится к написанию 1 функции PHP в классе элемента.
-
Любые настройки формата вывода доступны из панели управления.
-
Суммы можно округлять в большую или меньшую стороны десятками или сотнями. Будет актуально для белорусских рублей (вместо «32 689,54 руб» приятнее видеть красивую сумму «32 700 руб»).
-
Можно указать резервное значение для курса валюты, на случай, если онлайн сервис упал (например, Центробанк РФ (cbr.ru) падает либо банит примерно 3-4 раза в сутки. И это ппц...).
-
Новый модуль «Переключатель валют». Т.е. один для всех цен на странице.
-
Модуль для вывода текущих курсов валют в виде списка.
-
Все денежные суммы на странице умеют менять свое значение с красивой анимацией (измените кол-во товара в корзине, например).
...о Глобальных скидках и прочих манипуляциях цены
JBZoo получил группу расширений для массовой работы с ценами на сайте. По сути каждый элемент — это правило для изменения цены у товара или группы товаров.
Теперь не составит большого труда сделать скидку (или «втихаря» поднять цену) для определенной категории товаров. От зоркого глаза админа ничего не скроется — все поползновения цены будут видны в созданном заказе.
...о Службах доставки
Нормальный расчет цены доставки — ох... как же нам этого не хватало...
Корзина не просто позволяет выбрать способ доставки, она буквально обращается к стороннему сервису и узнает цену. После создания заказа вся эта информация сохраняется и доступна администратору в панели управления.
На данный момент JBZoo работает с такими сервисами как:
-
Новая почта.
-
Почта РФ (старое API).
-
Курьер, с фиксированной суммой.
-
EMS.
В ближайших планах стоит ПЭК и обновление для Почты РФ.
...о Системах оплаты
Существующий список платежных сервисов пополнен новыми системами. Теперь полный список выглядит следующим образом:
-
Робокасса — серьезный сервис для юр. и физ. лиц с более чем 20 способами оплаты.
-
Интеркасса — почти 30 способов, относительно недавно полностью обновили как интерфейс так и весь функционал.
-
PayPal — популярный сервис для международных покупок по карте или PayPal.
-
Яндекс.Деньги — оплата через сервис русского поискового гиганта (не путайте с Кассой).
-
QIWI — популярный мобильный сервис и система терминалов.
-
LiqPay — сервис банка Privat24.
В ближайших планах Яндекс.Касса и 2Checkout, интеграция с компонентами биллинга Joomla (возможно).
...о Событиях в корзине
События (они же триггеры, эвенты) — это неотъемлемая часть любой серьезной системы. Когда в ней что-то случается (создался заказ, пришла оплата, изменился статус и т.д.), то происходит специальное оповещение. Все элементы, которые были привязаны к этому событию выполняют свою функцию.
С теорией все понятно, а что на практике?
В панели управления есть несколько специальных страниц со списком событий. Если в это событие положить какой-нибудь элемент — он выполнится вместе с ним. Например, нужно отправить SMS пользователю сразу после оплаты. Достаточно добавить элемент SMS в позицию «Оплата заказа» и указать там текст сообщения.
Таким образом, вы сами решаете, что будет происходить на всем периоде жизни заказа от его создания до перехода в статус «Завершен». Кстати о статусах... А я вам говорил что это тоже «событие»?
...о Произвольных статусах
Ранее в нашем приложении был весьма скудный набор статусов заказа, который не поддавался редактированию. Начиная с v220 вы сами указываете сколько будет статусов, и главное, что именно они будут делать.
Каждый статус создает событие в системе, на который можно добавить выполнение элемента. Таким образом, можно отправить SMS при изменении статуса на «оплачено», или письмо с информацией о покупке сразу после создания заказа (т.е. до оплаты).
Т.к. теперь количество статусов не ограничено, то и количество событий не ограничено.
Для удобства администрирования статусы делятся на три группы — Общий, Платежной системы и Доставка. Как и прежде, JBZoo умеет отслеживать фактический момент оплаты через API сервисов оплаты и менять статус заказа автоматических.
...о Шаблонах
Как написать много CSS и через два месяца не утонуть в стилях? ... хлопотно.
В процессе разработки мы были вынуждены писать огромное количество CSS / JS, много думали о шаблонах и вот что из этого вышло.
-
Наконец появился нативный шаблон UIkit.
-
Поддержка адаптивного дизайна в корзине, заказах и каталоге.
-
Мы больше не пишем стили в CSS, а используем только Less, который в фоне сам себя компилирует. Классические стили остались только для сторонних библиотеках.
-
Весь JavaScript разделен на отдельные маленькие (а значит понятные) и независимые файлы.
-
На странице подключаются только те стили и скрипты, которые используются. Ничего лишнего. Вес страницы меньше — она грузится быстрее. ??? Profit!
Уверен, что кто-то нервно заерзал в кресле, когда увидели фразу «мелкие файлы» и «Less». Поэтому, прежде чем писать гневные комментарии, подумайте о следующем.
...о Less
-
Компиляция проходит только один раз и только на стороне сервера.
-
На выходе получаем один сжатый CSS файл (см настройки).
-
JBZoo сам отслеживает изменения в файлах и сам запустит компиляцию стилей, если найдет изменения.
-
Сборка стилей сайта — это хорошо отлаженный процесс. Мы успешно работали с ним последние 5 месяцев. А это значит, что весь Less надежно протестирован.
-
Синтаксис Less практически 1:1 как у CSS, а значит можно писать привычные стили и не думать что это Less. Новичкам не придется переучиваться новой технологии.
Если кто-то до сих пор считает, что Less — это всего лишь переменные, то боюсь вас огорчить. Мы их почти не используем. Зато он серьезно ускорил разработку и позволил навести строгий, почти военный порядок в стилях.
Ну... у нас еще будет время обсудить прелести препроцессора CSS в нашем блоге.
...о JavaScript
Еще со времен версии JBZoo 2.1.5 клиентских скриптов на сайте получилась так много, что легко разобраться в нем можно было только с бутылкой крепкого горячительного напитка. На самом деле это не доставляло проблем никому (даже разработчикам), пока не потребовалось ввести ООП классы и наследование виджетов и прочей страшной мутатени. А главное — привести весь код в строгий порядок.
В процессе мы были вынуждены написать свою фабрику виджетов, которая диктует всему JS коду свои жесткие правила игры, а она взамен дала нам очень простой процесс разработки и совершенно новые перспективы работы интерфейса (например, ajax фильтр).
Это чем-то похоже на jQuery.widget(), но лохмаче!
Как и в случае со стилями сайта, весь наш JS собирается в единый файл и минимизируется (и не абы как, а через Google).
Да и вообще, знаете что... JBZoo — это element’арно!
Корзина научилась наращивать свои потенциалы с помощью специальных расширений — элементов. Если вы научились писать обычные элементы Zoo, то и с корзиной у вас не возникнет проблем. Те же правила рендеринга, xml файлы и тоже самое API. Только элемент появится не в типе материала, а в корзине.
Элементы разделены на несколько групп по их функциям:
-
Currency — конверторы валют, каждый элемент работает со своим сервисом курса валюты.
-
Email — элементы для почтовых шаблонов.
-
Modifier Item Price — модификаторы цены определенного или группы товаров (Скидки, акции).
-
Modifier Order Price — модификаторы цены для всего заказа (Промо код, НДС).
-
Notification — элементы для сообщения о чем-либо куда-либо. Например, SMS при оплате заказа.
-
Shipping Field и Order — поля для формы заказа.
-
Payment — системы оплаты.
-
Price — элементы цены (остаток, параметр товара, артикул товара).
-
Shipping — элементы для вычисления цены доставки с помощью посторонних сервисов.
-
Validator — произвольные валидаторы корзины (например, для ограничения заказа по минимальной сумме).
Ну и так... по мелочи...
По ходу дела появилось много приятной мелочевки. Коротенечко, список ниже:
-
Цена и корзина
-
Краткая статистика продаж в панели управления.
-
Новый виджет для переключения валют (кнопки с флажками).
-
Новый виджет для кол-во товаров.
-
Элемент JBAdvert для продажи VIP-объявлений.
-
Два разных режима работы с вариациями цены — обычный и наложение.
-
Создание онлайн калькуляторов с последующим заказом.
-
Покупка файлов (приходит ссылка или атач в письме после оплаты).
-
Зависимость фотографии товара от параметров товара (например, от цвета).
-
Произвольные валидаторы корзины.
-
Процесс оплаты можно сделать в два шага (если этого требует API).
-
-
Фильтр
-
Новый слайдер цены с полями ввода (работает скролл, внизу и вверх).
-
Улучшенный JS-сброс в форме фильтра.
-
Фильтрация по пустым опциям материалов.
-
-
Шаблоны
-
Стилизованные сообщения в интерфейсе с помощью Sweet Alert (няшка!).
-
Новые CSS кнопки для шаблона по умолчанию.
-
Эффекты в интерфейсе для AJAX-запросов.
-
Переверстаны страницы корзины, истории заказов.
-
-
Нотификация
-
Макросы для элементов нотификаций (например, для вставки номера заказа посреди текста).
-
SMS уведомления.
-
Новые почтовые шаблоны (специальные элементы и новая верстка).
-
Автоматические атачи файлов и картинок в письма.
-
-
Последнее в списке, но не последнее по значимости!
-
Общий разгон всего JBZoo.
-
Исправлены старые ошибки из версии 2.1.5
-
Причесали весь CSS и JS.
-
Серьезный рефакторинг всех модулей JBZoo.
-
... и Басё, и то да сё, и всё-всё-всё! и это еще не всё! (привет, Псой)
-
Часть из них мы не планировали, просто так получилось, что по мере разработки добавить ту или иную плюшку — дело пары часов. Почему бы и нет! ;)
Есть вопрос? Давай-давай!
У меня есть аккаунт без плюса, я могу скачать JBZoo 220v ?
Да, конечно. Как и было обещано, начиная с RC версия будет доступна всем тарифным планам.
В чем принципиальное отличие между Beta и RC?
Первая бета играла роль предварительной демонстрацией новых фич. Вторая бета была экспериментальной версией, где многие фичи работали, но нуждались в тестировании, отладке и свежего взгляда со стороны. Обе версии отлично сыграли свои роли.
Текущая версия (RC) — это уже отлаженный продукт, на котором можно и нужно создавать новые сайты. Конечно есть ряд вещей, которые еще не включены в эту версию, чтобы считаться Stable (несколько новых фич, английская локализация, опечатки и система обновления).
Тем не менее, мы считаем что она уже готова, т.к. уже сейчас исправлены все серьезные баги.
Чем конкретно будет Stable отличаться от RC?
Если прям вот чтобы конкретно, то:
-
Появится возможность простого обновления (сейчас только вручную, позже мы напишем в блоге как именно).
-
Новый модуль сортировки в категории.
-
Новый, вспомогательный модуль для фильтра.
-
Профессиональный перевод на английский и украинский языки. Русский язык уже есть сейчас.
-
Воплощение идей для юзабилити панели управления JBZoo.
-
Исправление мелких и не критических багов, например, опечатки.
-
Разбор индивидуальных багов пользователей форума.
Будет более точный список будет позже доступен нашим подписчикам «+».
Когда на 2.2.0 можно начинать новые проекты?
Делать новые сайты можно уже сейчас! Stable лишь включит в себя незначительные правки и несколько новых небольших фич. Как и прежде, все подписчики со знаком «плюс» получают ранние обновления через наш JBZoo Marketplace. Каждое такое обновление приближает к Stable. Они выходят 3-4 раза в неделю.
Можно ли будет обновить RC до Stable?
Да, конечно. Позже мы выпустим специальный патч для обновления с подробной инструкцией.
Когда будет обновление с версии 2.x.x до 2.2.0?
Как видите, изменений между версиями слишком много, поэтому наша команда будет работать над специальным конвертором. Он появится почти сразу после Stable. А до дня «X» в рамках технической поддержки на форуме мы можем вас проконсультировать с ручным обновлением сайта.
Фич много... как разобраться??? Есть документация для 2.2.0?
Отож! Бодрая часть документации уже доступна на нашем сайте. Как и прежде, постепенно мы её наращиваем. Летом будем писать новые видео материалы.
Фич действительно очень много. Теперь и цена подписки взлетит? эх...
Совершенно нет! Пока нас устраивает наша текущая ценовая политика. Поэтому никаких изменений в условиях или цене подписки не предвидется.
Так много изменений... почему версия не 3.0, а всего лишь 2.2.0?
Давным давно мы анонсировали, что начиная с 3.0 JBZoo будет отдельным независимыми компонентом Joomla. Планы не изменились. «JBZoo 220v [high voltage]» — звучит, же! ;) А компонент будет двухфазным 380v.
Стоило ли делать все и сразу? Почему нельзя было их выпускать по частям?
Дела обстоят так, что практически все новые возможности работают гармонично только потому что были запланированы (хоть это не очевидно) и созданы одновременно. Многие из них связаны между собой тесными узами.
Просто подумайте, получилось бы:
-
Вычислить сумму заказа без гибкой системы валют, если доставка в рублях, товар в гривнах, а оплата через Paypal в долларах ?
-
Так гибко управлять шаблоном цены (например, поменять местам кнопки и параметры) если бы не разделили JBPrice на маленькие элементы ?
-
Навести полный порядок в шаблонах без возможностей less ?
-
Добавить нормальную мобильную версию без возможностей шаблона UIKit ?
-
Редактирование курсов валют без отдельной страницы в панели управления ?
-
...и таких примеров масса!
Так что, да! Считаю что, затраченное на разработку время и уникальные фичи корзины стоили того.
Планы на ближайшее будущее
Сейчас мы активно работаем над Stable и читаем отзывы с вашим мнением. Так сказать мотаем на ус в счет будущих концертов.
Вместо заключения
Какое заключение??? ...только вошел во вкус! Так что задавайте вопросы в комментариях, прямо тут.
Ну а если не 20-50 товаров сделать, а эдак на 50.000 item каталог?
и посадить на хостинг за 200 р., потянет?
Добрый день, Сергей! Рад вас видеть у себя.
На бете мы тестировали специально перегруженные страницы в 3к материалов. Тест (в подвале страницы) говорит, что переполненный материал (его шаблон) самыми разными полями, рендерится 12-13 ms, при этом HTML создается на 700Кб. Естественно в целом страница тормозит (но мы специально этого добивались). Да, кеш отключен.
На форуме у нас есть подробный мануал как залить 300 тысяч материалов. А один из подписчиков, который работает над огромный новостником, говорил, что с хорошим хостингом работает с 50к+ хитов и примерно 15к хостов в сутки. Он даже сделал вот такой вот патч http://forum.jbzoo.com/files/file/58-bd (там графики есть).
Что там с хостингом за 200 рублей, я не знаю... Все они разные, нужно смотреть... Например, ник хост и за 500-600р не вытягивает практически ничего :) Полное г и вечные проблемы на поддержке.
Чтобы не гадать у нас есть тестирование производительности сайта (как у Битрикса, только больше тестов). Там все измеряется в попугаях, можно делать предварительные оценки.
Вот как раз это: "Сайт стоит на VDS довольно мощном и БД" со слов одного из подписчиков, никак не тянет на "среднестатистический" хостинг.
и тут проблема скорее не в JBZoo а в самом ZOO - вы так не считаете?
Выдержать столько контента и такой поток трафика - конечно, нужен серьезный хостинг. Нет? Сделаем на любом шареде 90 тысяч хитов и аккаунт прикроют - попросят менять тариф :) Чудес на бывает)))
Да, есть Zoo некоторые проблемы с производительностью, часть их решает JBZoo (он переопределяет их ф-л своим). Остальное - решается в пол-пинка (обычно правильной настройкой хостинга и расширений).
Другой вопрос, если на сайте еще установлено 100500 расширений (как на любом типичном Joomla-сайте) - проблема уже в голове, чем в софте.
Естественно, если называть заоблачные числа и пытаться запустить сайт на микроволновке)))
В целом, не вижу проблем с производительностью Zoo, все решаемо.
Ух ты :) про себя прочел в комментариях... Ну и мой вопрос Денис, смысл есть ли новостнику переезжать на 220v?
Если там нет корзины, то я тоже большого смысла не вижу. Хотя с другой стороны меня очень сильно радует поддержка Less (это на случай, если верстать много приходится)
Ну... я думаю на JBlank в этом году постараться сверстать :) в нем есть LESS + много всего интересного... а про 220v - посмотрим, на локалке попробую, а там видно будет)))
Сейчас 200к+ хитов и до 100к посетителей в сутки, сервак нагружен на половину, а то и меньше :) тут в оптимизации VDS уже скорее вопрос стоял. Ну и рекордные бенчмарк попугаев...
Да, конечно не типичный сайт и изначально я и не думал что JBZoo пойдет в хайлоад (а ведь принято считать, что посещаемость в районе 100к уников и более это уже HighLoad).
Даже если взять от этого пятую часть, то все равно получаем сайт приличных размеров с хорошим трафиком. Так что да, я уверен что проблем с производительностью нет. Зато есть масса других факторов (руки, голова, лишние расширения на сайте), которыми почему-то часто пренебрегают...
Кстати, вот пример 10 тысяч на старом демо сайте - http://demo-old.jbzoo.com/table Табличку еще не успели перенести в новый дизайн.
А между 2.2.0 и 3.x.x версиями - будут новые релизы? Или следующий шаг - начало работы над 3.x версией (в виде отдельного компонента)? )
Да, будут. Уже набралось очень много хотелок для 2.2.1. Версия будет содержать в основном новые элементы (расширения) для менее популярных сервисов оплаты, доставки, валют, модификаторов цены и прочего прочего...
Дату запуска работы над 3.x не решусь сказать. Нужно с 2.2 первым делом разобраться =)
Здравствуйте! Скажите пожалуйста, а будет ли в новой корзине возможность продажи по подписке?)))
Добрый день, Рустам.
Заранее дико извиняюсь, возможно я уже спрашивал вас... Можете подробнее описать функцию "продажи подписки" ?
Я извиняюсь за то что сначала не поздравил вас с отлично проделанной работой!))) Под этим я подразумеваю платный доступ к определенному полю в карточке товара (например контакты продавца) на определенный срок.
Большое спасибо! Сейчас это можно сделать дополнительным элементом, который сработает после оплаты. Пока что такой не планировался.
Спасибо! Попробую такой реализовать.
Будут вопросы, пишите на форум. Помогу чем смогу :)
Молодцы! Хорошо поработали!
Спасибо!
Добрый день, поздравляю с выходом новой версии. Вопрос : возможно ли в этой версии чтобы у пользователя бы личный кабинет, чтобы он мог пополнить баланс и опубликовать свою рекламу?
Спасибо! Встроенного баланса нет (пока что...), а вот опубликовать материал(объявление) за деньги, есть. Реализовано с помощью элемента JBAdvert. Там ничего такого особого, поэтому я не стал заострять внимание о нем в новостях.
А когда можно будет демо сайт скачать?
Сегодня, ближе к вечеру выложу (чуток не успел раньше...). Сам дистрибутив уже доступен для скачивания всем активным подписчикам.
Спасибо! Дистрибутив увидел, а вот демо необходимо, посмотреть как все настроено и т.д и т.п )
Будет! И даже не одно ...сoming soon ;)
Сделайте чтоб на моб. версии , меню было ), а то неудобно просматривать возможности.
Вы правы. Yootheme Warp по умолчанию зачем то скрывает меню из шаблона для узких экранов. Вывел его насильно.
Не знаю может специально, может нет. На моб. версии в корзине поле с ценой и кнопками создать заказ, сначала видно только половину поля, при прокрутке в самый низ страницы появляется все поле. Chrome (HTC one m8)
Будут рад скриншоту на admin@jbzoo.com
Отправлено!
Спасибо! Мне кажется, что телефон масштабировал страницу корзины. Позже посмотрю, как этого можно избежать наверняка. На моем Asus Zenfone 5" вроде все нормально.
На HTC Desire 616 dual sim , тоже самое.
Вот! Нашел эти предательские пиксели от навигации Warp. Исправим! =)
Восхищён результатами - JBZoo 220v [high voltage]! Работаю с компонентом более трёх лет и всегда высоко оценивал потенциал вашей работы, Денис.
На сегодняшний день в JBZoo мне не хватает его возможностей для создания и управления сложными каталогами, типичными для баз данных реляционного типа. Как корзина JBZoo уже великолепен.
Пора расширять географию триумфального шествия. Удачи и Успеха, вашему проекту!
P.S.
А компонент будет двухфазным 380v ... вы же вроде бы физик по образованию, Денис? Или я не понял шутки )
Большое спасибо за радушные слова! В планах есть доработки фильтров, но похоже не раньше чем 2.2.1 (уже у самих руки чешутся :) )
Угу, радио-физик (КЗОИ) + программист. Думаю верно поняли. Это как 220v - 1 фаза, а тут 380v - в двое лучше :D
Денис вот это "Новый модуль сортировки в категории." не наблюдаю.
Где его посмотреть?
Антон, приветствую!
Он будет в Stable, пока что модуль в зачатках. Обещаю, первыми свидетелями новых фич всегда будут форумчане! :) Люблю я вас!
Еще вопрос по фильтру. Переходя в какую-либо категорию автоматически в фильтре появляется производитель... Это как ? и почему?
Это старая фича, еще со времен ~2.1.4 должна так делать. Не помню когда именно добавил, зато помню как было несколько просьб на форуме.
Хм... надо найти. Что-то не помню такой штуки.
Вот, со старого демо http://demo-old.jbzoo.com/monoblocks Скрин - http://llfl.ru/v8ia3u
Читал взахлеб. И автору за слог респект и за разработчикам за труды.
Вопросы:
1. О безопасности не увидел текста. Хотя бы "Мы провели тестирование на безопасность кодов и все обнаруженное обнаружили".
2. Каааартаааа.... )) Пожалуйста, примите к сведению работу с картой от гугломапс или яндекса. В части взаимодействия с вашим несравненным фильтром. Чтобы отображение на ней учитывало заданный пользователем фильтр.
3. С версии 3 вас ждет грандиозный успех. Но не торопитесь. Радует, когда наш брат добивается в мире успеха.
Спасибо, радует. Учитывая, что я не профессиональный копирайтер, а все же "пагромист" радует еще больше.
1. Про безопасность. Все вещи, о которых знаем - закрыли. У нас довольно много код-ревью и в этом месте кака-код отсеивается. И примерно там же работаем над безопасностью. Сказать что-то конкретное, хлопотно да и думаю скучно... В последнем задачнике после моего ревью 220v у нас было в районе 200 правок (просто по коду, без фич). После этого мы запустили закрытое бета тестирование на форуме.
2. Вы имеете ввиду xml карту? Есть xmap и JBZoo c ним дружит. Примерно так http://jbzoo.ru/sitemap.xml Или я не понял вопроса? =)
3. Медленно, но верно =) Делать версию 3.0 зудит уже сейчас, но вот нельзя просто так взять и ...
Карта другая. Наглядная, географическая. Сейчас удобнее для понимания упомянуть Widjet Map.
Ааа, да! Можно даже сейчас сделать в виде рецепта на форум, но пока руки не дойдут =( Постараюсь.
Ой, еще вопросик:
Про обновление. Линк вставьте на форум, где обсуждается ручной переход на 220.
Кстати, сроки даже приближенные не написали про день "Х", соответственно про конвертор.
Эх... сроки... После праздников мне нужно переварить текущий задачник. Сейчас в нем накопилось в районе 400-600 хотелок со всего форума. Чуйкою чую, что там много дублей, много не в тему, а много сделано. После этого смогу сказать что-то адекватное.
Про ручной переход - напишем, обязательно. Ссылка будет.
Начал реализовывать новый проект на новой корзине-полный восторг!!!!Маленькая хотелка, возможно конечно такое уже кто то просил, но все же...Было бы прикольно если появится элемент события при смене статуса который бы позволял управлять группой доступа пользователя!! Пока буду написать такое сам, хотя не професиональный программист.
Спасибо. Будет подобный элемент. Ориентировочно в 2.2.1 вместе с другими элементами.
Отлично, но дизайнера вам все равно не хватает)
Дизайнера-верстальщика даже скорее (не помешало бы лишние иконки, звездочки и т.д. перевести в шрифт, например, который болтается в uikit)
Я буду рад выслушать любые ваши замечания по верстке :)
Дизайнер нам не нужен. Зачем?))
чтобы привести в порядок расположение блоков хотябы. очень заметно, что верстка делалась по факту, а не по макету дизайнера (грамотно вписал бы гамму, объяснил, что максимально приемлимое количество цветов 5 ( https://color.adobe.com/explore/newest/?time=all) из которых один базовый один дополнительный и прочее "ранжирование", нарисовал бы равные отступы, грамотно распределил блоки и т.д.)
до сих пор куча элементов, которые можно свободно перевести на uikit, практически исключив использование дополнительных css.
http://fortawesome.github.io/Font-Awesome/examples/ для примера (иконки звезд в конце) для рейтинга и подобные детали.
взять те же иконки "скидка" - растровые изображения ведь, которые до кучи полностью выбиваются из окружения uikit количеством деталей и лютой тенью. по-моему растровые изображения в фреймворках изжили себя в принципе (во вкладке "комментарии" тоже растровые изображения. хотя в фонтавесоме есть все соцсети).
я даже не знаю на чем сосредоточиться в общем - таких мелких косяков куча (лютые тени триггера с выбором валюты, лютые триггеры выбора цвета с градиентом, рамкой! и анимацией, неравные отступы и т.д. и т.д.). работает очень круто, но выглядит не очень целостно.
ну на то это и RC, в принципе.
Спасибо, Дмитрий! Весьма рад нашему диалогу, т.к в конструктивной критике рождается истина. Вы верно говорите, UK и FA - штуки хорошие, вот только как быть если я использую упрощенный шаблон, который подразумевает минимум стилей? Ради звездочек подключать весь FA в несколько сотен килобайт http://llfl.ru/zl5uox? или смириться со звездочкой в 2 кб, которая легко переделывается в base64?
Во всех своих предложениях вы забываете пару важных вещей, от которых мы не можем никак отказаться. JBZoo - это конструктор. А это значит, что все расширения JBZoo (элементов почти 150 шт), должны быть независимыми друг от друга и тем более от своего шаблона (сейчас их два, будет в районе 5-6). JBZoo лишь управляет всей это кухней и предоставляет API. В идеале CCK вообще ничего не должен уметь. А тут получается мы должны зависеть от шаблонов, которые в конце логической цепочки.
И так, по порядку:
- Согласен, соответствие цветов - правильная и важная штука. Но зачем в конструкторе "из коробки" должна быть определенная гамма и какой-то дизайн в принципе? Наоборот стремимся к минимуму стилей, как на демо популярных CSS фреймворков. Как только нам стоит добавить какие-то излишки во внешний вид, то у конечного разработчика сайта появляется головная боль как это переопределить, не так ли? Раньше с этим были проблемы, теперь же можно изменять стили просто подложив Less в нужное место - он подключится вместо нашего - раскрашиваем как хотим, ???, Profit! Тот же переключатель валют станет набором radio - легко кастомизировать "под себя".
- Мы не можем полагаться только на возможности UIkit (как и любого другого фрейма для шаблонов), т.к это не основа, а всего лишь один из шаблонов. С другой стороны, опять же потому что это конструктор, значит все должно уметь работать модульно и независимо. CSS фреймворк напротив пытается все объединить в кучу. А у вас получалось сделать проект на чистом CSS фреймворке, без дополнительных CSS стилей? Конечно он не должен быть похож на демо этого фрейма. Если да, то буду очень рад ссылке чтобы набраться опыта.
- А если я не использую шаблон UIkit, то вы предлагаете загружать отдельно весь Font-Awesome ради 5-6 иконок? Вот смотрю размер, стоит ли игра свеч... 400кб или 700кб http://llfl.ru/zl5uox и пока мне кажется, что собственная иконка, определяемая внутри элемента через CSS - вполне нормальный выход из ситуации. Через CSS её можно переопределить и элемент не зависит от других шаблонов.
- "Лютые тени, лютые триггеры, отступы"... Когда смотрю чужой код, тоже все не привычно и каждую строку считаю "лютой". Если с ним работаю, то проникаюсь смыслом и со временем многое становится на свои места. Конечно, у нас не все идеально, но вот без конкретики я даже не знаю, что вам ответить...
Дмитрий, если, у вас получится, то напишите мне, пожалуйста, на admin@jbzoo.com, что именно вам не так в нашей верстке? Я был бы вам безмерно благодарен. Мы как раз занимаемся шлифованием кода. Заранее спасибо!
PS Извините. Не вы ли мне несколько месяцев назад предлагали сделать уникальный дизайн для JBZoo (через переписку в VK) ?
- "Согласен, соответствие цветов - правильная и важная штука. Но зачем в конструкторе "из коробки" должна быть определенная гамма и какой-то дизайн в принципе?"
Так в этом суть и есть. Кастомайзер любого фреймворка имеет гамму (в uikit она из 4х цветов + disabled). Т.е. я представляю, что это работает так:
захожу на http://getuikit.com/docs/customizer.html, настраиваю свою гамму, свои отступы и т.д. после чего этим css меняю тот css, который у вас в jbzoo по умолчанию. И это меняет абсолютно все. Т.о. минимумом усилий я получаю свой собственный дизайн (хоть и с нюансами).
- "Мы не можем полагаться только на возможности UIkit (как и любого другого фрейма для шаблонов), т.к это не основа, а всего лишь один из шаблонов."
Вы ответили на вопрос выше. пока это так - подобные косяки будут вылезать с различной степенью вероятности.
- "А у вас получалось сделать проект на чистом CSS фреймворке, без дополнительных CSS стилей? Конечно он не должен быть похож на демо этого фрейма."
Это вопрос "уникальности". Ваше же решение по идее должно быть в больше степени "универсальным", нежели "уникальным". Нет, я ни разу не делал "универсальных" решений.
- "А если я не использую шаблон UIkit, то вы предлагаете загружать отдельно весь Font-Awesome ради 5-6 иконок? Вот смотрю размер, стоит ли игра свеч... 400кб или 700кб http://llfl.ru/zl5uox и пока мне кажется, что собственная иконка, определяемая внутри элемента через CSS - вполне нормальный выход из ситуации. Через CSS её можно переопределить и элемент не зависит от других шаблонов."
Абсолютно не стоит. НО, все используемые иконки из разных сетов. Это противоречит одному из важнейших дизайнерских принципов "повторяемость" и очень плохо выглядит на мониторах с высоким ppi (= на любом телефона-флагмане, а если их 20% от общей массы смартфонов, которые сейчас занимают добрую половину интернета - это очень много).
В данном случае вообще не стоит использовать растровые изображения. Можно отрисовать в иллюстраторе необходимые ОДНОТИПНЫЕ иконки (или просто перевести в кривые нужные иконки из fontawesome) и использовать, как SVG (тут сотни плюсов - эти иконки можно анимировать средствами css, менять цвет, делать тени и т.д. и т.п.) а еще лучше эти иконки перевести в собственный шрифт (т.к. SVG пока еще поддерживается хуже). Будет и весить мало и все иконки в одном файле и все это векторное (цвет иконки можно поменять одной строчкой css, менять их размер одной строчкой без потери качества и т.д. - универсально же).
- "Когда смотрю чужой код, тоже все не привычно и каждую строку считаю "лютой". Если с ним работаю, то проникаюсь смыслом и со временем многое становится на свои места. Конечно, у нас не все идеально, но вот без конкретики я даже не знаю, что вам ответить..."
"Лютость" заключается не в коде (в том, что у вас отличный код я вообще не сомневаюсь, т.к. вы куда больше моего понимаете php, js да и html c css вероятно - посмотрите на мой jbzoom и поймете уровень понимания php :D) а в том, как это выглядит в целом.
Желательно все приводить к общему виду. Тут надо проникнуться философией того направления, в котором вы делаете (если это шаб default uikit) - это строго flat направление. В т.с. тени недопустимы (и тем более! внутренние, как на триггере с валютами. внешние возможны, но тогда надо проникнуться material) так же не допустимы градиенты (они есть в однои из шабов uikit если память не изменяет, но там смешаный стиль - градиенты только на "полных" элементах, что не выбивает их из общего вида). Не допустимы явные двойные рамки (как на плашках с выбором цвета) да и анимация поворота выглядит лишней (а там еще и градиент). На демо сайте справа есть бегунок выбора ценового диапозона. Куда логичнее, если триггер цвета будет оформлен так же (либо хотябы сделан меньше, а рамка высветлена до цвета контура бегунка). и т.д.
что до отступов - сделайте принтскрин страницы товара и наложите в фотошопе на любую модульную сетку с пересечениями. все будет наглядно видно.
- "PS Извините. Не вы ли мне несколько месяцев назад предлагали сделать уникальный дизайн для JBZoo (через переписку в VK)?" - это точно не я. Универсальное решение не может иметь уникального дизайна - это надо понимать)
Дмитрий, спасибо, что уделяете мне время.
- Не вижу проблемы с собственным кастомизированным UIkit. Главное не забыть исключить из него reset и вперед! Люди сейчас точно так же настраивают jQueryUI (календари, вкладки и т.д.)
- Будут вылазить косяки - будем исправлять =) Для этого даже ежедневные билды организовали.
- Любой фреймворк (даже от языка не зависит) - это лишь скелет, эдакий быстрый старт. Сделать на нем что-то интересное, без горстки своих стилей - ну никак. У нас вся эта горстка собралась в одном файле. Всего лишь 4-5кб для UIkit (с учетом копирайтов и форматирования).
- Про телефоны и "повторяемость" согласен. Тут мы не все обкатали. Не все же сразу =) Сделать это за раз с обратной совместимостью - титанический труд. :) С другой стороны, цели переделывать те же иконки рейтинга Zoo задачи у нас не стояло. До них очередь дойдет в своем компоненте. А пока что две строки CSS и иконка переопределена.
- Эмм... Делать еще свой набор иконок... нет. Причин много, даже перечислять страшно. Одна из них, например, обратная совместимость. Вторая все изобретено до нас. Удобство иконок через шрифты FA я прекрасно понимаю. Использовал ни раз. Пока что не могу использовать это богатство до поры до времени... Все желающие используют их опционально через UIkit.
- Ок, про "лютость" не верно вас понял. Извините. Сетка - да, некоторые места растягиваются или сжимаются "не-в-по-пад". На демо, в наиболее важных местах используется UIkit Grid, остальные размеры не поднялась рука хардкодить, т.к знаю что демка пойдет в тираж и будет использоваться на сотнях и даже тысячях проектов в будущем. Про градиенты и плоскость. С одной стороны есть геморой, что разные элементы тянут за собой свои стили. Например, идеи UIkit не совпадают с jQueryUI, а ведь еще есть наши стили и стили JS библиотек и разные виджеты. Уж не говоря про винегрет, который добавит еще шаблон Joomla. C другой стороны, стоит там что-то подправить, получаем кастомизированную кастомизацию библиотеки - о ужас, костыли CSS (ну вы поняли...) Сейчас суммарно в проекте порядка 300-400кб стилей - и совместить все в едином дизайнерском порыве... Ммм... стоит нам добавить сюда переключатель шаблонов - действительно головная боль... Пока что мы все усредняем в сторону flat и постоянно думаем над обратной совместимостью. В целом уже сейчас получается намного лучше, чем было до 2.2.0
PS Да, это не вы :) Тот человек предлагал совсем иные идеи и не понимал всей скрытой сложности под "универсальностью".
Обратная совместимость. Точно.
Ну, может к собственному компоненту и приведете все к общему виду)
О да... Я время от времени пишу чисто свои хотелки в отдельный, невидимый задачник. Уже только корзина хочет получить порядка новых 160 фич и добработок. И шаблонизация каталога там в первых рядах. Наполеоновские планы прям))
Здравствуйте! Появилась ли возможность редактировать заказ?!?! Добавлять, удалять товары ?!
Добрый день,
Пока что такой возможности не предусмотрено. Заказ имеет огромное количество взаимосвязей с параметрами сайта, от которых зависит итоговая цена. Поэтому он создается монолитной единицей, при этом копируя различные важные данные в себя.
Представим ситуацию, что нам захочется отредактировать заказ через год. К этому моменту не будет существовать товаров из заказа, будут совершенного другие модификаторы цены, акции, скидки, комиссии платежных систем, цена за доставку, курсы и прочее прочее...
Отредактировать подобную сущность - действительно сложно. Решение задачи стоит в будущих планах.
Добрый день.
Вопрос по валютам:
у многих поставщиков свой курс валюты...
возможно ли сделать так, что бы для каждого поставщика вести свой курс, т.к. в данном случае валютные сервисы просто бесполезны?
Добрый день, Андрей.
В панели управления вы сами выбираете источник курса валюты. Можно использовать популярные онлайн сервисы, либо значения, которые введены в па настройках вручную, либо из локального XML файла (который можно обновлять через внешнее API, либо через FTP).
Если существующих способов не хватает ( http://jbzoo.ru/docs/cart-currency-elements), то всегда можно написать свое расширение размером с одну php-функцию c совершено произвольной логикой. Например, сделать зависимость курса от погоды и магнитных бурь :)
т.е. если я правильно понял я могу для каждого поставщика создать свою валюту например: $_company1, $_company2 и т.д., а потом вручную актуализировать курс?
Сделать можно и так. Для этих целей можно придумать внутреннюю валюта со своим кодом (Vend1, vend2), но внешний вид настроить как у настоящего доллара/евро/рубля.
Я считаю, что вы сами себе придумываете головную боль, т.к в будущем будет очень сложно ориентироваться во всей этой массе "мнимых" валют. Скорее всего в детальном рассмотрении вашей задачи получится найти другое решение - как минимум, указывать оригинальную цену и не копать себе яму с посторонними вычислениями. Конечно если очень хочется - никто не мешает сделать хоть сотню своих валют и управлять ими вручную из панели управления.
Не думаю что я рою себе яму... объясню.
у меня на сайте товары в гривне, но ситуация с валютой сейчас не стабильна и поставщикам надоело прайсы менять и новые слать и они перевели их $$$ (как бы с себя кусок работы сняли) и все бы хорошо если бы их курс совпадал с рыночным, но блин у каждого свой... и представьте ситуацию когда пару раз в неделю энное количество поставщиков меняет курс... у меня JBZoo: 2.1.5 Pro и приходится на все товары редактировать цену, а зачастую цена на каждый товар с вариантами...
По этому для меня это очень важно.
и кстати как осуществляется переход с JBZoo: 2.1.5 Pro на 220V?
Да, согласен. В такой ситуации можно задуматься о произвольном курсе. В этом случае создавать свои курсы и редактировать их из панели управления. Пока что проблему вижу только в том что при большом кол-ве поставщиков придется управлять большим количеством настроек. 20 поставщиков - 20 разных "одинаковых" валют. Легко запутаться и нужно быть осторожным в вычислениях (как это происходит описано тут - http://jbzoo.ru/docs/cart-currency ). Естественно в таких ситуациях противопоказаны сложные конвертации вида RUB -> USD -> UAH.
Руководство по ручному обновлению будет чуть позже, сейчас занимаемся отладкой этого процесса.
ок. спасибо
В очередной раз просто хочу сказать Вам, Денис, и всей большой и дружной команде JBZoo огромное спасибо!
И за сам JBZoo, и за поддержку, оперативность, адекватность :), грамотность и отзывчивость!
На моем сайте продаются номера в отеле и билеты на мероприятия. Есть "Шаблон формы заказа" и он для всех заказов, хотя поля должны быть разные для двух услуг. Что делать?
Добрый вечерь. На сайте цена товара зависит от размеров. При выборе определенного размера, цена меняеться. А вот фильтр по цене не видит все вариации цен одного товара кроме цены по умолчанию. Почему так? http://prntscr.com/csm8u0
1
1
1
1
1
1
1
1
1
1
1
1
1
-1" OR 2+224-224-1=0+0+0+1 --
1-1 OR 545=(SELECT 545 FROM PG_SLEEP(15))--
1-1)) OR 310=(SELECT 310 FROM PG_SLEEP(15))--
1Of2Pix4H')) OR 937=(SELECT 937 FROM PG_SLEEP(15))--
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
1
1
1
1
1
1
1
1
1
1
1
1