Как получать заказы с лендинг страницы в KeyCRM

Если среди ваших источников продаж есть лендинг страницы, их тоже можно подключить к KeyCRM и получать заказы по API, ниже опишем все пошагово.
Автор Александра Дубейко
Обновлено 2 месяца назад

Скрипты передачи данных по API позволяют создавать заказы из лендингов, сайтов и кастомных сервисов.

 

Подготовка к передаче данных

  1. Добавьте отдельный источник, который будет указываться в скрипте и передаваться заказ именно с указанным источником. Нужно для разделения заказов и понимания, что именно этот заказ пришел из кастомного сервиса;
  2. Создайте или скопируйте API ключ, необходимый для настройки скрипта;
  3. Добавьте товары в каталог с артикулами, которые вы будете передавать, чтобы в заказах товар автоматически связался с товаром в каталоге, была доступна аналитика, склад и прочее.

 

Настройка скрипта передачи данных

Шаг 1: Прописываем передачу информации в нужные поля

Рассмотрим php скрипт передачи данных из html формы: когда продаем 1 товар, указывается имя, e-mail, телефон покупателя, информация об доставку, оплате и данные с дополнительных полей. 

Нам нужно указать какие параметры передавать — слева поле в CRM, куда мы передаем значение, а справа переменная из поля формы откуда это значение подставляем в скрипт:

$data = [
      "source_id" => 22, // в какой источник в KeyCRM добавлять заказы
      "buyer" => [
            "full_name"=> $_POST['name'], // ФИО покупателя
            "email"=> $_POST['email'], // email покупателя
            "phone"=> $_POST['phone'] // номер телефона покупателя
      ],
      "shipping" => [
          "shipping_address_city"=> $_POST['address_city'], // город покупателя
          "shipping_receive_point"=> $_POST['address_street'], // улица, номер дома или отделение Новой Почты
          "shipping_address_country"=> $_POST['address_country'], // страна
          "shipping_address_region"=> $_POST['address_region'], // область/штат/регион
          "shipping_address_zip"=> $_POST['address_zip'] // индекс
          "shipping_secondary_line" => $_POST['secondary_line'], // дополнительный адрес
          "shipping_receive_point" => $_POST['receive_poin'], // точка выдачи заказа
          "recipient_full_name" => $_POST['recipient_full_name'], // имя получателя (если отличается от покупателя)
          "recipient_phone" => $_POST['receive_phone'], // номер телефона получателя (если отличается от покупателя). Рекомендуем передавать в международном формате с плюсом
           "warehouse_ref" => $_POST['warehouse_ref'], // UUID состава Новой Почты (обязательно с параметром delivery_service_id – ID службы доставки ЧП в СРМ)
           "shipping_date" => $_POST['date'], // дата доставки/отправки
 ],
      "marketing" => [
           "utm_source" => $_POST['utm_source'], // источник компании
           "utm_medium" => $_POST['utm_medium'], // тип трафика
           "utm_campaign" => $_POST['utm_campaign'], // название компании
           "utm_term" => $_POST['utm_term'], // ключевое слово
           "utm_content" => $_POST['utm_content'], // идентификатор объявления
      ],
      "products"=> [
            [
                "price"=> $_POST['product_price'], // цена продажи
                "quantity"=> 1, // количество проданного товара
                "name"=> $_POST['product_name'], // название товара
                "picture"=> $_POST['product_url'], // картинка товара
                "properties"=>[
                [
                    "name"=> "Color",
                    "value"=> "Space Gray"
                ]
              ]
          ]
      ],
     "payments" => [
          [
              "payment_method_id" => $_POST['payment_method_id'], // идентификатор метода оплаты,
              "payment_method" => $_POST['product_url'], // название метода оплаты,
              "amount" => $_POST['amount'], // сумма платежа,
              "description" => $_POST['description'], // комментарий к платежу,
              "payment_date" => $_POST['payment_date'], // дата и время платежа. Если не передается, будет использовано текущее время,
              "status" => $_POST['description'], // статус платежа Допустимые значения: paid , not_paid , canceled , refund
        ]
     ],
      "custom_fields" => [
               [
               "uuid" => "OR_1021", // внешний идентификатор поля,
               "value" => $_POST['value'] // значение поля. Для полей с типом select (список/мультисписок) передавать массив строк
              ],
              [
             "uuid" => "OR_1022", // внешний идентификатор поля,
             "value" => $_POST['value 1', 'value2', 'value 3'] // значение поля. Для полей с типом select (список/мультисписок) передавать массив строк
              ]
        ]
];
Обратите внимание! Чтобы автоматически подтягивался склад Новой почты, нужно передавать ид склада Новой Почты (warehouse_ref) с ID службы доставки НП.

