Тех. задание Сделать интеграцию по синхронизации товаров в магазина на OpenCart с Custom XML файлом, который нужно забирать раз в 4 часа по заданному url Товар уже находящийся в каталоге нужно синхронизировать с товаром в файле xml, нельзя пересоздавать базу каждый раз заново. 1) Прочитать все товары из базы OpenCart (через API) 2) Прочитать все товары из xml файла 3) Определить, какие товары были удалены из XML, и удалить их из Open Cart 4) Определить, какие товары были добавлены в XML, и добавить их в Open Cart 5) Определить, какие товары были изменены в XML, и изменить их в Open Cart Т.е. необходимо синхронизировать товар по полям (определять изменененные поля) - изображения, цена, название товара, наличие товара (количество) и т.д. Необходимо записывать процесс синхронизации в лог (чтобы видно было какие товары поменялись, удалились, добавились). Ошибочные ситуации также необходимо записывать в лог (неверный формат xml, ошибки в нём же). При серьезных ошибках синхронизации продуктов, отсутствие связи с поставщиком информации для каталога (xml), необходимо нотифицировать об этом владельца магазина (почта/telegram/sms).
Вы так все хорошо знаете.. Чего сами не сделаете? Действительно, мелочь же - запихать в память всю БД и весь XML, и ковырять их там скриптом PHP. Зато лишний раз БД не тронем, это святое. Так и появляются кривые говномодули. Я вам с ходу предложу вариант проще и лучше. Читаем товар из БД, ищем его в XML, если находим - переписываем как в XML, если не находим - удаляем. Потом прогоняем XML на наличие соответствующих записей в БД, отсутствующие добавляем. Можно улучшить схему, да и XML лучше сначала во временную таблицу БД запихать, но даже этот простой метод будет на порядок быстрей и менее ресурсоемок, чем ваш