Привет человек, я
! Нужна помощь?
Тесты и работающая форма
Для добавление лида
Нам нужно создать продукт в
APP раздел продукты
0. Самое важное поле - "Поле контроля"
- URL - добавляем ссылку где находится форма. Пример ссылки (http://yaroslav-samoylov.com/.root/mvc/)
- Redirect - куда попадает учасница после успешной отправки
1. Добавлять в АmoCRM
- Ставим галочку если нужно добавлять в АмоCRM и заполняем все поля (Сделка, Теги в Амо, Цена товара, ID товара)
- Сделка, Теги в Амо - думаю здесь понятно
- Цена товара - это поле опредиляет цену сделки в АmoCRM и в *E-Autopay
- ID товара - берем id товара в E-Autopay
* цена изменяется если в настройках товара E-Autopay в разделе "Стоимость и размеры комиссионных" > "Произвольная стоимость товара" включена возможность
2. Добавлять в GetResponse
- Ставим галочку если нужно добавлять в GetResponse и заполняем все поля
- первое поле "Кампания в GR" определяет в какую кампанию будут попадать новые контакты. Второе поле определяет в какую кампанию перевести после оплаты сделки
- если все хорошо на сделке видим зельоный кружок, если ошибка что-то пошло нетак
3. Отправка СМС
- Ставим галочку если нужно отправлять СМС
- - в тексте смс уже вказано имя если в форме имя не указывается оно автоматичести заменяется на "Уважаемая участница"
- - Пример смс "Альфред, вы подали заявку". Тоесть в этом поле должно бить ", вы подали заявку"
-- Категория не обезательно
Пример
Add AmoCRM and GetRespons
Добавление сделки в AmoCRM и GetRespons
public function actionAdd()
{
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type');
// переменные для использования
$response =array();
$response['AMOAnswerLead'] = NULL;
$GRAnswer = NULL;
$utm_medium=NULL;
$utm_source=NULL;
$utm_campaign=NULL;
$utm_term=NULL;
$utm_content=NULL;
$parsed_url['query'] = NULL;
//парсим ссылку на UTM-метки
$urls = $_SERVER['HTTP_REFERER'];
$parsed_url = parse_url($urls);
if (!empty($parsed_url['query'])) {
$str = $parsed_url['query'];
parse_str($str);
}
// достаем продукт по URL
$URL = strtok($_SERVER['HTTP_REFERER'], '?');
$product = Webhook::getURL($URL);
$products = $product['attributes'];
// SMS
// Если нет имени то подставляем свое для СМС (GR)
// используется для подписки на вебинар
if (empty($_POST['name'])) {
$_POST['name'] = 'Уважаемая участница';
}
if (empty($_POST['phone'])) {
$_POST['phone'] = NULL;
}
if ($products['smsview'] == 1) {
$SMS = send_sms(
$_POST['name'],
$_POST['phone'],
$products['SmS']
);
}
// добавляем в АМО и получаем id сделки
// готово работает AMO
if ($products['amoview'] == 1) {
if (!empty($_POST['key']))
{
$lead = AppLeads::getAmo($_POST['key']);
amo_add_task($_POST['key'], $products['amoName'], $lead['attributes']['manager']);
$response['AMOAnswerLead'] = $_POST['key'];
}
else
{
$lead['name'] = $products['amoName'];
$lead['price'] = $products['amoPrice'];
$lead['utm'] = $utm_source.'>'.$utm_medium.'>'.$utm_term.'>'.$utm_content.'>'.$utm_campaign;
$lead['tags'] = $products['amoTags'];
$contact['name'] = $_POST['name'];
$contact['phone'] = $_POST['phone'];
$contact['email'] = preg_replace("/( )|(\s)|( )/", '', $_POST['email']);
$contact['tags'] = $products['amoTags'];
// создадим сделку и создадим/обновим сделку
$AMOAnswerLead = amo_add_lead($lead);
$AMOAnswerContact = amo_add_contact($contact, $AMOAnswerLead);
$response['AMOAnswerLead'] = $AMOAnswerLead;
$response['AMOAnswerContact'] = $AMOAnswerContact;
}
}
// GR ждем 1 -1 или error code
$error = "";
if ($products['grview'] == 1) {
$GRAnswer = gr_add_lead(
$_POST['CAMPAIGN_ID'] = $products['grNew'],
$_POST['name'] = $_POST['name'],
$_POST['phone'] = $_POST['phone'],
$_POST['email'] = preg_replace("/( )|(\s)|( )/", '', $_POST['email']),
$_POST['url'] = $_SERVER['HTTP_REFERER'],
$response['AMOAnswerLead'],
$error
);
};
// добавляем/проверяем контакт
function addcontact($name, $phone, $email)
{
$contact = new AppContact();
$contact->name = $name;
$contact->email = preg_replace("/( )|(\s)|( )/", '', $email);
$contact->phone = preg_replace('~[^0-9]+~','',$phone);
$contact->save();
return $contact->id;
}
$contact = AppContact::getEmail($_POST['email']);
// если не нашли в базе контакт добавляем новый - используем функцию addcontact()
if (empty($contact->email)) {
$IDcontact = addcontact($_POST['name'], $_POST['phone'], $_POST['email']);
} else {
$IDcontact = $contact['id'];
}
// добавляем сделку и крепим к ней контакт
if (empty($_POST['key']))
{
$lead = new AppLeads();
$lead->contact = $IDcontact;
$lead->amo = $response['AMOAnswerLead'];
$lead->status = '1';
$lead->statusgr = $GRAnswer;
$lead->manager = 108840;
$lead->data = date("Y.m.d H:i:s");
$lead->eautopay = NULL;
$lead->utmmedium = $utm_medium;
$lead->utmsourse = $utm_source;
$lead->utmcampaing = $utm_campaign;
$lead->utmterm = $utm_term;
$lead->utmcontent = $utm_content;
$lead->product = $products['id'];
$lead->save();
}
if ($products['redirect'] !== 0) {
$response['redirect'] = $products['redirect'];
} else {
$response['redirect'] = '';
}
echo json_encode($response);
}
Webhook and E-autopay
Куда слать данные о сделке? Туда >
http://app.polza.com/leads/eautopay
public function actionEautopay()
{
$error = '';
$id = $_POST['additional_field_1'];
// $product_id = $_POST['product_id'];
if (!empty($id)) {
$one = Leads::getAmoedit($id);
$email = $one->email;
$idProduct = $one->product;
$products = Webhook::getOne($idProduct);
if ($products->grview == 1) {
$GR = gr_move_lead(
$email,
$products->eautopay,
$products->grNew,
$products->grEnd,
$error
);
print_r($GR);
}
}
if (!empty($id)) {
try {
$amo = amo_move_lead($id);
} catch (Exception $e) {
$error =
"Ошибка при обновлении лида в amoCRM:".
$e->getMessage().
"Отладочная информация (POST-запрос к скрипту):".
print_r($_POST,true);
}
print_r($amo);
}
}