Рекомендуем передавать и текстовые поля адреса (не только «warehouse_ref»), чтобы при возникновении ситуаций что нельзя получить данные доставки от НП можно было вручную заполнить эти данные.
Вы можете убрать поля, которые вам не нужны и добавить недостающие из метода API.

При передаче заказов нужно учитывать особенности:

  1. Обязательно должен передаваться массив «buyer» и хотя бы одно поле в нем («full_name», «email» или «phone» покупателя);
  2. Данные «email» должны передавать в верном формате, поскольку есть валидация при создании заявки;
  3. При передаче кастомных (дополнительных) полей - поля должны быть созданы в системе, чтобы при передаче указывать их системное название.

Шаг 2: Готовим данные для отправки

Обратите внимание! Ограничение количества запросов нашего API - 60 запросов в минуту.  

Нужно ваш ранее созданный API ключ скопировать и вставить в изменение $token.

//  "упаковываем данные"
$data_string = json_encode($data);

// Ваш уникальный API ключ KeyCRM
$token = 'Ваш API ключ';

// отправляем на сервер
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://openapi.keycrm.app/v1/order");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-type: application/json",
        "Accept: application/json",
        "Cache-Control: no-cache",
        "Pragma: no-cache",
        'Authorization:  Bearer ' . $token)
);
$result = curl_exec($ch);
curl_close($ch);

Если вам нужно передавать данные с лендинга/сайта в воронки в KeyCRM, то нужно изменить скрипт и использовать другой метод API.

Пример формы

  • Подготавливаем форму и к каждому полю прописываем переменные «name».
    name=«your-name» и далее они же в скрипте в полях:
    «full_name» => $_POST[„your-name“].

  • Создаем файл для скрипта, например send.php и указываем путь к нему в параметре action формы;
  • Прописываем переменные, которые мы задали выше, соответственно полям в KeyCRM.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Получение данных з POST
    $data = [
        "source_id" => 245, // к какому источнику в KeyCRM добавлять заказы
        "promocode" =>  $_POST['your-promo'], // промокод
        "buyer_comment" =>  $_POST['your-text'], // коментарий покупателя
        "buyer" => [
            "full_name" => $_POST['your-name'], // ФИО покупателя
            "email" => $_POST['your-email'], // email покупателя
            "phone" => $_POST['your-phone'] // номер телефона покупателя
        ],
        "shipping" => [
            "shipping_receive_point" => $_POST['your-address'] // адреса доставки
        ],
        "marketing" => [
            "utm_source" => $_POST['utm_source'], // источник компании
            "utm_medium" => $_POST['utm_medium'], // тип трафику
            "utm_campaign" => $_POST['utm_campaign'], // название компании
            "utm_term" => $_POST['utm_term'], // ключевое слово
            "utm_content" => $_POST['utm_content'] // идентификатор объявления
        ],
        "products" => [
            [
                "price" => 42, // цена продажи
                "quantity" => 100, // количество проданного товару
                "name" => "Яблука Преміум", // название товара
                "unit_type" => "кг" // еденица измерений
            ]
        ], 
        "custom_fields" => [
            [
                "uuid" => "OR_1790", // внешний идентификатор поля
                "value" => [$_POST['custom']] // значение поля с типом список
            ]
        ]
    ];

    // Упаковываем данные
    $data_string = json_encode($data);

    // Ваш уникальный API ключ KeyCRM API ключ
    $token = 'ТУТ_ВАШ_КЛЮЧ';

    // Отправка на сервер
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://openapi.keycrm.app/v1/order");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-type: application/json",
        "Accept: application/json",
        "Cache-Control: no-cache",
        "Pragma: no-cache",
        'Authorization: Bearer ' . $token
    ));

    $result = curl_exec($ch);
    curl_close($ch);


}
?>

Заполняем тестовую заявку и смотрим, что происходит в KeyCRM - пришел новый тестовый заказ, данные из полей передались.

Теперь вы можете передавать ваши заказы из различных лендингов/сайтов и работать с ними в заказах KeyCRM.

Теги: api, апи, API, АПИ, передача данных в заказ, скрипт передачи заказов, скрипт создания заказа, order, лендинг, сайт, заказ с сайта


 

Оцените эту статью