Программа рассчитана на обычный хостинг, а не на выделенный сервер. Всё, что ниже, проверяет установщик на первом шаге, а потом то же самое всегда доступно в «Настройки → Диагностика».
PHP
Версия 7.4 или новее. Код проверен на 7.4 и на ветке 8.x.
Обязательные расширения:
pdo_mysql— через него программа ходит и в свою базу, и в базу магазина;gd— картинки товаров: изменение размера и водяной знак;mbstring— тексты описаний: длина, регистр, обрезка;xml— разбор XML- и YML-прайсов.
Необязательные, но полезные:
zip— без него не читаются прайсы XLSX. Пока его нет, поставщика можно загружать в CSV или XML;iconv— нужен тем поставщикам, которые отдают прайс в windows-1251; без него в названиях будут кракозябры.
curl не нужен: прайсы качаются через сокеты.
Лимиты
Память — главное ограничение, и задаёт его хостинг, а не программа. Прайс разбирается в памяти целиком, и на разбор уходит примерно втрое больше, чем весит файл: при 128 МБ это прайс тысяч на тридцать позиций, при 256 МБ — вдвое больше. Excel дороже всех, книга читается целиком; XML и CSV заметно дешевле.
Два предупреждения для больших прайсов. У разборщика XML есть свой потолок около 10 МБ на файл — он снимается отдельно, при настройке поставщика. И на хостингах с CloudLinux память считают по реально занятой процессом, а она в разы больше той, которую показывает PHP, — там потолок ниже расчётного.
Время на запрос узким местом обычно не бывает: очередь разбирается порциями, и если прогон в лимиты не укладывается, размер порции уменьшается в общих настройках.
База и магазин
Нужна база MySQL — своя или та же, что у магазина, и доступ к базе магазина для записи товаров. Отдельный пользователь базы не обязателен.
Cron
Одно задание планировщика, чтобы обновление шло само. Не обязательно: всё то же самое запускается из браузера кнопкой.