Шаблоны сообщений для нескольких товаров | Документация для разработчиков
Шаблоны сообщений для нескольких товаров
Обновлено: 3 марта 2026 г
В этом документе описываются шаблоны сообщений для нескольких продуктов («MPM»), их использование и способы применения.
Шаблоны MPM — это маркетинговые шаблоны, позволяющие продемонстрировать до 30 товаров из вашего каталога электронной коммерции, сгруппированных в 10 разделов, в одном сообщении.

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

В статье нашего справочного центра «О шаблонах сообщений для нескольких товаров в WhatsApp» описаны распространенные сценарии использования и даны советы о том, как максимально эффективно использовать шаблоны MPM.
Требования
Для создания и использования шаблонов MPM вам необходим каталог товаров для электронной коммерции с информацией о наличии товара, подключенный к вашему аккаунту WhatsApp Business. См. руководство по Cloud API Commerce .
Ограничения
Создание шаблонов MPM
Вы можете создавать шаблоны MPM, используя конечную «Шаблоны сообщений» в учетной записи WhatsApp Business или «Инструменты учетной записи» > « Шаблоны сообщений» WhatsApp Manager . После утверждения шаблона вы можете использовать Cloud API для его отправки в шаблонном сообщении.
Синтаксис запроса
curl -X POST "https://graph.facebook.com/v23.0/<WHATSAPP_BUSINESS_ACCOUNT_ID> /message_templates" \ -H "Авторизация: Bearer"<ACCESS_TOKEN> " \ -H "Content-Type: application/json" \ -d '{ "name": "<NAME> ", "категория": "<CATEGORY> ", "язык": "<LANGUAGE> ", "компоненты": [<COMPONENTS> ] }'Параметры запроса
| Заполнитель | Описание | Пример значения |
|---|---|---|
<CATEGORY> | Необходимый. Категория шаблона. Установите значение МАРКЕТИНГ . | МАРКЕТИНГ |
<COMPONENTS> | Необходимый. Массив объектов, описывающих компоненты, составляющие шаблон. См. раздел «Компоненты» ниже. | См. компоненты ниже. |
<LANGUAGE> | Необходимый. шаблона и код локали . | en_US |
<NAME> | Необходимый. Название шаблона. Максимальное количество символов: 512. | заброшенная тележка |
Компоненты
параметра
components должно представлять собой массив объектов, описывающих каждый компонент, из которого состоит шаблон. Шаблоны MPM должны содержать следующие компоненты:[ { "type": "HEADER", "format": "TEXT", "text": "<HEADER_TEXT> ", /* Пример необходим, если заголовок использует переменную */ "example": { "header_text": [ "<HEADER_EXAMPLE_TEXT> " ] } }, { "type": "BODY", "text": "<BODY_TEXT> ", /* Пример необходим, если в теле используются переменные */ "example": { "body_text": [ [ "<BODY_EXAMPLE_TEXT> " ] ] } }, { "type": "FOOTER", "text": "<FOOTER_TEXT> " }, { "type":"BUTTONS", "buttons": [ { "type": "MPM", "text": "View items" } ] } ]Параметры запроса
| Заполнитель | Описание | Пример значения |
|---|---|---|
<BODY_EXAMPLE_TEXT> | Строка или массив строк. Пример значения(й) переменной в теле запроса. | 10OFF |
<BODY_TEXT> | Шаблон основного текста. Поддерживает несколько переменных. Если строка содержит переменные, необходимо указать пример свойства и пример значений переменных. Максимум 1024 символа. | Забыть что-нибудь, {{1}}? |
<FOOTER_TEXT> | Шаблонный текст нижнего колонтитула. Максимум 60 символов. | Lucky Shrub, 1 Hacker Way, Menlo Park, CA 94025 |
<HEADER_EXAMPLE_TEXT> | Пример значения переменной заголовка. | Пабло |
<HEADER_TEXT> | Шаблонный текст заголовка. Поддерживает 1 переменную. Если строка содержит переменную, необходимо указать свойство example и пример значения переменной. Максимум 60 символов. | Похоже, вы оставили эти товары в корзине, всё ещё интересуетесь? Используйте код {{1}}, чтобы получить скидку 10%! |
Ответ
В случае успеха API ответит следующим образом:
{ "идентификатор": "<ID> ", "статус": "<STATUS> ", "категория": "МАРКЕТИНГ" }Параметры отклика
| Заполнитель | Описание | Пример значения |
|---|---|---|
<ID> | Идентификатор шаблона. | 546151681022936 |
<STATUS> | Статус шаблона. В шаблонном сообщении можно отправлять только шаблоны со статусом «ОДОБРЕНО» | В ОЖИДАНИИ |
Пример запроса
curl 'https://graph.facebook.com/v25.0/102290129340398/message_templates' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer EAAJB...' \ -d ' { "name": "abandoned_cart", "language": "en_US", "category": "MARKETING", "components": [ { "type": "HEADER", "format": "TEXT", "text": "Забыли что-то, {{1}}?", "example": { "header_text": [ "Pablo" ] } }, { "type": "BODY", "text": "Похоже, вы оставили эти товары в корзине, все еще заинтересованы? Используйте код {{1}}, чтобы получить скидку 10%!", "example": { "body_text": [ [ "10OFF" ] ] } }, { "type":"BUTTONS", "buttons": [ { "type": "MPM", "text": "View items" } ] } ] }'
Пример ответа
{ "id": "546151681022936", "status": "PENDING", "category": "MARKETING" }Вебхуки
Когда покупатель добавляет один или несколько товаров в корзину и оформляет заказ, вам отправляется веб-хук с описанием заказа.
синтаксис веб-перехватчика
{ "object": "whatsapp_business_account", "entry": [ { "id": "<ENTRY.ID> ", "изменения": [ { "значение": { "messaging_product": "whatsapp", "метаданные": { "отображаемый_номер_телефона": "<DISPLAY_PHONE_NUMBER> ", "phone_number_id": "<PHONE_NUMBER_ID> " }, "контакты": [ { "профиль": { "имя": "<NAME> " }, "wa_id": "<WA_ID> " } ], "сообщения": [ { "из": "<FROM> ", "идентификатор": "<MESSAGES.ID> ", "временная метка": "<TIMESTAMP> ", "type": "order", "order": { "catalog_id": "<CATALOG_ID> ", "product_items": [ { "product_retailer_id": "<PRODUCT_RETAILER_ID> ", "количество":<QUANTITY> , "item_price":<ITEM_PRICE> , "валюта": "<CURRENCY> " } ] } } ] }, "поле": "сообщения" } ] } ] }Содержимое веб-перехватчика
| Заполнитель | Описание | Пример значения |
|---|---|---|
<CATALOG_ID> | Идентификатор каталога товаров электронной коммерции. | 1537566713439863 |
<CURRENCY> | Валюта товара. | доллар США |
<DISPLAY_PHONE_NUMBER> | Номер телефона компании отображается на экране. | 15550051310 |
<ENTRY.ID> | Идентификатор бизнес-аккаунта WhatsApp. | 102290129340398 |
<ITEM_PRICE> | Цена товара. | 99.99 |
<MESSAGES.ID> | Идентификатор сообщения WhatsApp. | wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDOEI3ODgxNzQzMjJBQTdEQTcA |
<NAME> | Имя клиента. | Пабло Моралес |
<PHONE_NUMBER_ID> | Идентификатор номера служебного телефона. | 106540352242922 |
<PRODUCT_RETAILER_ID> | Артикул товара (SKU). В менеджере по коммерции Content ID | 2lc20305pt |
<QUANTITY> | Количество заказанных товаров (для данного конкретного товара). | 1 |
<TIMESTAMP> | Временная метка UNIX, указывающая на момент отправки веб-перехватчика. | 1677522117 |
<WA_ID> | Номер телефона клиента в WhatsApp. | 16505551234 |
Пример веб-перехватчика
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Pablo Morales" }, "wa_id": "16505551234" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTMxNzA1QzNENEI4ODY0OTY2MAA=", "timestamp": "1683223069", "type": "order", "order": { "catalog_id": "1537566713439863", "product_items": [ { "product_retailer_id": "n6k6x0y7oe", "quantity": 1, "item_price": 99.99, "currency": "USD" } ] } } ] }, "field": "messages" } ] } ] }Отправка сообщений по шаблону MPM
В шаблонах сообщений можно отправлять шаблоны сообщений для нескольких товаров (MPM)
Компоненты
Сообщения шаблона MPM должны содержать:
Используйте компонент кнопки MPM для определения разделов и их заголовков, которые будут отображаться при нажатии покупателем Просмотреть товары» , а также для указания того, какие товары будут отображаться в каждом из этих разделов.

