Очередное обновление AlterCPA v 3.0

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

Серьёзные обновления:
— Появилась возможность перемещать заказы между компаниями с переносом или сбросом истории их обработки. Теперь лиды, которые ушли не туда, можно в два клика перенаправить по нужному адресу, даже если они уже обработаны.
— Блокировка компании по достижении лимита средств на счету. Нет лучшей мотивации для ваших поставщиков оплатить просроченные счета, чем блокировка доступа к заказам и механизма интеграции.
— Ваши вебмастера теперь могут применять дополнительные системы аналитики в потоках: пиксели VK и Facebook, Google Tag Manager
— Для удобства мы наконец включили автоматический отлов дубликатов заказов при добавлении. Эта опция обратно совместима с существующими механизмами интеграции, так что вам не придётся беспокоить своих агентов.

Разные мелкие исправления:
— Разбор трафика по ГЕО добавился ещё и во внутренние инструменты аналитики.
— Исправлена ошибка определения ГЕО на лендингах. Всего одна строчка добавлена, а сколько проблем осталось позади …
— Мы окончательно отказались от поточных ссылок вида ?12-34, поскольку они некорректно работают уже более чем в половине случаев.
— Доработан механизм долевого распределения поступающих заказов. Точность распределения повысилась. Теперь можно указывать дробные проценты распределения. Почему бы и нет, вдруг у вас 10к лидов ежесуточно?

Важно! После обновления файлов, обязательно выполните в базе следующий SQL-запрос, иначе тёмная сторона силы не сможет принести вам печеньки:

ALTER TABLE `cpa_call` ADD `call_geo` CHAR(2) NOT NULL AFTER `call_cur`, ADD INDEX (`call_geo`);
UPDATE `cpa_call` SET call_geo = ( SELECT order_country FROM cpa_order WHERE cpa_order.order_id = cpa_call.order_id );
ALTER TABLE `cpa_call` ADD `call_delivery` TINYINT UNSIGNED NOT NULL AFTER `call_price`, ADD INDEX (`call_delivery`);
UPDATE `cpa_call` SET call_delivery = ( SELECT order_delivery FROM cpa_order WHERE cpa_order.order_id = cpa_call.order_id );
ALTER TABLE `cpa_flow` ADD `flow_fb` VARCHAR(100) NOT NULL AFTER `flow_mtrk`, ADD `flow_vk` VARCHAR(100) NOT NULL AFTER `flow_fb`, ADD `flow_ga` VARCHAR(100) NOT NULL AFTER `flow_vk`;
ALTER TABLE `cpa_cash` ADD `cash_uid` VARCHAR(32) NOT NULL AFTER `cash_time`, ADD INDEX (`cash_uid`);
ALTER TABLE `cpa_comp` ADD `comp_block` INT NOT NULL AFTER `comp_name`;