Возвращаясь к кэшу в скриптах Webasyst

Вопрос кэширования часто используемых и редко изменяемых данных продолжает волновать пользователей скриптов Webasyst, в частности Shopscript 5. В последнем обновлении фреймворка появились кое-какие-дополнительные возможности. Пока это недокументировано, хотя документация, вроде как, обещана. Кеширование данных сейчас возможно при использовании либо файлового кеша, либо Memcached. Ваш покорный слуга закоммитил еще и адаптер для XCache, но его пока нет в обновлении, распространяемом через приложение «Инсталлер».

Читать далее Возвращаясь к кэшу в скриптах Webasyst

Бейджи автоматически в Shopscript5

Либо я чего-то не нашел, либо в Shopscript 5 действительно нет возможности автоматически добавлять «бейджи» типа «Новинка» или «Скидка». Только вручную. Ну, вручную там можно какие хочешь делать, это понятно. Но самостоятельно следить, чтобы у товара появилась соответствующая наклейка очень грустно. Пришлось добавить пару строк в шаблоне.

Смысл в том, что если товару не назначен никакой бейдж, то назначим его автоматически. Поскольку по задумке авторов скрипта бейдж может быть только один, то и не будем ничего нового придумывать. Если товар создан менее 30 дней назад, то добавим ему бейдж «Новинка», если «зачеркнутая цена» отлична от нуля и меньше чем цена и минимальная цена товара, то добавим бейдж «Скидка».

Включение-выключение автоматического добавлений бейджей, а также срок, в течение которого товар считается новинкой, можно сделать переменными темы (см. по ссылке пункт 6).

Плагин самовывоза для Shopscript5

Сделал плагин самовывоза для Shopscript5 с ограничением на регионы. Бесплатный.

Установить можно из магазина Webasyst или из меню приложения «Инсталлер».

Исходный код доступен на Github и Bitbucket.

Поля адреса при оформлении заказа Shop-Script 5

В летнем обновлении до версии Shop-Script 5.1.4 появилась очень полезная возможность спрашивать только те данные пользователя, которые действительно нужны для доставки. С этим обновлением процесс оформления заказа у этого движка стал лучшим среди тех движков, за которыми я наблюдаю.

Но для точной настройки необходимо изменить все модули доставки, используемые в конкретном магазине. Каждый модуль должен возвращать список полей, которые необходимы для доставки этим конкретным способом. Читать далее Поля адреса при оформлении заказа Shop-Script 5

Дополнительные характеристики товара в списках

Понадобилось мне использовать дополнительные характеристики товара в списках, которые можно создавать в админской части WebAsyst ShopScript. Вот есть у товар трех размеров, в списке товаров в категории показывается, что есть размеры S, M и L, а в списке новинок — нет. Обидно. Тем более, что кнопку «купить» я товарам в списке сделал, но надо же еще размер уточнить.

Чтобы, на скорую руку, исправить это недоразумение добавил в файл /published/SC/html/scripts/classes/class.productlist.php пару строк. В указанном файле надо найти метод getProducts() и перед последней строчкой return $products добавить следующий код:

Все, теперь у каждого товара в списке есть массив дополнительных характеристик product_extra, как у товаров при просмотре категории.

WebAsyst Shop Script: шаблон выбора способа доставки

Переделал у WASS шаблон выбора доставки. Сначала хотел обойтись просто JS-скриптом, но потом, все-таки, шаблон изменил. Раньше у способа доставки, у которого было несколько вариантов, вот, например, пунктов выдачи в разных городах, появлялось выпадающее меню. В этом меню надо было выбирать подходящий вариант. Как-то вот так, как на скриншоте

Выпадающий список городов

Когда там просто название города, все смотрится более-менее. Читать далее WebAsyst Shop Script: шаблон выбора способа доставки

WebAsyst ShopScript убрать авиадоставку из почты

Раз уж я взялся за модули почты, то и до WebAsyst ShopScript руки дошли. Давно хотел убрать из ее «родного» модуля выбор типа доставки — «Наземная» или «Авиа». Все равно почта все по-своему делает, зачем клиента путать? оставим наземную и все. Тем более, что тут на 5 минут занятие.

Изменения надо вносить в файл /published/SC/html/scripts/modules/shiiping/class.russianpost.php. Все изменения вносятся только в метод calculate_shipping_rate()

  1. Закомментарить все присвоения переменной $AirCost. Необязательно, но пусть будет для полноты картины.
  2. Закомментарить все действия с массивом $Rates
  3. После проверки на наличие товара с бесплатной доставкой в заказе убрать все дополнительные проверки и просто вернуть стоимость доставки.

Читать далее WebAsyst ShopScript убрать авиадоставку из почты

One page checkout

Самое забавное то, что в PrestaShop реализовали функцию «оформление заказа на одной станице» (one-page checkout) примерно к тому моменту, когда мода на эту фишку прошла и многие магазины отказываются от такого способа оформления заказа. Слишком много полей, покупатель пугается сложности оформления, путается. Сдается мне, что WebAsyst реализует эту функцию, когда она совсем уже будет не нужна.

Увы, не успевать за тенденциями — свойство большинства, если не всех, коробочных продуктов.

Список статей блога WebAsyst ShopScript

Список статей блога, честно говоря, в webasyst сделан довольно бестолково. Лично мне больше нравится, как сделано в WordPress — с возможностью убирать часть поста»под кат», т.е. в основном списке публиковать только часть статьи и ссылку «читать дальше» для тех, кто заинтересовался.

Вообще есть один или несколько плагинов, продаваемых умельцами, которые позволяют делать такую ленту с анонсами и даже прикреплять картинку к анонсу. Этот вариант я запомнил и решил, что если быстро ничего не придумаю, то куплю.

Сначала решил, что самое простым решением будет оборачивать часть статьи в DIV и в CSS прописать ему свойство ‘display:none;’. Грубо, но должно получиться. Единственное, что меня остановило — статьи пишу не я, а объяснять как «оборачивать в DIV» мне очень не хочется. И еще контролировать, чтоб вложенность тэгов соблюдалась.

Тогда я обратил внимание, что при написании постов никто не пользуется тэгом HR (горизонтальная линия) и решил, что это будет отличный разделитель. Кнопка для вставки этого тэга есть в стандартном визуальном редакторе, так что проблем у авторов статей возникнуть не должно. Читать далее Список статей блога WebAsyst ShopScript

Проверка логина в Shop-Script

На форуме WebAsyst’а увидел пост про проверку логина, введенного при регистрации. Как обычно впал в ступор от изящного решения. Весь рассматриваемый код находится в файле core_functions/registration_functions.php. Достал напильник и немного подточил.

Во первых есть функция _testStrInvalidSymbol($str). Проверяет строку на наличие неправильных символов. Неправильные символы, с точки зрения авторов скрипта: одинарные и двойные кавычки, знаки больше и меньше, а также обратный слэш — всего пять. Угадайте с одного раза сколько раз в теле функции проверяется условие if. :) Если в строке найден «неправильный» символ, то функция возвращает FALSE, если все в порядке — TRUE.

Читать далее Проверка логина в Shop-Script