Готовые тиражные решения на 1С-Битрикс
Техническая поддержка:
+7-908-208-1965
Отдел продаж, с 7:00 до 18:00 (по Москве)
Звонок по России бесплатный
Вы также можете заказать звонок

Документация и помощь

  • Архив

    «   Декабрь 2017   »
    Пн Вт Ср Чт Пт Сб Вс
            1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
                 

Технические особенности решений ROMZA (ТОРР): Обновление мастером, Ajax обработчики, сохранение параметров romza_settings

Для сокращения рисков при внедрении для партнеров и программистов и для повышения качества внедрений наших продуктов, мы начинаем цикл статей под общим названием
Технические особенности решений ROMZA или ТОРР.

0b7929268f7a7caa5ed53f0892625579.jpg


Обновление типовых решений ROMZA:

Во всех мастерах наших типовых решений есть специальный режим обновления.
Режим обновления станет доступен для определенного сайта (SITE_ID) в том случае если была завершена установка этого мастера в режиме установки, при этом на последнем шаге установки происходит установка Опции "wizard_installed" = "Y" для нужного сайта:
COption::SetOptionString($wizard->GetVar('solutionName'), 'wizard_installed', 'Y', false, $siteID);
// $wizard->GetVar('solutionName') = код типового решения, например yenisite.bitronic2
// $siteID = ID сайта для которого произведена установка
Соответственно режим обновления появится только в том случае — если для выбранного сайта опция "wizard_installed" установлена в "Y".

Режим обновления работает следующим образом:
1. Создается папка
/bitrix/templates/romza_#КОД_МОДУЛЯ_БЕЗ_YENISITE#_#НОМЕР_ВЕРСИИ#
Например для решения Битроник2 версии 2.20.0 это будет такая папка:
/bitrix/templates/romza_bitronic2_2.20.0
в эту папку копируется шаблон решения таким какой он есть в эталонной версии.
Если вносились изменения в шаблон, то все ваши изменения останутся на месте в папке с предыдущим номером версии.
Например
/bitrix/templates/romza_bitronic2_2.19.1
Этот шаблон можно вернуть в любой момент выбрав его в настройках сайта

2. В созданную на предыдущем шаге папку копируется файл для кастомизации стилей.
Из текущего шаблона в новый копируется файл template_styles.css если таковой имеется.
Он автоматически подключается последним из стилей и может быть использован для кастомизации и перезаписи CSS правил для решения.

3. Происходит обновление публичной части.
Алгоритм обновления такой:
Если для файла публичной части необходимо обновление то сначала создается копия файла с текущей датой (датой обновления мастером), затем в этом файле производятся необходимые манипуляции.

Пример:
был файл index.php в корне сайта, после обновления от 26 декабря 2016 года в 13-05 его содержимое будет доступно в файле index-2016_12_26-13_05_00.php который будет лежать в той же папке.
При этом содержимое index.php изменится по нужному алгоритму.

Как правило обновления публичной части добавляют какой либо параметр в arParams компонента, поэтому в файл либо добавляются либо заменяются определенные строки и при этом изменения не влияют на работоспособность.
Но на всякий случай копия файла создается всегда, чтобы в любой момент можно было отменить изменения.

4. Копируется папка ajax из папки мастера с заменой файлов.
При этом если были какие-то изменения в ajax обработчиках в таких файлах — то они потеряются.
Копии в ajax папке не создаются!
Как правило, в AJAX обработчиках не должно быть изменений из вне. Поэтому имейте ввиду что изменения потеряются.

AJAX обработчики типовых решений

все Ajax обработчики в наших типовых решениях всегда находятся в публичной части сайта в папке ajax (SITE_DIR/ajax/)
Если нужно поменять содержимое какого либо обработчиков, то нужно скопировать нужный файл в другую папку (напр. ajax_new)
и сделать 302 редирект либо через .htaccess либо через urlrewrite.php Битрикса (только если включен mod_rewrite для Apache2) либо через настройку ngnix.
В дальнейшем планируется расширить кастомизацию AJAX обработчиков через события.

