БесплатноБазовая интеграция с 1С в подарок при заказе интернет-магазина под ключ

PWA для интернет-магазина: офлайн-режим и установка на телефон

PWA для интернет-магазина на 1С-Битрикс: офлайн-режим, service worker и установка на телефон

Покупатель заходит в ваш магазин с телефона в метро — связь то есть, то пропадает. Обычный сайт в этот момент показывает белый экран и «нет соединения». А магазин с PWA продолжает работать: страницы, которые покупатель уже открывал, доступны из кэша, каталог листается, вместо ошибки браузера — аккуратная заглушка. Плюс значок магазина уже на его домашнем экране, как у настоящего приложения.

Разберём PWA для интернет-магазина без хайпа: что это на самом деле, что работает офлайн, а что нет, когда PWA выгоднее нативного приложения и как аккуратно внедрить её на 1С-Битрикс, не показав покупателю устаревшие цены из кэша. Технически это надстройка над фронтендом, и делается она в рамках нашей оптимизации 1С.

Коротко

  • PWA — это сайт, который устанавливается на телефон, запускается полноэкранно и частично работает офлайн, без App Store.
  • Основа PWA — HTTPS, манифест и service worker; последний перехватывает запросы и обеспечивает офлайн.
  • Офлайн в магазине — про просмотр кэшированных страниц, а не про покупки без сети: цены и заказ требуют сервера.
  • Главный риск на 1С-Битрикс — закэшировать устаревшие цены и наличие; кэш PWA согласуют с кэшем Битрикса.

Что такое PWA и зачем магазину

PWA (Progressive Web App) — это обычный сайт с надстройкой, которая делает его похожим на мобильное приложение. Он остаётся на вашем домене и индексируется как сайт, но при этом умеет то, что раньше было только у приложений.

Для магазина ценность PWA в двух вещах: скорость повторных заходов за счёт кэша и снижение барьера возврата за счёт значка на экране. Это дешёвый способ приблизить мобильный сайт к удобству приложения без отдельной разработки под iOS и Android.

PWA против нативного приложения

Главный вопрос бизнеса — «нам PWA или полноценное приложение». Ответ зависит от задач, и честное сравнение помогает не переплатить.

КритерийPWAНативное приложение
Кодовая базаОдна, поверх сайтаОтдельно под iOS и Android
УстановкаВ один тап, без магазиновЧерез App Store / Google Play
ОбновленияМгновенно, как сайтЧерез магазин, с модерацией
Доступ к железуОграниченныйПолный
СтоимостьНижеВыше
iOS-возможностиС ограничениямиПолные

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

Адаптивная вёрстка: один шаблон под все экраны ДесктопПланшетСмартфонОдна адаптивнаявёрстка под всеэкраны
Схема: вместо отдельного мобильного сайта — одна адаптивная вёрстка, которая перестраивает блоки под ширину экрана. Проще в поддержке, дешевле в развитии.

Три кита PWA: манифест, worker, HTTPS

Технически PWA стоит на трёх обязательных элементах — без любого из них она не работает.

Манифест и иконки — простая часть. Service worker — самая тонкая: от того, как он написан, зависит и офлайн, и риск показать покупателю устаревшие данные. Поэтому его пишут аккуратно и осознанно, с продуманной стратегией кэширования.

Установка на телефон без магазинов

Одна из главных фишек PWA — установка на домашний экран без App Store и Google Play. Покупатель заходит на сайт, и браузер предлагает «Добавить на главный экран» либо это делается вручную из меню браузера.

После установки магазин ведёт себя как приложение: значок на экране, полноэкранный запуск, своя заставка. Это снижает барьер повторного визита — не надо вспоминать адрес и открывать браузер, достаточно тапнуть по значку. Для магазина с высокой долей возвратных покупателей это ощутимое удобство. Важно грамотно предложить установку: не навязчивым баннером на первой секунде, а в подходящий момент — например, после первого заказа или нескольких визитов.

Что реально работает в офлайне

Вокруг офлайна много завышенных ожиданий, поэтому разберём честно. Магазин по своей природе завязан на сервер: актуальная цена, наличие, оформление заказа требуют сети. Поэтому офлайн в PWA-магазине — это не «покупки без интернета», а устойчивость к плохой связи.

Реалистичная цель офлайна: покупатель не упирается в белый экран при обрыве связи, а продолжает просматривать то, что уже видел, и получает понятное сообщение там, где нужна сеть. Это про непрерывность, а не про полноценные покупки офлайн.

Стратегии кэширования

Сердце PWA — стратегия кэширования в service worker. Для магазина разные типы ресурсов требуют разного подхода, и смешивать их нельзя.

