Блог

Адаптация карт плагинов расчета доставки

Адаптация карт плагинов расчета доставки

Тема дизайна Default 3

Для стандартной штатной темы дизайна Default 3 адаптация не требуется (почти). Чтобы кнопки открытия/закрытия карты выглядели наряднее, добавьте css-правила стилей для элеменов button. Например в файл шаблона head.html:

<style>
    .checkout-form button {
        background: #fcd630; 
        color: #000; 
        outline: 0; 
        padding: 5px 10px 6px;
        font-size: 1.1em;
        border: 1px solid rgba(0,0,0,0.3);
        border-color: rgba(0,0,0,0.2) rgba(0,0,0,0.3) rgba(0,0,0,0.3) rgba(0,0,0,0.3);
        -webkit-appearance: none; 
        box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); 
        border-radius: 3px; 
        text-shadow: 0 1px 0px rgba(255,255,255,0.5);
        background: #fcd630 -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.0) 100%); /* FF3.6+ */
        background: #fcd630 -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0.0))); /* Chrome,Safari4+ */
        background: #fcd630 -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.0) 100%); /* Chrome10+,Safari5.1+ */
        background: #fcd630 -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.0) 100%); /* Opera 11.10+ */
        background: #fcd630 -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.0) 100%); /* IE10+ */
        background: #fcd630 linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.0) 100%); /* W3C */
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fde992', endColorstr='#fcd630',GradientType=0 ); /* IE6-9 */ 
    }
    .checkout-form button:hover {
        cursor: pointer;
        background: #fcd630
        linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.3) 100%); 
    }
    .checkout-form button:active {
        background: #f3cd27;
        text-shadow: none;
        box-shadow: none;
    }
    .checkout-form button:disabled {
        background: #eee;
        color: #999;
        text-shadow: 0 1px 1px #fff;
        cursor: pointer; 
    }
    .checkout-form button.small {
        font-size: 0.9em; 
        padding: 3px 5px; 
    }
    .checkout-form button.large {
        font-size: 1.6em; 
        padding: 7px 10px; 
        font-weight: bold; 
    }
    .checkout-form button.gray {
        background: #eee linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.0) 100%); 
    }
</style>

Тема дизайна InCart

Для темы InCart 1.3.1 нужно отредактировать файл index.html, добавив для тега body атрибут data-theme-id="incart"

Расчет доставки InPost для Webasyst Framework

Расчет доставки InPost для Webasyst Framework

Готов новый плагин расчета стоимости доставки для Webasyst Framework. первая версия достаточно простая, с небольшим количеством настроек — ждем пожеланий и предложений по доработке. Плагин полностью соответствует требованиям Webasyst и в скором времени будет опубликован в магазине приложений по цене 499 р. Если успеете написать нам до публикации плагина в каталоге приложений, можете получить скидку 25%.

Новая версия «Группировки характеристик»

Отправилась на проверку новая версия плагина «Группировка характеристик». В новую версию мы включили все доработки, о которых вы просили:

  1. Скрытые группы. Теперь любую группу можно объявить скрытой. Такая группа вместе со своими характеристиками не будет показана покупателю. Ну, то есть просто отфильтрована хелпером на этапе пересортировки и в выходной массив не попадет вообще.
  2. Редактирование названия группы. И почему мы этого не сделали сразу? :-/
  3. Копирование настроек. Настройки разбивки по группам для одного типа товара теперь можно скопировать в другой и не настраивать все с самого начала. У кого много типов товаров, должны оценить.

Если у вас есть еще идеи о том, как улучшить этот плагин, пишите, не стесняйтесь.

Новая версия плагина Параметры для Метрики

Сегодня опубликована новая версия плагина «Параметры заказов для Яндекс.Метрики». Несмотря на то, что обновление заключается всего в одной фразе «Добавлена раздельная настройка счетчиков для разных витрин», внутри плагин поменялся почти на половину. Пришлось переделать систему хранения настроек, так как штатная не позволяет хранить в подходящем виде раздельные настройки профилей и все такое.

Надеемся, всем понравится.

Хэширование паролей