На данный момент в решениях:
  • Битроник2 (yenisite.bitronic2, yenisite.bitronic2pro, yenisite.bitronic2lite);
  • Soft (yenisite.soft);
  • Monarch (yenisite.furniture);
  • Centurion (yenisite.stroymag);
для ajax обработчика каталога /ajax/catalog.php поддерживается кастомизация через подключение файла (если он есть) custom_ext_filter.php, который должен находится в той же папке.


Сохранение параметров компонентов в папку romza_settings и их получение для ajax

в модуле "Служебные инструменты ROMZA" (yenisite.core) есть класс \Yenisite\Core\Ajax при помощи которого мы можем сохранять и загружать нужные данные по определенному ключу.
Чтобы сохранить параметры нужного компонента надо после всех манипуляций с $arParams выполнить следующий код, либо в конце файла result_modifier.php либо в начале выполнения шаблона template.php
\Yenisite\Core\Ajax::saveParams($this, $arParams, $ID);
// Где $this объект класса CBitrixComponentTemplate или CBitrixComponent или строка с именем компонента как в IncludeComponent, например — "bitrix:catalog.section"
// $arParams — массив сохраняемых параметров
// $ID (необязательно) — произвольный ключ определяющий уникальность параметров (например у нас два одинаковых компонента с разными шаблонами на странице)
Для удобства передачи нужных параметров через JavaScript существует метод который выводит необходимые для получения параметров данные:
\Yenisite\Core\Ajax::printAjaxDataAttr($ComponentTemplate, $ID);
// $ComponentTemplate — объект класса CBitrixComponentTemplate 
// $ID (необязательно) — произвольный ключ определяющий уникальность параметров 

Этот метод кодирует необходимые данные в Base64 и выводит их в data атрибуте data-ajax.
В нем закодирован массив:
array(
   'CMP' => 'bitrix:catalog.section', // имя компонента для которого сохраняется параметры
   'PAGE' => '/catalog/', // путь к текущей страницы без служебный параметров, нужно для fallback режима
   'TMPL' => '.default', // имя текущего шаблона
   'ID' => 'main_section'; // произвольный ключ определяющий уникальность параметров (необязательно)
}

Теперь мы можем получить эти параметры в Ajax обработчике, для этого используем следующий код:
// GetDecodedArParams декодирует Base64 если необходимо конвертирует кодировку в UTF-8, возвращает массив
$arAjax = \Yenisite\Core\Tools::GetDecodedArParams($_REQUEST['ajax']); 
// из этих данных получаем нужные нам параметры
$arParams = \Yenisite\Core\Ajax::getParams($arAjax['CMP'], $arAjax['ID'], $arAjax['PAGE']);
Тут $arAjax['PAGE'] нужен для fallback режима.

Дело в том что если физически удалить папку bitrix/romza_settings и при этом выполнить ajax к нужному обработчику, без открытия страницы где они сохраняются то параметров не будет.
Чтобы предотвратить такой кейс, метод getParams попробует получить параметры, если он их не найдет в первый раз будет сделан get запрос к целевой странице, чтобы параметры сохранились, затем обработчик попробует получить параметры еще 1 раз.

Это была первая статья в цикле статей по документации и работе наших модулей и типовых решений, про что бы вы хотели еще узнать? напишите в комментариях!

Чек-лист внедрения Типовых решений ROMZA

9c637c4922568b4bdf2bfa35e03efef6.jpg

Чтобы ваш Сайт хорошо работал и приносил прибыль — требуется выполнить определенные действия. Недостаточно просто "скачать и установить".
Необходимо грамотно подобрать хостинг, настроить почту, заказать SEO и сделать много-много чего еще.
Мы специально для вас подготовили настоящий Чек-лист для внедрения типовых решений!
Текстовая версия доступна тут,а в конце статьи есть ссылка для скачивания PDF версии которую если что можно распечатать!

Для качественной работы вашего будущего сайта все “галочки” должны быть проставлены.

Итак вы купили типовое решение от студии ROMZA и что же дальше?