Ошибка в стратегии — самая частая беда PWA-магазинов: закэшировать то, что должно быть свежим. Про то, как устроено кэширование на стороне сервера в 1С-Битрикс и как не конфликтовать с ним, полезно почитать материал про D7 ORM в 1С-Битрикс.

Пуш-уведомления и возврат покупателя

Пуш-уведомления — сильная сторона PWA как канала возврата. Они позволяют напомнить о брошенной корзине, сообщить о скидке на отложенный товар или статусе заказа прямо на экран телефона, без email.

Технически пуши принимает тот же service worker. Но здесь важна мера: агрессивные и частые уведомления быстро приводят к отписке и удалению приложения. Пуши работают, когда они по делу — статус заказа, действительно релевантная скидка, возврат дефицитного товара. Учитывайте и то, что на iOS возможности пушей скромнее, поэтому не стройте на них единственный канал коммуникации. Логику триггерных уведомлений удобно связать с автоматизацией на стороне сервера — это часть нашей автоматизации на 1С.

Особенности на iOS

iOS исторически поддерживает PWA скромнее, чем Android, и это надо закладывать в проект заранее, а не обнаруживать после запуска.

Практический вывод: проектируйте PWA так, чтобы ключевые сценарии не зависели только от пушей и не ломались при очистке кэша. Тестируйте отдельно на iPhone — поведение там заметно отличается от Android.

PWA на 1С-Битрикс: как подружить с кэшем

PWA — это надстройка над фронтендом, поэтому сама платформа почти не мешает. Манифест, иконки и service worker добавляются в шаблон сайта на 1С-Битрикс. Настоящая тонкость — согласовать два уровня кэширования.

У 1С-Битрикс свой кэш: кэш компонентов и композитный сайт, который отдаёт статическую версию страницы мгновенно, а динамику (корзину, персональную цену) догружает отдельно. Поверх этого ложится кэш service worker в браузере. Если их не согласовать, слои начнут конфликтовать — покупатель увидит устаревшую страницу из браузерного кэша поверх свежей серверной.

Правильный подход — чётко разделить, что кэширует композит на сервере, а что service worker в браузере, и никогда не давать браузерному кэшу перекрывать динамические блоки. Про архитектуру композитного сайта и разметку динамики полезно прочитать в статье про хостинг и BitrixVM.

Опасность устаревших цен из кэша

Стоит выделить отдельно, потому что это самый болезненный риск PWA-магазина. Если service worker закэширует карточку товара вместе с ценой и наличием и будет отдавать её из кэша, покупатель увидит старую цену. Он положит товар в корзину по одной цене, а на сервере она окажется другой — конфликт, недовольство и потенциально жалоба.

Правило безопасности: цена, скидка и наличие никогда не отдаются из офлайн-кэша как актуальные. В офлайне их либо не показывают, либо явно помечают как «данные могут быть неактуальны», а при появлении сети обновляют с сервера.

Именно поэтому service worker для магазина пишут осознанно, а не берут «универсальный шаблон из интернета». Разделение статики и динамики в стратегии кэширования — не деталь, а основа корректной работы PWA-магазина.

Внедрение пошагово

Сборка PWA для магазина на 1С-Битрикс идёт по понятной последовательности. Важное условие — под ней уже должен быть качественный адаптивный сайт.

  1. Убедитесь в адаптиве. Мобильная версия удобна сама по себе — PWA не спасёт кривую вёрстку.
  2. Переведите сайт на HTTPS. Полностью, без смешанного контента — обязательное условие.
  3. Соберите манифест. Имя, иконки под разные размеры, цвета, стартовый URL, режим отображения.
  4. Напишите service worker. С раздельными стратегиями: статика из кэша, цены и заказ из сети.
  5. Сделайте офлайн-заглушку. Аккуратная страница вместо ошибки браузера при отсутствии связи.
  6. Согласуйте с кэшем Битрикса. Разделите ответственность браузерного кэша и композита, защитите динамику.
  7. Настройте установку и пуши. Ненавязчивое приглашение установить, уведомления по делу.
  8. Протестируйте на устройствах. Отдельно Android и iPhone, проверьте офлайн и актуальность цен.

Частые ошибки

Чек-лист внедрения

  1. Адаптив готов. Мобильная версия удобна до всякой PWA.
  2. HTTPS везде. Весь сайт по защищённому протоколу, без смешанного контента.
  3. Манифест собран. Иконки, имя, цвета, режим отображения заданы.
  4. Стратегии кэша разделены. Статика из кэша, цены и заказ — из сети.
  5. Офлайн-заглушка есть. Вместо ошибки браузера — понятная страница.
  6. Кэш согласован с Битрикс. Композит и браузерный кэш не конфликтуют, динамика защищена.
  7. Цены не устаревают. Актуальные данные никогда не отдаются из офлайн-кэша.
  8. Проверено на iOS и Android. Установка, офлайн и пуши протестированы на реальных устройствах.

