Синхронизация цен WooCommerce в превью WhatsApp
Синхронизация цен WooCommerce в превью WhatsApp означает, что число на карточке берётся из вашего каталога в момент генерации карточки, а не зашито в картинку, которую кто-то сделал однажды. Когда это так, остаётся единственный вопрос — когда WhatsApp повторно считывает ссылку, и именно это магазин контролировать не может.
Короткий ответ
Цена может появиться в превью, только если изображение построено из актуальных данных товара. У статичного изображения товара нет цены, которую можно показать, — никогда; у карточки, свёрстанной один раз, будет та цена, которая была в тот день. WooCommerce по умолчанию не отдаёт изображение с привязанной ценой, поэтому жалоба «старая цена в превью» — это на самом деле два вопроса:
- Знает ли карточка текущую цену? — это проектное решение, и именно его вы можете исправить.
- Перечитала ли платформа страницу с момента изменения цены? — это часы WhatsApp, а не ваши.
Почему цена устаревает
| Причина | Что вы видите | Почему это происходит |
|---|---|---|
| Тег указывает на изображение товара | Цены нет вообще | В фотографии товара нет цены |
| Карточка была создана один раз | Цена на день дизайна | Ничто её не перегенерирует |
| Акция закончилась | Зачёркнутая цена для скидки, которая уже не действует | Изображение по-прежнему несёт старый бейдж |
| Кэш страницы отдаёт старый HTML | Снова старая карточка | Краулер так и не видит новый URL og:image |
Только первые три пункта касаются карточки. Четвёртый — про ваш слой кэширования, и снаружи он выглядит точно так же, поэтому порядок проверки в Instant WhatsApp Image Update for WooCommerce имеет значение.
Что на самом деле содержит синхронизированная карточка
FastOG подписывает URL обложки при каждом запросе, а данные берутся из актуального товара:
| Элемент карточки | Источник | Примечание |
|---|---|---|
| Цена | get_price() |
Для товара со скидкой это и есть цена со скидкой |
| Цена «было» (зачёркнутая) | обычная цена | Передаётся только когда товар действительно на распродаже — «было», равное текущей цене, это зачёркивание, которого никто не заслужил |
| Бейдж распродажи | состояние распродажи товара | Появляется и исчезает вместе с распродажей |
| Наличие | статус наличия | Отражает каталог на момент рендеринга |
| Фото | сначала главное изображение, затем галерея | Компонуется внутри карточки, а не обрезается платформой |
В этом и разница между «динамической» и действительно динамической: значения — не заглушки, которые заполнил дизайнер, они считываются из вашего магазина при каждом построении карточки.
Как работает «синхронизация» в обоих направлениях
Каталог → карточка. Каждое значение выше считывается во время рендеринга. Измените цену — и при следующем рендеринге отобразится новая; здесь нет шага экспорта и нет файла, который нужно повторно загружать.
Карточка → кеш. Каждое значение также передаётся внутри подписанного URL обложки. Поэтому изменение цены меняет URL — а значит, старое изображение больше не адресуемо, CDN нечего отдавать устаревшее, и сброс кеша не нужен. Ничто другое в этой категории так не работает, потому что самостоятельно размещаемый плагин привязывает своё изображение к имени файла, которое никогда не меняется.
Карточка → Facebook. Сохранение товара запускает нативный вебхук WooCommerce product.updated, и FastOG ставит в очередь повторный скрейпинг Meta для постоянной ссылки этого товара, чтобы Facebook заменил закешированную карточку, а не ждал неделями. См. Принудительное обновление кеша Open Graph в Facebook.
Карточка → WhatsApp. Ничего нельзя протолкнуть. Правильная карточка ждёт следующего чтения.
Особый случай запланированной распродажи
Распродажа, которая начинается в полночь, когда никто не трогает товар, вообще не вызывает вебхук — деталь, которая ломает любой дизайн «мы обновляем при сохранении», включая наш пинг в Facebook.
Карточку спасает то, что она не генерируется заранее: обложка строится по запросу из текущих данных каталога, поэтому первый же запрос после полуночи уже показывает цену распродажи и бейдж. Устаревшее число может сохраниться только в кэше предпросмотра платформы, где оно будет заменено по собственному графику этой платформы. Карточка, которая рендерится, а не экспортируется, — единственный тип, который переживает распродажу, которую никто не сохранял.
Убедитесь, что цена синхронизирована
Цена видна в самом URL обложки, поэтому проверить это можно без отладчика:
# What the page is serving right now
curl -s https://your-store.com/product/example | grep -o 'og:image[^>]*' | head -1
# Open that cover URL in a browser and compare the number against the product page.
Если параметры URL и отрисованная карточка содержат актуальную цену, и страница товара показывает то же самое, значит сторона магазина синхронизирована, а любая оставшаяся неактуальность — это кэш платформы. Если URL всё ещё содержит старую цену, кэш страницы отдаёт HTML до правки — очистите его.
Чтобы увидеть всё целиком, вставьте URL товара в See Your Links The Way Buyers Do: инструмент читает актуальные теги и отрисовывает обложку из тех же данных товара — рядом с тем, что платформы показали бы сегодня.
FAQ
Как показать цену в превью ссылки WhatsApp?
Отдавайте og:image, содержащий цену, — то есть изображение, сгенерированное из вашего каталога, а не статичную фотографию. WhatsApp отрисовывает то изображение, на которое указывает тег, в размере 1200×630; цена появится, только если она была нанесена на это изображение.
Почему в превью всё ещё отображается старая цена после окончания акции?
Две вероятные причины: изображение, которое отдаёт страница, не изменилось (кэш страницы или статичное изображение), либо WhatsApp показывает закэшированное превью, сделанное до правки. Сначала проверьте текущий URL og:image — если цена там тоже старая, проблема в магазине; если актуальная, проблема в WhatsApp.
На карточке отображается акционная или обычная цена?
Акционная — именно её WooCommerce сообщает как текущую цену — вместе с обычной ценой в качестве compare-at, и только когда товар действительно участвует в акции.
На всех тарифах отрисовываются цена и бейдж акции?
Да. Поля шаблона в FastOG не привязаны к тарифу: цена, compare-at цена и бейджи наличия доступны на любом тарифе. Тарифы различаются типами страниц, лимитом элементов и набором шаблонов, а не тем, что может содержать обложка.
Обновляется ли цена для ссылок, которые уже были отправлены?
Для Facebook FastOG запрашивает повторный скрейпинг после обновления товара. Для WhatsApp, LinkedIn и X следующее чтение происходит по собственному графику каждой платформы; для этих платформ не заявляется ни публичных гарантий по срокам, ни программного API обновления.
Что если я меняю цену, но не шаблон?
Это обычный случай, и он работает: шаблон задаёт макет, каталог поставляет значения. Ничего не нужно перепроектировать, и никакое изображение не нужно экспортировать заново.
Будет ли ссылка, отправленная во время акции, показывать акционную цену после её окончания?
Только пока сохраняется закэшированное превью платформы. URL обложки меняется вместе с каталогом, поэтому первое свежее чтение получит карточку после акции.
Есть ли бесплатный тариф?
Да. Бесплатный тариф Community покрывает до 100 элементов на страницах товаров, категорий, магазина и записей блога с пятью базовыми шаблонами плюс шаблоны товаров Black Friday и Seasonal Offer. Его обложки чистые — ни один тариф не содержит водяного знака, включая Community. Community рендерится на общем сервере Community и ограничен лимитами запросов по магазину/IP, а не брендингом. Платные тарифы используют выделенный сервер, отдельный от Community, повышают лимит элементов и открывают дополнительные шаблоны и возможности (бейджи рейтинга начиная с Starter, маппинг метаполей начиная с Pro, ограниченные правилами области и приоритетный рендеринг начиная с Scale). Платные тарифы включают 14-дневный пробный период без требования кредитной карты.
Связанные материалы
Попробуйте бесплатно — регистрация не требуется
Предпросмотр и тестирование динамических OG-изображений за секунды.
Открыть бесплатный тестер OG-изображений