{{ error }}
{{ success }}
Обзор
{{ stats.sites_total || 0 }}
сайтов активно
{{ stats.sites_ok || 0 }}
на связи
{{ stats.sites_error || 0 }}
с ошибкой
{{ stats.drift_open || 0 }}
расхождений
Сайты разъехались по ФОП. Сейчас в работе несколько разных суффиксов: {{ s }} — {{ n }}
Отправитель Новой Почты
ПриложениеАктивный ключСвязьПроверено
{{ a.name }}
{{ a.db_path }}
{{ a.last_state.np_key_name }} {{ healthLabel(a.health) }}
{{ a.last_error }}
{{ fmtDate(a.last_state_at) }}
Текущее состояние
обновлено при последней проверке
Сайтов пока нет. Добавить первый
СайтCMSСуффикс Внутренний заголовокСвязьПроверен
{{ s.name }}
{{ s.url }}
{{ s.cms==='woo'?'Woo':'OpenCart' }} {{ s.last_state.code_suffix }} {{ (s.last_state && s.last_state.internal_title) || '—' }} {{ healthLabel(s.health) }}
{{ s.last_error }}
{{ fmtDate(s.last_state_at) }}
Переключение ФОП
1. Выберите профиль
Профилей нет. Создать профиль ФОП
2. Выберите сайты
{{ s.name }}
{{ s.url }}
{{ s.cms==='woo'?'Woo':'OC' }} {{ s.last_state.code_suffix }} {{ healthLabel(s.health) }}
3. Отправитель Новой Почты
переключается вместе с сайтами
{{ a.name }}
{{ a.db_path }}
{{ a.last_state.np_key_name }} → {{ npKeyFor(a.id) }} ключ не задан
Для профиля не задан ключ НП в: {{ missingNpKeys.join(', ') }}. Эти приложения будут пропущены — отправитель в накладных останется прежним. Задать можно в «Профили ФОП».
Сначала показываем список изменений, записи не происходит
{{ jobTypeLabel(job.type) }} {{ jobStatusLabel(job.status) }}
{{ job.done_count }} / {{ job.total }}
СайтСтатусИзменения
{{ t.site_name }}
{{ t.site_url }}
{{ targetLabel(t.status) }}
{{ t.duration_ms }} мс
{{ t.error }}
{{ fieldLabel(field) }} {{ fmtVal(pair[0]) }} {{ fmtVal(pair[1]) }}
без изменений
Менять нечего — на всех выбранных сайтах уже стоит этот профиль.
Будет изменено сайтов: {{ changesCount }}. Клиенты, уже стоящие в чекауте, какое-то время ещё будут оформляться со старым ФОП — такие заказы попадут в «Расхождения».
Готово: успешно {{ job.ok_count }}, с ошибкой {{ job.fail_count }}.
Расхождения
Сюда попадают заказы, оформленные после переключения, но с прежним ФОП — покупатель уже стоял в чекауте, и модуль взял суффикс из его сессии. Также сюда попадают заказы с кодом без суффикса: признак, что на сайте не отработал confirm().
Расхождений нет
СайтЗаказПришлоОжидалосьТипДата
{{ d.site_name }} #{{ d.order_ref }} {{ d.payment_code }} {{ d.expected_code }} {{ d.kind==='no_suffix' ? 'без суффикса' : 'старый ФОП' }} {{ d.order_date }}
История переключений
Переключений ещё не было
#ТипПрофильРезультатКтоКогда
{{ j.id }} {{ jobTypeLabel(j.type) }} {{ j.profile_name }} {{ j.profile_suffix }} {{ jobStatusLabel(j.status) }} {{ j.ok_count }}/{{ j.total }} {{ j.actor_name || 'крон' }} {{ fmtDate(j.created_at) }}
Ночная ротация ФОП
Каждую ночь панель переключает все сайты и приложения на следующий ФОП из списка, по кругу. Кого нет в списке — тот в ротации не участвует.
По киевскому времени. Крон проверяет каждые 10 минут.
Порядок ротации
переключение идёт сверху вниз, затем снова сверху
{{ schedule.rotation.indexOf(p.id) >= 0 ? (schedule.rotation.indexOf(p.id) + 1) : '—' }}
{{ p.name }}
{{ p.code_suffix }}
Следующим будет: {{ nextProfileName }}
Последний запуск: {{ schedule.last_run_on }}
Сайты
Сайтов пока нет
НазваниеCMSСвязьСуффикс
{{ s.name }}
{{ s.url }}
{{ s.cms==='woo'?'Woo':'OpenCart' }} {{ healthLabel(s.health) }}
{{ s.last_error }}
{{ s.last_state.code_suffix }}
Профили ФОП
Профилей пока нет
НазваниеСуффиксВнутренний заголовокДля клиентаСайтов
{{ p.name }} {{ p.code_suffix }} {{ p.internal_title }} {{ p.customer_title }} не менять {{ p.sites_count }}
Приложения Новой Почты
Приложения на этом же сервере, которые создают накладные — RMA, Picker. При переключении ФОП панель меняет в них активный ключ Новой Почты, чтобы отправитель в ТТН совпадал с ФОП на сайтах.
Приложений пока нет
НазваниеАктивный ключСвязь
{{ a.name }}
{{ a.db_path }}
{{ a.last_state.np_key_name }} {{ healthLabel(a.health) }}
{{ a.last_error }}
Пользователи
ЛогинEmailРольАктивен
{{ u.username }} {{ u.email || '—' }} {{ u.role }} {{ u.is_active?'да':'нет' }}