Выгрузка товаров на Озон (ozon.ru)

Недавно к нам обратился наш постоянный клиент - производитель женской одежды - с задачей сделать интеграцию с порталом ozon.ru в части товаров. В результате работы по этой задаче, которая на первый взгляд показалась довольно прозрачной, выяснилось несколько ключевых моментов о которых и хочу здесь рассказать.
Первое и несомненно самое неприятное впечатление произвела техническая поддержка озона. Вернее ее полное отсутствие - все звонки и письма, отправленные в адрес техподдержки, остались без ответа. [spoiler]
Второе, что очень усложнило работу, это документация - она находится в каком-то зачаточном состоянии, не предоставляет даже простенького штатного примера обращения с серверу api-seller.ozon.ru. Ну да ладно, обращаемся curl-ом с передачей в каждом (каждом!!!) запросе параметров авторизации.
Третье - ozon предоставляет некую тестовую среду cb-api.ozonru.me и рекомендует использовать ее для отладки кода, НО эта среда не позволяет обращаться к ней для создания сущностей, неожиданно "умирает", отдает данные отличные от боевой (об этом еще чуть ниже напишу отдельно!) - это усложняет работу довольно существенно.
Четвертое - чтобы создать карточку товара на озоне нужно передать несколько обязательных параметров и атрибутов. В отличие от таких ресурсов как Яндекс и Google, ozon.ru не способен сам определить принадлежность товара к категории и типу, следовательно эти данные мы должны ему передать самостоятельно. И в принципе это было бы ничего, если бы не совершенно инфернальная система шифрования этих данных:
[category_id] => 17028659
                            [title] => Входные двери
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [category_id] => 61193172
                                            [title] => Двери
                                            [children] => Array
                                                ()

То есть мы не можем передать название категории, мы должны выдать некий цифровой id этой категории, предварительно убедившись в том, что категория последнего уровня - иначе товар не создастся. Категории (как и атрибуты) могут изменяться!!! вдруг, о чем озон обещает нас предупредить. Это создает огромные сложности как для нашего клиента (он вынужден проводить соответствие категорий своих и озона с помощью ничего не значащих цифр) так и для разработчика в смысле дальнейшей поддержки и поиска багов при синхронизации.
Пятое - все что было описано в пункте 4 относительно категорий так же касается и атрибутов товара. Все атрибуты зависят от категорий и даже более того: в одной категории могут быть разные атрибуты
Шестое - изменить категорию после создания товара невозможно, то есть необходимо удалить такой товар и создать его заново (ад!!)
Седьмое - любое изменение в карточке товара кроме цены и остатков отправляет карточку товара на модерацию - очень неудобно для клиента, так как модерация может занять не один день, а товар в это время не продается.
Восьмое (и самое странное), каждый метод имеет свой (отличный от других) размер пакета данных - где 100, а где 1000 - выкручивайтесь как-то так.
В общем, работа с api озона не принесла особого удовольствия, хотя задачу мы конечно выполнили, но "хвост" у нее будет, похоже, длинный.

P.S. Мы разместили решение для CMS Битрикс в маркетплэйсе: Интеграция с Ozon.ru - товары, цены, остатки