PHP клиент предназначен для отправки событий в Difflex. Скачать клиент можно из репозитория.
Для работы с PHP клиентом нужно разместить файл скрипта на хостинге и прописать код инициализации:
include_once('DifflexClient.php');
$app_key = 'xxxxxxxxxxxxxxxxxxxxx';
$uid = $user_id;
$client = new DifflexClient($app_key);
$client->set_uid($uid);
При любом изменении состава товаров (вариантов) в корзине необходимо отсылать данные на сервер. Это может быть добавление товара в корзину или изменение количества одного из товаров, удаление товара из корзины, очистка корзины.
Пример отправки события обновления корзины:
$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);
Событие создания нового заказа наступает, когда посетитель заполнил форму заказа и нажал "подтвердить заказ". Как правило, после завершения оформления заказ создается в базе сайта и ему присваивается уникальный номер.
Отправка события через 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);
Обновление заказа может присылаться при любом изменении в нем. Например, может измениться состав товаров или статус заказа. Присылаются только номер заказа и обновленные данные. Поэтому из обязательных полей только номер заказа "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);