Блог

Плагин профессиональной интеграции Boxberry

Плагин профессиональной интеграции Boxberry

Выпустили плагин для профессиональной интеграции админской части со службой доставки Boxberry. В первой версии плагин позволяет прямо из карточки заказа формировать вручную заявки на доставку Boxberry, а также заявки на отправку почтой через Boxberry. Да, нам известно, что плагины расчёта стоимости доставки Boxberry, опубликованные в магазине приложений Webasyst тоже это умеют — но делают они это в автоматическом режиме, что накладывает ряд ограничений. Самое, на наш взгляд, неудобное — невозможность выбора пункта отправления: какой в настройках задан, с таким и будут создаваться заявки. А если вы сдаёте отправки в несколько пунктов, в зависимости от ситуации? 

Обновление «Интеграции СДЭК» 5.1.0

Обновление «Интеграции СДЭК» 5.1.0

Честный знак

В новой версии плагин научился передавать в накладную маркировку «Честный Знак». Все позиции с маркировкой разбиваются на единичные записи, а если у вас включено «сворачивание» с целью экономии бумаги — то вложения с маркировкой в этом участия не принимают. Настройка переименования по шаблону для таких вложений работает как обычно. Нужно ли сделать передачу маркировки отключаемой? Нужно ли редактирование маркировки при создании заявки или достаточно того, что она просто подтягивается из заказа? Напишите нам ваши предложения!

Опубликована видеоинструкция о том, как присылать лог-файл

Заставка видео

Опубликовали краткую видео-инструкцию о том, как поделиться лог-файлом. А то, право слово, грустно смотреть, как клиенты иногда присылают файлы на десятки мегабайт из которых важны только несколько строк.

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

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

Тема дизайна 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}

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

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

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