Подготовка
  • У вас имеется нужная редакция 1С-Битрикс: Управление сайтом. Ссылка на таблицу со сравнением редакций — http://www.1c-bitrix.ru/products/cms/editions/#tab-table-link
  • Подобрано и приобретено доменное имя
  • Подключена почта для домена.
    например https://pdd.yandex.ru, https://biz.mail.ru/, https://gsuite.google.ru/ (платный) или аналогичный сервис.
  • Заведен хотя-бы 1 почтовый адрес (например: info@site.ru), желательно еще настроить “адрес по умолчанию” или еще называется catch-all — это адрес ящика, куда будут приходить все письма на несуществующие в этом домене ящики.
Выбор хостинга
  • Соответствие минимальным техническим требованиям http://www.1c-bitrix.ru/products/cms/requirements.php
    скрипт проверки:
    http://www.1c-bitrix.ru/download/files/scripts/bitrix_server_test.php
  • [опционально] Хостинг есть в списке рекомендованных 1С-Битрикс https://www.1c-bitrix.ru/partners/hosting.php
  • Сервер располагается на той территории где вы ожидаете наибольшую активность (если вы хотите продавать товары в Беларуси, будет неверным решением заказать сервер в Лос Анджелесе)
  • [опционально] Наличие специального тарифа для 1С-Битрикс может служить хорошим индикатором
  • Доступна последняя стабильная версия PHP не ниже PHP 7.0
  • Возможность установки SSL сертификата для работы протокола HTTPS
  • Техническая поддержка 24\7
  • Наличие регулярного резервного копирования Базы и файлов с недельными и ежедневными копиями. Если у вас VPS\VDS или выделенный сервер то возможность подключения внешнего диска или NAS для хранения ваших данных отдельно от сервера на котором располагается сайт.
  • [опционально] Возможность платной или бесплатной экстренной помощи, если вы гуру Веб-серверов то можете пропустить этот пункт :)
Установка сайта (если вы решились сами так как у нас установка новых сайтов на сервер — бесплатна)
  • [опционально] Если у вас VPS\VDS убедитесь что у вас установлена последняя стабильная версия “1С-Битрикс: Веб-окружение” (или “1C-Битрикс: Виртуальная машина”) http://www.1c-bitrix.ru/products/vmbitrix/
  • Выбрана кодировка UTF-8
  • Все настройки во время установки “зеленые”
  • Выбран надежный пароль для администратора
  • В качестве email администратора указан ваш реальный email, а еще лучше ваш персональный который нигде не засветился
