=== Marketplace Waybills for WooCommerce ===
Contributors: catcodestudio
Tags: woocommerce, rozetka, epicentr, marketplace, shipping
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Номер накладної із замовлення WooCommerce їде в кабінет маркетплейсу — Rozetka і Епіцентр — без перенесення руками.

== Description ==

Продавець, який торгує і на маркетплейсі, і у власному магазині, робить одну й ту саму роботу двічі: створює накладну, а потім відкриває кабінет Rozetka чи Епіцентру й вбиває той самий номер туди. Модуль прибирає другий крок.

= Що вміє =

* Один список замовлень обох маркетплейсів, яким ще потрібна ТТН
* Номер підставляється із замовлення WooCommerce — з модулів Нової Пошти, Укрпошти, ROZETKA Delivery або зі свого поля
* Відправка ТТН у кабінет однією кнопкою — зі списку або з картки замовлення
* Rozetka: разом з номером виставляється статус, далі кабінет веде трекінг сам
* Епіцентр: номер і переведення в «Відправлено» одним рухом
* Привʼязка замовлення WooCommerce до замовлення маркетплейсу просто в картці замовлення
* Журнал відправлень: що, куди, коли і з якою відповіддю кабінету
* Повторна відправка того самого номера не робиться — кабінет не смикається двічі
* Самовивіз позначається окремо: накладної там немає, кнопка не пропонується
* Сумісність з HPOS (окремі таблиці замовлень)

= Pro =

* Автовідправка: номер їде в кабінет сам, щойно зʼявився в замовленні
* Вибір статусів замовлення, які вмикають відправку
* Крон раз на 10 хвилин добирає ті замовлення, де накладна прийшла із затримкою

Pro можна спробувати 7 днів безкоштовно, без картки.

== Installation ==

1. Завантажте архів у «Плагіни → Додати новий → Завантажити плагін».
2. Активуйте плагін.
3. WooCommerce → «ТТН у маркетплейси» — увімкніть потрібні кабінети та введіть реквізити.
4. WooCommerce → «Замовлення маркетплейсів» — список тих, кому ще потрібен номер.

== Frequently Asked Questions ==

= Які реквізити потрібні? =

Для Rozetka — логін і пароль кабінету продавця (seller.rozetka.com.ua). Для Епіцентру — статичний токен з кабінету: «Налаштування компанії → вкладка API»; доступ до вкладки відкриває категорійний менеджер.

= Чи можна перевірити модуль без кабінету продавця? =

Ні. У жодного з двох маркетплейсів немає пісочниці — API відкривається лише реквізитами живого кабінету.

= Звідки модуль бере номер накладної? =

З мета-полів замовлення: `_npwc_ttn` (Нова Пошта), `_upwc_barcode` (Укрпошта), `_rzdwc_track_id` (ROZETKA Delivery). Якщо накладну пише інший модуль — впишіть його ключ у поле «Своє поле», і модуль перевірить його останнім.

= Як замовлення маркетплейсу привʼязується до замовлення WooCommerce? =

У картці замовлення є блок «ТТН у маркетплейс»: оберіть маркетплейс і вкажіть ID замовлення в ньому. Після цього номер підставляється в список автоматично, а з Pro — і відправляється сам.

= Чи треба після відправки міняти статус у кабінеті руками? =

Ні. Розетка з появою ТТН вмикає власний трекінг і рухає статуси сама. Епіцентр переводить у «Відправлено» сам модуль, якщо галочка ввімкнена.

= Що буде, якщо кабінет не прийме номер? =

Модуль покаже причину так, як її сформулював кабінет, запише її в журнал і в примітки до замовлення. Замовлення при цьому не позначається як відправлене, тож наступна спроба піде знову.

== Changelog ==

= 1.0.4 =
* Fix: on the legacy order storage (HPOS off) every marketplace order in the list showed as linked to the newest WooCommerce order, whose waybill number was prefilled in every row and whose order got the "sent" mark and note. The link is now found by the marketplace order ID on both order storages.
* Fix: on the legacy order storage the 10-minute check (Pro) looked through the 25 latest orders of any kind instead of the orders linked to a marketplace, so waybills of older linked orders could stay unsent.

= 1.0.3 =
* Fix: deactivating and deleting the plugin now also removes its daily licence check from WP-Cron (the "ccmw_daily_license" event stayed behind).
* Fix: the 10-minute check that sends waybills added after the status change (Pro) is scheduled again — on activation it could fail because its interval was not registered yet.

= 1.0.2 =
* Fix: with the plugin active, the "Update" button on the WooCommerce order screen did not save the order (a status change was lost). The order box no longer adds its own form fields to the order form: "Save binding" and "Send waybill" now work in the background and show the result right in the box, and the binding is also saved with the regular order "Update". Works with HPOS and the classic order storage.

= 1.0.1 =
* Security: stored API keys are now encrypted with AES-256 (OpenSSL) instead of the old XOR obfuscation, which some hosting antivirus scanners flagged and deleted. Keys saved by earlier versions keep working.

= 1.0.0 =
* Перший випуск: Rozetka Маркетплейс і Епіцентр Маркетплейс.
