PHP клиент

PHP клиент предназначен для отправки событий в Difflex. Скачать клиент можно из репозитория.

Для работы с PHP клиентом нужно разместить файл скрипта на хостинге и прописать код инициализации:

include_once('DifflexClient.php');

$app_key = 'xxxxxxxxxxxxxxxxxxxxx';
$uid = $user_id;

$client = new DifflexClient($app_key);
$client->set_uid($uid);

"cartUpdate" - обновление состава корзины

При любом изменении состава товаров (вариантов) в корзине необходимо отсылать данные на сервер. Это может быть добавление товара в корзину или изменение количества одного из товаров, удаление товара из корзины, очистка корзины.

Пример отправки события обновления корзины:

$properties = array(
  'offers' => array( // required
    'sku' => 'offer-1',
    'name' => 'My product'
    'qnt' => 1,
    'price' => 1000.0,
    'priceOld' => 99.0,
    'url' => 'http://mysite.com',
    'picture' => 'http://mysite.com/products/sku.jpg'
  )
);
$client->track('cartUpdate', $properties);

"orderCreate" - создание нового заказа

Событие создания нового заказа наступает, когда посетитель заполнил форму заказа и нажал "подтвердить заказ". Как правило, после завершения оформления заказ создается в базе сайта и ему присваивается уникальный номер.

Отправка события через backend наиболее предпочтительна, т.к. отправка из фронта через js-клиент может вызвать сложности при некоторых типах оплаты.

Номер заказа должен быть уникальным. Если клиент присылает новый заказ с повторным номером, то такие заказы не сохраняются и помечаются как ошибочные.

Пример отправки события

$visitor = array(
  'firstName' => 'User',
  'email' => 'mail@example.net'
);
$client->set_visitor($visitor);

$properties = array(
  'number' => '123', // required
  'total' => 1000.0, // required
  'state' => 'new',
  'cancelled' => false,
  'paid' => false,
  'offers' => array( // required
    'sku' => 'offer-1',
    'name' => 'My product'
    'qnt' => 1,
    'price' => 1000.0,
    'priceOld' => 99.0,
    'url' => 'http://mysite.com',
    'picture' => 'http://mysite.com/products/sku.jpg'
  )
);
$client->track('orderCreate', $properties);

"orderUpdate" - обновление заказа

Обновление заказа может присылаться при любом изменении в нем. Например, может измениться состав товаров или статус заказа. Присылаются только номер заказа и обновленные данные. Поэтому из обязательных полей только номер заказа "number".

Пример отправки события:

$properties = array(
  'number' => '123', // required
  'total' => 1000.0,
  'state' => 'new',
  'cancelled' => false,
  'paid' => false,
  'offers' => array(
    'sku' => 'offer-1',
    'name' => 'My product'
    'qnt' => 1,
    'price' => 1000.0,
    'priceOld' => 99.0,
    'url' => 'http://mysite.com',
    'picture' => 'http://mysite.com/products/sku.jpg'
  )
);
$client->track('orderUpdate', $properties);

Обычно событие обновления заказа отправляется менеджером, а не посетителем сайта. Поэтому задание uid для этого события необязательно. Покупатель будет найден по номеру заказа.

Пример инициализации и отправки события с новым статусом:

include_once('DifflexClient.php');

$app_key = 'xxxxxxxxxxxxxxxxxxxxx';

$client = new EventTracker($app_key);
$properties = array(
  'number' => '123', // required
  'state' => 'shipped'
);
$client->track('orderUpdate', $properties);

Для предотвращения отправки событий для серверных клиентов предусмотрено задание access ключа. Предварительно он должен быть сконфигурирован в настройках вашего аккаунта для выбранных типов событий. Если для события настроен access ключ, то сервер будет фильтровать события с неверным/пустым ключом.

Ключ рекомендуется использовать только при отправке событий с backend, т.к. в противном случае он будет скомпрометирован.

Пример:

$client->set_access_key('yyyyyyyyyyyyyyyyyyyyyy');
$client->track('myevent', $properties);

Готовы начать?