Как можно сделать общую базу товаров для двух сайтов на Modx?

Здравствуйте!
Хотелось бы услышать мнение экспертов по поводу того, как лучше организовать этот процесс.
Есть два сайта на Modx Revo, оба на разных хостингах и принадлежат одной компании. На сайтах продаются товары металлопроката (арматуры, балки, уголки и тд)

В текущей ситуации цены часто меняются и соответственно встал вопрос, а можно ли как-то упросить процесс обновления цен. Чтобы условно обновили на одном сайте, и они обновились на другом.

Я додумался только до тупого решения. После обновления цен на основном сайте, программно делать post-запрос на условно-созданный update.php на втором сайте, где в теле запроса будет ассоциативный массив артикул-цена (артикулы товаров на обоих сайтах совпадают).

Подскажите, пожалуйста, может есть какое-то решение получше и вообще нормальный ли предложенный мой вариант?
Или соответственно основной вопрос: как сделать общую базу товаров для двух сайтов.
Lori
29 марта 2022, 09:59
modx.pro
242
0

Комментарии: 6

Наумов Алексей
29 марта 2022, 11:58
+1
Да нормальный вариант.
Или на основном сайте сделайте выгрузку в простейший файл (текстовый) в формате «артикул: цена», а со второго по cron раз в час считывайте его да и обновляйте цены.
    Lori
    29 марта 2022, 12:06
    0
    Спасибо большое! Вариант с выгрузкой + cron мне больше нравится!
    Николай Савин
    29 марта 2022, 20:33
    +1
    Обмен между двумя сайтами лучше производить в формате JSON. Это общепринятая система.
    Инициатором обмена может быть как одна, так и другая сторона.
    Варианты, которые вижу я.
    1. Изменение цены одного продукта. В этом случае запускается событие, которое отправляет API запрос на сайт на сайт-приемник. В запросе артикул продукта и цена.
    2. Изменение группы цен на сайте-доноре, в результате какой-то синхронизации со складом, например. В этом случае формируется текстовый файл json формата и посылается уведомление о готовности новых данных, со ссылкой на файл. Сайт-приемник, получив уведомление запускает скрипт обработки json файла
    3. Сайт-приемник, самостоятельно, по расписанию запрашивает сайт-донор. Если товаров не много — то забирает на лету сформированный json Ответ. Если товаров много, то забирает файл, подготовленный заранее.
    4. Если товаров много, то можно пойти дальше. Сайт-приемник первым запросом отправляет уведомление донору и необходимости подготовить свежие данные. Затем через несколько минут (сколько там нужно временим на подготовку файла с ценами), вторым запросом забирает подготовленный файл.

    В целом все крутится вокруг json файла (или массива данных) и нескольких достаточно простых API запросов.
      Lori
      30 марта 2022, 15:59
      0
      Спасибо! Думаю все таки сделаю задачу в cron на вторичном сайте, чтобы он делал запрос по расписанию на какой-нибудь update.php основного сайта, а тот уже пусть выдает ответ в виде json с новыми расценками товаров
        Николай Савин
        30 марта 2022, 16:39
        0
        Рекомендую попробовать ZoomX на сайте-доноре. Компонент отлично справляется с построением API как раз с json ответами, и умеет отдавать сразу файлы, если вдруг вы его будете формировать заранее.
          Lori
          30 марта 2022, 16:43
          0
          Да, читал про данное дополнение и кажись ваш пост был как раз) но время поджимает и мне быстрее написать своими силами, дабы не тратить время на понимание компонента
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6