Отправка триггера (v1)
POST https://mailganer.com/api/v1/trigger/send/
Это устаревший метод и в скором времени он будет отключен. Воспользуйтесь второй версией: https://mailganer.com/documentation/trigger/send/v2
Список параметров запроса (form-data)
Отправлять по API можно любой триггер, не только с событием "Вызов API метода"
Триггер можно отправить на имейл, который есть в списке в статусе активен. В противном случае метод вернёт ошибку "Not found email to site trigger". В исключительных случаях можно запросить активацию дополнительной переменной doi_ok (булев тип). Наличие этой переменной в методе добавляет имейл к списку в статусе "активен".
Для транзакционных триггеров можно запросить активацию дополнительной переменной ignore_unsubscribed и ignore_spam (булев тип). Триггер будет отправлен даже если подписчик в статусе "Отписался от рассылки" или "Пожаловался на спам"
Рекомендуем вызывать метод не более 300 раз в минуту.
В запрос можно вставлять любые переменные, в том числе одномерные и многомерные массивы. В вёрстке письма можно испоьлзовать переменные из запроса и перменные из подписчика одновременно.

Например, имя подписчика может находиться в стандартной переменной {{name}} и записано в данных о подписчике, а перменная "Адрес доставки" не обязательно хранить в Mailganer. Адрес можно передать в запросе в переменной delivery_address и также подставить в вёрстку письма {{delivery_address}}
Пример запроса для письма о новом заказе в интернет-магазине
Пример кода на python
import json
import requests

data = {
    'trigger_id': 150,
    'api_key': '***',
    'email': 'test@yandex.ru',
    'order_id': 1234,
    'first_name': 'Test',
    'delivery_address': "Москва, Красная площадь, Кремль",
    'goods': json.dumps({
        "type": "array",
        "value": [
            {
                "link": "https://domain.ru/products/11021",
                "title": "Туфли1",
                "cost": "39500",
            },
            {
                "link": "https://domain.ru/products/11022",
                "title": "Туфли2",
                "cost": "39500",
            },
            {
                "link": "https://domain.ru/products/11023",
                "title": "Туфли3",
                "cost": "39500",
            }
        ]
    })
}

r = requests.request('POST', 'https://mailganer.com/api/trigger/send/', data=data)
print(r.status_code, r.json())
Пример кода на php
<?php

$mailganer = 'https://mailganer.com/api/trigger/send/';

$goods = [
    "type" => "array",
    "value" => [
                    [
                        "id" => 11111,
                        "name" => "TEST1",
                        "tovar_price_actual" => "79999",
                        "tovar_price_old" => "99999",
                        "summa" => "99999",
                        "tovar_name" => "TEXT",
                        "tovar_id" => "2030001",
                        "tovar_url" => "aqqqqs12321",
                        "tovar_price_actual" => "65",
                        "tovar_price_old" => "98"
                    ],
                    [
                        "id" => 11112311,
                        "name" => "TEST2",
                        "tovar_price_actual" => "79999",
                        "tovar_price_old" => "99999",
                        "summa" => "99999",
                        "tovar_name" => "TEXT2",
                        "tovar_id" => "2030001",
                        "tovar_url" => "test123",
                        "tovar_price_actual" => "65",
                        "tovar_price_old" => "98"
                    ],
                ]
];

$data = [
    "trigger_id" => 5935,
    "api_key" => "***",
    "doi_ok" => 1,
    "text_preview" => "TES123T",
    "email" => "em362rp@ya.ru",
    "goods" => json_encode($goods)
];

$postdata = json_encode($data);
$httpdata = http_build_query($data);

$ch = curl_init($mailganer);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $httpdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);

var_dump($postdata);
echo "<br/>";
var_dump($httpdata);
echo "<br/>";
var_dump($result);
?>
Пример вёрстки письма, с использованием оператора for
<html>
 <body>
   <h1>Здравствуйте, {{first_name}} {{last_name}}</h1>
   <p>Спасибо за заказ {{order_id}} на сайте domain.ru</p>
   <h2>Состав заказа</h2>
   {% for item in goods %} //начало цикла, в каждой итерации берётся следующий элемент из массива goods
   <div>
     <p><a href="{{ item.url }}"><img src="{{ item.image_url }}"/></a></p>
     <p>{{ item.name }} {{ item.size }}, {{ item.quantity }} шт., {{ item.cost }} руб.</p>
   </div>
   {% endfor %} //конец цикла
   <p>Адрес доставки: {{delivery_address}}</p>
   <p>
     Cтоимость доставки: {{shipping}} руб.<br/>
     Сумма заказа: {{total_cost}} руб.
   </p>
   <p>С уважением, команда domain.ru</p>
 </body>
</html>
Использование оператора if
Используемая ниже конструкция {% if item.size %} будет отображать Туфли, Размер: 44EU, 1 шт., 39500 руб. для элемента массива, для которого задана переменная size. Для элемента массива, у которого size не задан, строчка будет выглядеть так Кепка, 1 шт., 1500 руб.
...
{% for item in goods %}
<div>
  <p><a href="{{ item.url }}"><img src="{{ item.image_url }}"/></a></p>
  <p>{{ item.name }}{% if item.size %}, Размер: {{ item.size }}{% endif %}, {{ item.quantity }} шт., {{ item.cost }} руб.</p>
</div>
{% endfor %}
...
Важно при подготовке вёрстки не вставлять опертаор {% for %} или {% if %} между тегами <table> и <td>. Иначе при сохранении письма операторы автоматически перместятся перед <table> и вёрстка "поедет".
Использование оператора forloop.counter, forloop.first и forloop.last
Используемая ниже конструкция {% if forloop.first %} будет срабатывать для первого элемента в массиве. Конструкция {% if forloop.last %} - для последнего, {% if forloop.counter == 3 %} для третьего элемента массива.
...
{% for item in goods %}
<div>
  {% if forloop.first %}<hr/>{% endif %}
  <p><a href="{{ item.url }}"><img src="{{ item.image_url }}"/></a></p>
  <p>{{ item.name }}{% if item.size %}, Размер: {{ item.size }}{% endif %}, {{ item.quantity }} шт., {{ item.cost }} руб.</p>
  {% if forloop.last %}<hr/>{% endif %}
</div>
{% endfor %}
...
Использование оператора forloop|length
Используемая ниже конструкция {% if goods|length >= 5 %} будет срабатывать, если в массиве больше или равно 5 элементов
...
{% if goods|length >= 5 %} 
  {% for item in goods %}
  <div>
    {% if forloop.first %}<hr/>{% endif %}
    <p><a href="{{ item.url }}"><img src="{{ item.image_url }}"/></a></p>
    <p>{{ item.name }}{% if item.size %}, Размер: {{ item.size }}{% endif %}, {{ item.cost }} руб.</p>
    {% if forloop.last %}<hr/>{% endif %}
  </div>
  {% endfor %}
{% endif %}
...
Работа с переменными типа float и date
{{cost|floatformat:"0" }} превратит переменную 39500.40 в 39500 Полное описание
{{birthday|date:"j l"}} превратит дату по шаблону "дата без 0 вначале + месяц", например "21 февраля" Полное описание
Список параметров ответа (json)
Возможные значения ошибок
Error get alias
Написать в поддержку
Mail