Сразу после установки сайта
  • Активирован лицензионный ключ
  • Система обновлена до последней стабильной версии
  • Проверка сайта не находит ошибок (Настройки » Инструменты » Проверка системы http://ваш_сайт.ру/bitrix/admin/site_checker.php)
  • Производительность конфигурации вашего сервера выдает не менее 30 баллов (Настройки » Производительность » Панель производительности http://ваш_сайт.ру/bitrix/admin/perfmon_panel.php)
  • Выбрана последняя стабильная версия PHP не ниже PHP 7.0
  • Куплен\сгенерирован подписанный SSL сертификат
  • Включен и настроен https протокол
  • Включена переадресация (302 редирект) с http на https адреса
Установка типового решения
  • Активирован ключ решения
  • Установлено решение и все модули которые входят в его состав.
    Список входящих в состав и поддерживающихся (как платных так и бесплатных) модулей можно посмотреть на закладке “Установка” в карточке решения на сайте Маркетплейс. Пример для Битроник2 — http://marketplace.1c-bitrix.ru/solutions/yenisite.bitronic2/#tab-install-link
  • Количество сайтов не больше количества свободных сайтов (по-умолчанию на лицензии доступно 2 сайта)
  • Запущен мастер установки решения
  • В мастере установки решения заполнены все необходимые поля, в том числе данные связанные с Вашей компанией
  • Мастер установки решения выполнен успешно
После установки типового решенияОбщая настройка модуля интернет-магазинНастройки при загрузке каталога из 1с
  • Настроен обмен с 1С на стороне сайта (Магазин » Настройки » Интеграция с 1С)
    Видео-урок https://youtu.be/YuVUMZsJYk0
  • Настроен обмен с 1С на стороне 1с
    http://dev.1c-bitrix.ru/help-assist/pervonachalnoe_zapolnenie/Видео-урок https://youtu.be/AgQB5bsO7ds
  • Дополнительно - если у вас Управление Небольшой фирмой отдельные настройки
    http://dev.1c-bitrix.ru/help-assist/upravlenie_firmoy/
  • В 1С настроена нужная структура разделов, выбраны нужные товары
  • Настроен обмен заказами, как на стороне сайта так и на стороне 1с
  • Если нужно — настроен обмен в режиме реального времени
    http://dev.1c-bitrix.ru/help-assist/rezhim_realnogo_vremeni/
  • В публичной части решения, выбраны новые ID созданных инфоблоков из 1С
  • В публичной части выбраны нужные свойства для отображения в детальной карточке товара (или наоборот выбраны игнорируемые свойства)
  • В публичной части решения выбраны нужные типы цен
  • Настроены типы цен, особенно проверить права просмотра и покупки
    http://dev.1c-bitrix.ru/help-assist/varianty_tsen/
  • Загружены логотипы брендов, если они поддерживаются решением (бренды следует выгружать как HL блок)
  • [опционально] для 1с настроен анализ прайсов поставщиков
Настройки при ручном заполнении товаровНастройка платежных систем и служб доставок
  • Если необходимо — заключен договор с эквайером для приема платежей по картам
  • Настроены платежные системы
    http://dev.1c-bitrix.ru/help-assist/platezhnye_sistemy/
  • Настроены службы доставки
    http://dev.1c-bitrix.ru/help-assist/sluzhby_dostavki/
  • Настроена зависимость свойств заказа служб доставки и платежных систем (не надо спрашивать у клиента адрес доставки при выбранном самовывозе)
Наполнение контентом
  • Контактные данные на сайте — корректны (электронная почта, телефоны, адреса)
  • Указаны верные ссылки на соцсети в футере и форме регистрации\авторизации если есть, иначе убраны
  • Заполнены разделы оплата и доставка
  • Заполнен раздел “о магазине”
  • Создана хотя бы одна новость и удалены демо новости (если предусмотрено решением) либо если новости не планируются - убран раздел и ссылка в главном меню
  • [опционально] Если присутствует заполнен раздел обзоров
  • [опционально] Назначены товары (заполнены соответствующие свойства) для Акций\Хитов и прочих спец блоков при их наличии
  • [опционально] Заполнены и настроены баннеры на главной при их наличии
  • [опционально] Для редакции Бизнес настроены рекламные баннеры
    https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=41&CHAPTER_ID=04785
  • [опционально] Сделаны и загружены иконки для разделов под ваш контент
  • [опционально] Настроена выгрузка в Яндекс.Маркет и\или другие площадки модулем http://marketplace.1c-bitrix.ru/solutions/yenisite.yandex/ либо стандартной выгрузкой. Как разместить товары — https://yandex.ru/support/partnermarket/registration/how-to-register.xml
SEO и продвижениеВзаимодействие
Зарегистрироваться и сохранить пароль в надежном месте для:
  • Сайта 1С-Битрикс http://www.1c-bitrix.ru/
  • Сайта технической поддержки ROMZA http://portal.yenisite.ru/support/
  • Сайта вашего хостинга
  • Административного раздела вашего сайта
  • Вашей базы 1с с правами выгрузки на сайт
Для надежного хранения паролей, рекомендуем программу https://www.keepassx.org/


Эпилог
  • [опционально] проведен Usability аудит под вашу товарную тематику в вашем регионе http://lp.salerman.ru
  • Проверены (если необходимо то переделаны) почтовые шаблоны, особенно те, которые высылаются при оформлении заказа клиенту
  • Создание тестового заказа
  • Настроена роль и создан пользователь для контент-менеджера
  • Настроена роль и создан пользователь для менеджера по работе с заказами
Также вы можете скачать этот список в PDF, который удобно распечатать — ссылка