PowerPartners.ru

Форум партнерской программы
Текущее время: 09 дек 2019, 10:30

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Проверки Я.Маркета
СообщениеДобавлено: 18 окт 2019, 17:00 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 1883
Я.Маркет периодически делает проверочные (тестовые) заказы на сайтах участников. При этом приходит обычный с виду заказ в комментарии к которому указано примерно следующее:
Код:
Это контрольный заказ Маркета. Мы проверяем, как быстро магазин отвечает на заказы. Чтобы пройти проверку, в течение часа с любой почты отправьте на mihailo.peroff@yandex.ru письмо с кодом xGf80x Yd9DIX без пробела. После этого заказ можно отменить. Если он поступил в нерабочее время магазина, отправьте письмо в течение первого часа следующего рабочего дня. Подробнее о том, как пройти проверку: https://yandex.ru/support/partnermarket/quality/critical-mistakes.html#order__check-code


Такие проверки зачастую вызывают вопросы у партнеров, поэтому подробнее расскажем о том, как мы на них реагируем.

Начнем описание со способа приема заказов: если заказ поступил к партнерку штатно, т.е. через API или биллинг (со стандартного движка партнерского магазина) то менеджеры сразу получают оповещение и реагируют на такой заказ максимально оперативно (единственное, что их может задержать от МГНОВЕННОГО реагирования это то, что в данный момент они кого-то консультируют по телефону). Однако, некоторые партнеры используют сторонние движки, а заказы передают в партнерку путем отсылки e-mail. Вот тут возникает первая возможная задержка. Дело в том, что работа менеджеров жестко регламентирована по приоритету примерно так:
1. Работа на телефоне
2. Обработка поступающих штатно заказов.
2. Взаимодействие с курьерами/пунктами выдачи, решение всех рабочих вопросов.
3. Обработка входящей почты.
Т.е. грубо говоря, почту прочтут лишь когда телефон не звонит, нет необработанных заказов в системе и у курьеров/пунктов самовывоза все вопросы решены. Следует иметь это в виду, выбирая способ передачи заказов.

Может возникнуть вопрос, почему почта обрабатывается с низким приоритетом: На этот ящик сыпется почта СО ВСЕХ ящиков всех магазинов (адреса которых указаны публично), там очень много спама! Разбирать там все письма - титанический труд, и ставить эту работу (по большей части разгребание спама) выше работы с реальными заказами - просто неразумно. Этим занимаются в свободное время.

Второй момент касается требования отправки e-mail с кодами проверки: Если на каждую такую проверку (со многих партнерских магазинов) менеджеры будут отправлять письма со своих ящиков, это явно будет свидетельствовать об аффилированности всех магазинов и все они будут немедленно отключены от маркета без права обжалования. Поэтому, чтобы этого избежать, менеджеры отправляют письма с "одноразовых" e-mail адресов используя сервис guerrillamail.com Адреса там действительно одноразовые, так что заглянуть в исходящие не получится, после отправки - выдается новый адрес. Скриншоты перед отправкой сохраняются, там видно системное время формирования письма. По запросу могут быть предоставлены.

Однако, иногда письма с одноразовых доменов попадают под фильтры почты яндекса, проверяющие их не получают и засчитывают магазину нарушения. Поэтому, во избежании недоразумений рекомендуется отслеживать такие проверки САМОСТОЯТЕЛЬНО и самостоятельно отправлять проверочные коды с почты, указанной на сайте магазина.

В штатном движке можно, например, добавить строку
Код:
mail('my@mail.ru', 'Новый заказ ' . $matches[1], $_POST['comments']);
в файл order.php. И тогда на вашу почту my@mail.ru будут приходить комментарии к новым заказам. Увидели требование отсылки проверочного кода - отпраляете код с ящика sales@myshop.ru.

Измененный код в order.php будет выглядеть так:
Код:
   if (preg_match('/^Order #: ([0-9]*)$/', $status, $matches)) {
                mail('my@mail.ru', 'Новый заказ ' . $matches[1], $_POST['comments']);

           $tmpl = startTemplate('complete.tmpl');
           $tmpl->setVar('order_no', $matches[1]);
           $tmpl->pparse();
    }


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

P.S. Внимание! Данное решение УСТАРЕЛО! Обновленная инструкция здесь и еще одна - чуть ниже


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 16 ноя 2019, 19:08 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 1883
Когда наши программисты готовили обновление 1648 и попутно узнали задачу, ради которой все это затевалось, то предложили более универсальное решение (даже решения):