Чтобы отправить утвержденный шаблон MPM в шаблонном сообщении, отправьте POST-запрос на WhatsApp Business Phone Number > Messages . Используйте тело POST-запроса для определения содержимого сообщения и описания любых переменных, которые необходимо внедрить в сам шаблон.
Синтаксис запроса
curl -X POST "https://graph.facebook.com/v23.0/<BUSINESS_PHONE_NUMBER_ID> /messages" \ -H "Авторизация: Bearer"<ACCESS_TOKEN> " \ -H "Content-Type: application/json" \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<TO> ", "type": "template", "template": { "name": "<NAME> ", "язык": { "код": <CODE>" }, "components": [ { "type": "header", "parameters": [ { "type": "text", "text": "<HEADER_TEXT> " } ] }, { "type": "body", "parameters": [ { "type": "text", "text": "<BODY_TEXT> " } ] }, { "type": "button", "sub_type": "mpm", "index": 0, "parameters": [ { "type": "action", "action": { "thumbnail_product_retailer_id": "<THUMBNAIL_PRODUCT_RETAILER_ID> ", "sections": [ { "title": " <TITLE>", "product_items": [ { "product_retailer_id": "<PRODUCT_RETAILER_ID_1>" }, { "product_retailer_id": "<PRODUCT_RETAILER_ID_2>" } // ... Add up to 30 product items per section ] } // ... Add up to 10 section objects as needed ] } } ] } ] } }'</title></code>Параметры запроса
| Заполнитель | Описание | Пример значения |
|---|---|---|
<BODY_TEXT> | Обязательно, если шаблон использует переменные. Строка или массив строк. Текст для замены переменных тела, определенных в шаблоне. | 10OFF |
<CODE> | шаблона и код локали . | en_US |
<HEADER_TEXT> | Обязательно, если шаблон использует переменную. Текст для замены переменной заголовка, определенной в шаблоне. | Пабло |
<NAME> | Название шаблона. | заброшенная тележка |
<PRODUCT_RETAILER_ID> | Артикул товара, который вы хотите отобразить в этом разделе. В менеджере по коммерции артикулы (Commerce Manager) обозначаются как Content ID Поддерживается до 30 товаров во всех разделах. | 2lc20305pt |
<THUMBNAIL_PRODUCT_RETAILER_ID> | Артикул товара (SKU). В менеджере по коммерции Content ID Миниатюра этого элемента будет использована в качестве изображения заголовка шаблонного сообщения. | 2lc20305pt |
<TITLE> | Текст заголовка раздела. Вы можете определить до 10 разделов. Максимальное количество символов: 24. Markdown не поддерживается. | Популярные наборы |
<TO> | Номер телефона клиента. | 16505551234 |
Ответ
В случае успеха API ответит следующим образом:
{ "messaging_product": "whatsapp", "contacts": [ { "input": "<INPUT> ", "wa_id": "<WA_ID> " } ], "messages": [ { "id": "<ID> " } ] }Параметры отклика
| Заполнитель | Описание | Пример значения |
|---|---|---|
<ID> | Идентификатор сообщения WhatsApp. | wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDOEI3ODgxNzQzMjJBQTdEQTcA |
<INPUT> | Номер телефона клиента в WhatsApp. | 16505551234 |
<WA_ID> | Идентификатор WhatsApp клиента. | 16505551234 |
Пример запроса
В этом примере отправляется утвержденный шаблон с именем «abandoned_cart», в заголовок шаблона внедряется переменная (имя клиента), а в тело шаблона — код скидки. Также определяются два раздела («Популярные комплекты» и «Премиум-пакеты») и указываются товары (всего 3), которые должны быть добавлены в эти разделы.
curl 'https://graph.facebook.com/v25.0/106540352242922/messages' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer EAAJB...' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "16505551234", "type": "template", "template": { "name": "abandoned_cart", "language": { "code": "en_US" }, "components": [ { "type": "header", "parameters": [ { "type": "text", "text": "Pablo" } ] }, { "type": "body", "parameters": [ { "type": "text", "text": "10OFF" } ] }, { "type": "button", "sub_type": "mpm", "index": 0, "parameters": [ { "type": "action", "action": { "thumbnail_product_retailer_id": "2lc20305pt", "sections": [ { "title": "Популярные комплекты", "product_items": [ { "product_retailer_id": "2lc20305pt" }, { "product_retailer_id": "nseiw1x3ch" } ] }, { "title": "Премиум-пакеты", "product_items": [ { "product_retailer_id": "n6k6x0y7oe" } ] } ] } } ] } ] } }'
Пример ответа
{ "messaging_product": "whatsapp", "contacts": [ { "input": "16505551234", "wa_id": "16505551234" } ], "messages": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDOEI3ODgxNzQzMjJBQTdEQTcA" } ] }