Вывод

PWA — недорогой способ приблизить мобильный магазин на 1С-Битрикс к удобству приложения: установка на экран в один тап, полноэкранный режим, устойчивость к плохой связи и канал возврата через пуши. При этом остаётся одна кодовая база, мгновенные обновления и никакого App Store. Для большинства магазинов это выгоднее нативной разработки.

Ключ к успеху — трезвые ожидания и аккуратный service worker. Офлайн в магазине про непрерывность просмотра, а не про покупки без сети. А главный риск — закэшировать устаревшие цены — снимается чётким разделением статики и динамики и согласованием с кэшем Битрикса. Постройте PWA поверх качественного адаптива, разделите кэш правильно, протестируйте на iPhone и Android — и получите быстрый, удобный магазин-приложение без переплаты за нативную разработку.

Частые вопросы

Что такое PWA простыми словами?

PWA (Progressive Web App) — это сайт, который ведёт себя как приложение: его можно установить на телефон значком на рабочий стол, запускать в полноэкранном режиме без адресной строки, получать пуш-уведомления и частично работать без интернета. При этом это остаётся обычным сайтом на вашем домене — не нужен App Store или Google Play, не нужна отдельная разработка под iOS и Android. Технически PWA — это связка манифеста, service worker и HTTPS поверх обычного сайта.

Чем PWA отличается от нативного мобильного приложения?

Нативное приложение пишется отдельно под iOS и Android, распространяется через магазины приложений и имеет полный доступ к возможностям телефона. PWA — это ваш сайт с надстройкой: одна кодовая база, установка в один тап без магазинов, мгновенные обновления. Взамен у PWA меньше доступа к железу и есть ограничения на iOS. Для магазина, где главное — каталог, корзина и заказ, PWA часто закрывает задачу дешевле и быстрее нативного приложения.

Что именно работает в офлайне у PWA-магазина?

Реалистично офлайн закрывает просмотр уже посещённых страниц и кэшированного каталога, отображение карточек, к которым покупатель заходил, и корректную страницу-заглушку вместо ошибки браузера. Оформить заказ или увидеть актуальную цену и наличие без сети нельзя — эти данные требуют обращения к серверу. Поэтому офлайн в магазине — это про непрерывность просмотра и устойчивость к плохой связи, а не про полноценные покупки без интернета.

Что такое service worker и зачем он нужен?

Service worker — это фоновый скрипт, который браузер запускает отдельно от страницы и который перехватывает сетевые запросы. Именно он обеспечивает офлайн: решает, отдать ли ресурс из кэша или сходить в сеть, кэширует посещённые страницы, показывает заглушку при отсутствии связи и принимает пуш-уведомления. Без service worker PWA не бывает. Его пишут аккуратно, потому что ошибки в нём могут закэшировать устаревшие данные и показывать покупателю старые цены.

Можно ли сделать PWA на 1С-Битрикс?

Да, PWA — это надстройка над фронтендом, и платформа тут почти не мешает. Нужны три вещи: сайт полностью на HTTPS, файл манифеста с описанием приложения и иконками, и подключённый service worker с продуманной стратегией кэширования. Всё это добавляется в шаблон сайта на 1С-Битрикс. Тонкий момент — согласовать кэширование PWA с кэшированием Битрикса и композитным сайтом, чтобы не показывать устаревшие цены и чужую корзину.

Работает ли PWA на iPhone?

Работает, но с оговорками. На iOS PWA можно установить на домашний экран и запускать в полноэкранном режиме, кэширование и офлайн-просмотр тоже действуют. Ограничения касаются пуш-уведомлений (они появились позже и работают не так гибко, как на Android) и объёма кэша, который система может очищать. Поэтому при проектировании PWA для магазина закладывают, что часть функций на iOS скромнее, и не строят ключевые сценарии только на пушах.

Даёт ли PWA прирост конверсии и скорости?

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

PWA заменяет адаптивную вёрстку?

Нет, PWA строится поверх адаптивного сайта, а не вместо него. Сначала нужен качественный адаптивный магазин, который удобно работает на любом экране, — и уже на него надстраивается PWA: манифест, установка, офлайн, пуши. Если мобильная версия сама по себе кривая, PWA её не спасёт — она лишь обернёт неудобный сайт в оболочку приложения. Поэтому порядок такой: сначала хороший адаптив, потом PWA.

Поделиться:

Хотите PWA для своего магазина на 1С-Битрикс?

Настроим установку на телефон, офлайн-режим и пуши, аккуратно согласуем кэш с композитным сайтом и защитим покупателя от устаревших цен.

Аудит и оптимизация 1С

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины и порталы на 1С-Битрикс: адаптивные шаблоны, мобильные версии и PWA с офлайн-режимом и аккуратным кэшированием.

← Все статьи блога