Для совместимости с предыдущими версиями скриптов Webasyst во фреймворке по умолчанию используется очень простой и нестойкий алгоритм хеширования пользовательских паролей, позволяющий довольно быстро восстанавливать пароль методом перебора. Для хеширования по-умолчнию используется функция PHP md5().

В качестве рекомендации, в глубине документации сказано, что с версии фреймворка 1.0.8 можно задать собственную функцию для хэширования. Но есть одна неочевидная тонкость: для хранения хэша Webasyst Framework использует поле БД длиной 32 знака. То есть сохранить хеш SHA256 (64 знака) не получится. Поэтому как ни соли, какие методы хэширования ни применяй, функция wa_password_hash() должна возвращать строку не более 32 символов, то есть md5() от результата.

Дополнительное поле адреса в печатных формах

Во всех печатных формах можно вывести дополнительные поля, которые вы определили для адресов доставки (или оплаты). Правда, для этого придется приложить немного усилий. Даже странно, что разработчики Shopscript 5 не позаботились о том, чтобы показывать идентификаторы дополнительных полей. Проглядели?

В качестве примера добавим поле «Номер склада» в печатную форму «Простая накладная».

В настройках магазина, в разделе «Оформление заказа», на закладке «Контактная информация» найдите группу полей «Поля адреса» и добавьте к ним еще одно с названием «Номер склада».

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

Теперь создайте новый заказ или отредактируйте существующий так, чтобы у нового поля было какое-нибудь значение.

Дополнительное поле в заказе

Теперь нужно выяснить идентификатор дополнительного поля, который Shopscript 5 присвоил самостоятельно. Возможно, этот идентификатор где-то показывается, но нам увидеть его не удалось. А он есть.

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

Внимание! Если вы уже вносили изменения в шаблон печатной формы, выделите весь код скопируйте и сохраните его где-нибудь.

В шаблоне печатной формы удалите все (Ctrl-A потом Del) и напишите вместо всего три строчки:

<pre>
{print_r($order.shipping_address)}
</pre>

Откройте заказ и в нем откройте исправленную печатную форму — необходимо отметить соответствую опцию в верхнем правом углу и нажать кнопку «Печать». На экране откроется примерно такой документ, со списками идентификаторов полей адреса и их значениями. Возможно список будет выглядить немного по-другому, но надеюсь, необходимый идентификатор найти сможете. У меня получился nomer-sklada. Запомните название идентификатора.

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

Теперь нужно вернуть печатную форму в исходное состояние. Нужно вернуться в настройки магазина, к печатным формам и снова открыть шаблон на редактирование. Если до правок использовали встроенный шаблон, нажмите в верхнем правом углу, чуть выше окна с редактором шаблона, ссылку «Восстановить оригинал». Если использовали свой вариант шаблона, скопируйте его обратно оттуда, куда сохранили резервную копию.

В подходящее место шаблона давьте вывод нового поля. Примерно вот так:

{if !empty($order.shipping_address['nomer-sklada'])}
    <p>
        Номер склада:
        <b>{$order.shipping_address['nomer-sklada']}</b>
    </p>
{/if}

Я добавил в раздел с адресом доставки, получилось вот такое:

Дополнительное поле в заказе

Сохраните отчет. Все.

Новая версия плагина с отчетами

Долгожданная версия, в которой можно фильтровать заказы по статусам отправилась на проверку и публикацию в магазине приложений Webasyst. Наберитесь еще немного терпения.

Также поправили баг с выпадением из обработки заказов в последнем дне выбранного периода.

Теперь настройки графика, а заодно и выбранные статусы, надо сохранить самостоятельно — при изменении чекбокса больше ничего не сохраняется. А то нашлись люди, которые в задумчивости настолько часто переключали режимы отображения, что браузер не успевал отсылать запросы на сохранение новой конфигурации. :)

Автоматическое добавление наклеек

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

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

{if !$product.badge}
    {if (((time() - strtotime($product.create_datetime)) / (60*60*24)) < 30)}
        {$product.badge = 'new'}
    {/if}
    {if $product.compare_price && ($product.compare_price > $product.price)}
        {$product.badge = 'lowprice'}
    {/if}
{/if}
 

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