Тема
База даних і синхронізація
Щоб форма відправлення, кошик покупця і списки працювали швидко, модуль тримає в базі магазину власну копію даних Нової пошти: довідники, міста, відділення, а також ваші відправлення й реєстри. Екран База даних показує, що саме завантажено, наскільки воно свіже, і дає все це оновити - вручну або за розкладом.
На екрані:
- угорі чотири картки: Сервер бази, Дані, Продуктивність синхронізації і Сервіс
- нижче таблиця розділів із кнопками синхронізації
- праворуч картки Синхронізація і Журнал синхронізацій
Екран «База даних»: картки стану, таблиця розділів і синхронізація
Користувач із правом лише на перегляд бачить усі цифри, але кнопок синхронізації та обслуговування в нього немає.
Що зберігає модуль
Таблиця розділів на екрані «База даних»: довідники, адреси і документи
Таблиця поділена на три групи. Для кожного рядка видно кількість записів, обсяг і час останньої синхронізації.
Довідники
Один рядок Довідники - «довідкові дані перевізника». Стрілка біля назви (Показати довідники) розгортає перелік:
| Довідник | Для чого |
|---|---|
| Типи вантажу, Типи послуг, Форми оплати, Типи платників | списки вибору у формі відправлення |
| Типи упаковки, Шини та диски, Описи вантажу | пакування, шини й диски та опис вантажу у формі відправлення |
| Відправники, Контактні особи відправників, Адреси відправника, Опції відправника | дані вашого акаунта Нової пошти, з яких складаються відправники |
| Треті особи | контрагенти, яких можна вказати платником як третю особу |
| Типи відділень, Статуси відділень | які бувають відділення і чи вони працюють |
| Статуси відправлень, Групи статусів, Способи доставки | назви статусів, їхні групи та способи доставки, за якими модуль показує бейджі й рахує статистику |
| Інтеграції | перелік сервісів екрана «Інтеграції»: назви, описи, що вже працює й що буде пізніше |
| Коди помилок | пояснення помилок Нової пошти словами |
| Отримувачі | «отримувачі та їхні контактні особи» - книга отримувачів |
Розгорнуті довідники в таблиці «База даних»
Адреси
- Країни - «довідник країн для міжнародних відправлень»
- Області - «адміністративні області України»
- Міста - «міста з покриттям Нової пошти»
- Відділення - «поштові та вантажні відділення»
- Поштомати - «поштомати Нової пошти». Відділення й поштомати лежать в одній таблиці, але завантажуються окремо: так радить Нова пошта, бо поштоматів десятки тисяч
- Населені пункти і Вулиці - у базі не зберігаються: модуль шукає їх у Нової пошти під час введення. Про ці два рядки йдеться нижче на цій сторінці
Якщо в Нової пошти записів стало більше чи менше, ніж у вашому довіднику, під кількістю з'являється рядок «у перевізника» з числом записів у Нової пошти - це знак, що розділ час оновити. Після синхронізації поруч із кількістю видно, на скільки вона змінилась.
Документи
- Відправлення - «локальне дзеркало відправлень акаунта»
- Реєстри - «локальне дзеркало реєстрів»
Кількість і час останнього імпорту тут показано для відправника, обраного у верхній панелі.
Оновити вручну
- Відкрийте База даних.
- Натисніть кнопку Синхронізувати в кінці потрібного рядка.
- Дочекайтеся, поки в рядку замість смужки поступу з'явиться новий час.
Що саме оновлює кнопка:
- у рядку розділу, наприклад Міста, - лише цей розділ
- у рядку Довідники - усі довідники разом із книгою отримувачів
- у розгорнутому переліку довідників - лише один довідник
- Синхронізувати все над таблицею - усі розділи, а слідом відправлення й реєстри
Поки триває одна синхронізація, клік по іншому рядку ставить його в чергу: кнопка темнішає, а підказка каже «У черзі». Ще один клік прибирає рядок із черги. Під час Синхронізувати все окремі кнопки недоступні.
Міста, відділення й поштомати можна оновити і з меню кнопки Nova poshta PRO у верхній панелі OpenCart. Там та сама черга: поки оновлюється один рядок, кнопка іншого ставить його в чергу (у рядку з'являється «у черзі»), ще один клік прибирає його з черги. Унизу того ж меню - переходи в База даних і Налаштування модуля.
Зупинити синхронізацію
Поки синхронізація триває, поруч із Синхронізувати все з'являється кнопка Зупинити. Вона зупиняє синхронізацію, яка виконується зараз, а розділи, що стояли за нею в черзі, не запускаються.
Синхронізація всіх розділів: рядок за рядком, смуга ходу і «Зупинити»
Нічого не ламається: розділ, який не встиг оновитися, лишається таким, яким був до запуску. Запустити синхронізацію знову можна будь-коли.
Якщо розділ не оновився, причина з'явиться червоним рядком під його назвою, наприклад «Нова пошта не відповіла. Спробуйте пізніше»
Те саме з Огляду
Блок База даних на екрані Огляд має ті самі кнопки для основних розділів - див. Огляд і аналітика.
Позначки актуальності
Колонка Синхронізовано показує час останньої успішної синхронізації: «сьогодні» чи «вчора» з годиною або дату. Колір підказує, чи час оновлювати:
- зелений - дані свіжі
- помаранчевий - термін свіжості минув
- червоний - минуло вже два терміни, розділ ще не завантажувався («Ще не синхронізовано») або остання спроба не вдалася («Помилка синхронізації»)
Термін свіжості - доба для розділів Міста, Відділення, Поштомати, Відправлення і Реєстри та місяць для розділів Довідники, Країни, Області і Отримувачі.
Над таблицею модуль підсумовує: «Усі довідники актуальні» або «Застарілих довідників» з кількістю.
Автосинхронізація
Картка «Синхронізація»: автосинхронізація довідників, адрес і документів
Картка Синхронізація задає, що модуль оновлює сам і як часто.
| Рядок | Що оновлюється | Інтервал |
|---|---|---|
| Довідники | «Автосинхронізація всіх довідників Нової пошти» | у годинах, від 1 до 168 |
| Адреси | «Автосинхронізація адрес: міста, відділення й поштомати» | у годинах, від 1 до 168 |
| Документи | «Автосинхронізація документів: відправлення й реєстри» | у хвилинах, від 1 до 1440 |
Щоб увімкнути:
- Увімкніть перемикач у потрібному рядку.
- Задайте інтервал.
- Натисніть Зберегти - кнопка з'являється внизу картки, щойно ви щось змінили.
Як це працює:
- Модуль перевіряє розклад приблизно раз на хвилину, поки в браузері відкрита адмін-панель магазину і вкладка з нею активна. Коли адмін-панель закрито, автосинхронізація не працює - для цього є крон
- За раз запускається одна група. Якщо синхронізація вже йде, нова не стартує
- Початок і кінець кожного запуску модуль записує в Події і, поки ви працюєте в модулі, показує сповіщенням: «Автосинхронізацію адрес запущено», «Автосинхронізацію адрес завершено», а в разі збою - «Автосинхронізація адрес не вдалася»
- Перемикач та інтервал рядка Документи діють для відправника, обраного у верхній панелі, тож їх налаштовують для кожного відправника окремо
Статуси відправлень мають власне фонове оновлення: параметр Фонове оновлення на вкладці Трекінг у налаштуваннях - див. Трекінг.
Інші параметри картки
- Глибина синхронізації документів - «За скільки днів забирати відправлення й реєстри з Нової пошти під час синхронізації». Це і є період імпорту документів: від 1 до 365 днів, типово 30
- Журнал синхронізацій - «Скільки записів журналу зберігати для кожного розділу»: від 50 до 1000
- Кеш пошуку адрес - «Скільки годин зберігати знайдені населені пункти й вулиці у формі відправлення»: від 1 до 168 годин
- Звірка з перевізником - «Як часто оновлювати кількість записів у Нової пошти для порівняння з довідником», у хвилинах або годинах
Онлайн-пошук населених пунктів і вулиць
Рядки Населені пункти і Вулиці в групі Адреси мають перемикач замість кнопки синхронізації. Він вмикає й вимикає підказки населених пунктів і вулиць для кур'єрської доставки в кошику. Поруч видно стан: «онлайн» або «вимкнено». Зміна зберігається одразу, без кнопки Зберегти.
Перемикачі стосуються лише кошика і не вимикають доставку кур'єром: без підказок покупець вводить населений пункт і вулицю сам. У формі відправлення в адмін-панелі пошук працює завжди.
Сервер бази
Картки «Сервер бази», «Дані», «Продуктивність синхронізації» і «Сервіс»
Картка називає сервер бази даних, його версію і час безперервної роботи, а нижче показує п'ять перевірок. Біля кожної - зелена позначка або знак попередження з поясненням.
- Кодування - «Таблиці модуля мають бути в utf8mb4»
- Рушій - «Таблиці модуля мають бути InnoDB»
- Буфер - попередження, якщо з пам'яті сервер обслуговує менше ніж 95% читань: буфер замалий
- Пакет - «Потрібно щонайменше 16 МБ»
- Підключення - «Пік підключень сягав 80% ліміту»
Коли якась перевірка не пройдена, у заголовку картки з'являється позначка «до уваги» з кількістю. Усе це - налаштування сервера бази даних: передайте назву рядка і пояснення підтримці вашого хостингу. Якщо хостинг не віддає якийсь показник, у рядку стоїть риска без позначки.
Дані і кеш
Картка Дані показує загальний обсяг таблиць модуля, смужку з поділом на дані й індекси, кількість таблиць і кількість записів.
Нижче, у блоці Кеш, - тимчасові дані, які модуль може будь-коли отримати знову: обсяг, кількість записів і файлів, час останнього оновлення та поділ на чотири види:
- карта - точки відділень для карти в кошику
- кількості - числа записів у Нової пошти для звірки з довідником
- адреси - знайдені населені пункти й вулиці
- інтервали - часові проміжки для виклику кур'єра
Довідники до кешу не належать: вони оновлюються лише синхронізацією.
Продуктивність синхронізації
Картка показує, скільки тривають синхронізації розділів Довідники, Міста, Відділення і Поштомати - медіану й максимум, з маленьким графіком останніх запусків, - а в рядку API час відповіді Нової пошти. Поки синхронізацій було менше двох, у рядку написано «недостатньо даних».
Сервіс
Картка Сервіс допомагає обслуговувати таблиці модуля. Кожен рядок сам показує свій стан: зелена позначка - робити нічого не треба і кнопка неактивна; знак попередження - рядок потребує уваги; сіра позначка - планову дію пора повторити. Кількість попереджень видно в заголовку картки: «до уваги».
Картка «Сервіс»: обслуговування таблиць модуля
| Рядок | Кнопка | Що робить | Коли рядок просить уваги |
|---|---|---|---|
| Фрагментація | Оптимізувати | повертає місце, яке таблиці займають даремно | попередження, коли в таблиці накопичилось багато вільного місця, показує його обсяг |
| Застарілі дані | Очистити | видаляє службові записи, які вже не потрібні: прострочений кеш адрес, прострочені одноразові посилання на друк і завантаження, давно завершені фонові задачі | попередження, коли такі записи є, показує їх кількість |
| Цілісність | Перевірити | перевіряє таблиці на пошкодження | попередження, якщо знайдено пошкоджені таблиці. Сіра позначка, якщо від перевірки минуло понад 30 днів або її ще не було («не перевірялась») |
| Пошкодження | Ремонтувати | лагодить таблиці, які перевірка визнала пошкодженими | попередження лише після такої перевірки, показує кількість таблиць |
| Статистика | Аналізувати | оновлює статистику таблиць, за якою сервер обирає швидший шлях запиту | сіра позначка, якщо від оновлення минуло понад 30 днів або його ще не було («не оновлювалась») |
| Тимчасові таблиці | Очистити | прибирає залишки після синхронізації | попередження, коли залишки є |
| Кеш | Очистити кеш | видаляє кеш модуля: карту, кількості, адреси, інтервали | сіра позначка, поки кеш не порожній |
Що варто знати:
- Одночасно виконується одна дія. Довгі дії показують поступ - скільки таблиць оброблено із загальної кількості
- Поки триває синхронізація, дії з таблицями недоступні. Застарілі дані і Кеш можна чистити будь-коли
- Якщо перевірка знаходить проблему, модуль повідомляє «Знайдено пошкоджені таблиці» - натисніть Ремонтувати. Повідомлення «Не всі таблиці вдалося обробити» означає, що дію варто повторити, а якщо не допоможе - звернутися в підтримку
- Очищення кешу не чіпає довідників і документів
Журнал синхронізацій
Картка праворуч перелічує останні синхронізації: розділ, кількість записів, час початку і тривалість. Крапка зелена для успішного запуску і червона для невдалого. Журнал гортається стрілками внизу картки.
Біля невдалого запуску замість часу стоїть повторити: клік одразу запускає синхронізацію цього розділу ще раз.
Картка «Журнал синхронізацій»: що, коли і з яким результатом
Крон
Автосинхронізація працює лише тоді, коли відкрита адмін-панель. Щоб дані оновлювалися і вночі, додайте команди модуля в планувальник завдань вашого хостингу (Cron). Десять готових команд - Області, Міста, Відділення, Поштомати, Довідники, Документи, Відстеження відправлень, Перерахунок аналітики, Інтеграції і Сценарії - зібрані на вкладці Планувальник розділу Налаштування. Що робить кожна, як часто її запускати і як додати її в хостинг, описано на сторінці Планувальник.
Крон і автосинхронізація не заважають одне одному: поки синхронізація розділу триває, друга така сама не стартує.