1. Отправлять на почту лишь те сообщения, которые являются контрольными заказами Я.Маркета. Обнаруживаем их по наличию строки "Это контрольный заказ Маркета" в комментариях:
Код:
function onOrderComplete($order, $tmpl) {
  if (preg_match('/Это контрольный заказ Маркета/is', $order['comments'], $matches)) {
    mail('my@mail.ru', 'Контрольный заказ Маркета (#' . $order['id'] . ')', $order['comments']);
  }
}


2. Полностью автоматизировать процесс: отправлять проверочный код контрольного заказа сразу на указанный адрес. Тут небольшая тонкость: отправлять надо с почты на домене магазина, поэтому либо настраиваем php, чтобы функция mail отправляла с нужного адреса. Либо, делаем "почту для домена" (например https://biz.mail.ru/mail/ или https://pdd.yandex.ru), создаем там ящик для отправки проверок, например sales@myelectroshop.ru. И отправляем уже не функцией mail(), а, к примеру, библиотекой PHPMailer, которую положим в /custom/lib/PHPMailer. Тогда код в /custom/hooks.php будет выглядеть так:
Код:
function onOrderComplete($order, $tmpl) {
  if (preg_match('/отправьте на (.*?) письмо с кодом (.*?) (.*?) без пробела/is', $order['comments'], $matches)) {
    $email = $matches[1];
    $code = $matches[2] . $matches[3];

    $SMTP_HOST = 'ssl://smtp.yandex.ru:465';
    $SMTP_USER = 'sales@myelectroshop.ru';
    $SMTP_PSWD = 'xxxxxxxxxxxxx';

    require_once(dirname(__FILE__) . '/lib/PHPMailer/class.phpmailer.php');
    require_once(dirname(__FILE__) . '/lib/PHPMailer/class.smtp.php');

    $mail = new PHPMailer;
    $mail->CharSet = 'UTF-8';
    $mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPDebug = 0;
    $mail->Host = $SMTP_HOST;
    $mail->Username = $SMTP_USER;
    $mail->Password = $SMTP_PSWD;
    $mail->setFrom($SMTP_USER);
    $mail->addAddress($email);
    $mail->Subject = 'FWD: Заказ';
    $mail->msgHTML($code);
    $mail->send();
  }
}


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 17 ноя 2019, 11:06 
Не в сети

Зарегистрирован: 17 июл 2019, 12:36
Сообщения: 45
Этот скрипт сможет убрать пробел в проверочном коде?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 17 ноя 2019, 11:27 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 1883
Да


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 24 ноя 2019, 15:37 
Не в сети

Зарегистрирован: 17 июл 2019, 12:36
Сообщения: 45
Возможно ли отправлять письмо с задержкой 10 минут?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 24 ноя 2019, 15:46 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 1883
Да можно-то всё, вопрос сколько кода для этого придется написать...

Теоретически делаем так:
1. При поступлении проверочного заказа сохраняем в базу код проверки, номер заказа и время поступления.
2. Вешаем задачу в crontab, которая запускается каждую минуту, выбирает из базы все сохраненные записи, у которых прошло 10 мин, отправляет email и в случае успешной отправки удаляет из базы соответствующую строку.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 24 ноя 2019, 16:18 
Не в сети

Зарегистрирован: 17 июл 2019, 12:36
Сообщения: 45
Цитата:
Да можно-то всё, вопрос сколько кода для этого придется написать...

Понятно. Автоматически отправленное письмо не сохраняется в папке "отправленные". Просто иногда Яндекс запрашивает скриншот отправленного письма.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 24 ноя 2019, 16:24 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 1883
Нет, не сохраняется, но можно добавит еще одну строку
Код:
$mail->addAddress('my@mail.ru');
и тогда письмо уйдет сразу 2-м адресатам, и в вашем ящике my@mail.ru сохранится как входящее, где будет указано что и на искомый адрес оно отправлялось.

Хотя вряд ли для яндекса это будет доказательством, они же хотят увидеть РУЧНУЮ реакцию на такой заказ, а не автоматическую.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Проверки Я.Маркета
СообщениеДобавлено: 24 ноя 2019, 16:41 
Не в сети

Зарегистрирован: 17 июл 2019, 12:36
Сообщения: 45
Цитата:
Хотя вряд ли для яндекса это будет доказательством, они же хотят увидеть РУЧНУЮ реакцию на такой заказ, а не автоматическую.

Ладно, оставлю пока все так, как есть. Если придерутся, то снова перейду на ручной режим отправки кодов.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB