Работа! Настроить загрузку товаров по фид

Тема в разделе "Поиск исполнителей", создана пользователем SERG2022, 3 июн 2022.

  1. SERG2022

    SERG2022 Новичок

    Сообщения:
    1
    Симпатии:
    0
    Тех. задание

    Сделать интеграцию по синхронизации товаров в магазина на 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).
     
  2. Shureg

    Shureg Пользователь

    Сообщения:
    71
    Симпатии:
    16
    Вы так все хорошо знаете.. Чего сами не сделаете?
    Действительно, мелочь же - запихать в память всю БД и весь XML, и ковырять их там скриптом PHP. Зато лишний раз БД не тронем, это святое. Так и появляются кривые говномодули.
    Я вам с ходу предложу вариант проще и лучше. Читаем товар из БД, ищем его в XML, если находим - переписываем как в XML, если не находим - удаляем. Потом прогоняем XML на наличие соответствующих записей в БД, отсутствующие добавляем.
    Можно улучшить схему, да и XML лучше сначала во временную таблицу БД запихать, но даже этот простой метод будет на порядок быстрей и менее ресурсоемок, чем ваш
     
    snow76 нравится это.
  3. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    835
    Симпатии:
    94
    SERG2022 нравится это.