Хорошо, как мне сделать импорт каталога, доступ к api которого осуществляется через Soap?
Любой импорт, это конвертация данных:
1. Взяли (поставщик предоставляет информацию в формате SOAP).
2. Обработали и сохранили (в базу данных CS-Cart)
Насколько я понимаю, с п. 1 у вас проблем нет, да и помочь я тут вам не смогу, так как всё зависит от поставщика данных и его нужно спрашивать.
Вот п.2 имеет несколько решений, есть три способа сохранить данные в CS-Cart
1. RESTful API . Ваш удалённый сервер готовит данные отправляет запросы в CS-Cart API для создания и изменения товаров.
2. Использование стандартных функций. Вы на стороне CS-Cart делаете контроллер, который будет подключаться к вашему SOAP источнику, подготавливает данные и сохраняет их в базу используя стандартные функции (например, fn_update_product и fn_import_images).
3. Велосипед. Пишем какой то скрипт, который как то получает данные и пишет их напрямую в MySQL базу, без использования стандартных функций.
Я считаю, что самый быстрый и надёжный вариант - п. 2 . В CS-Cart есть импорт в формате CSV . Который читает CSV данные - строки, обрабатывает их и сохраняет в базу. Все функции уже готовы (создание товара, добавление изображений, создание категории и т.д.)
Посмотрите как работает импорт в формате CSV, посмотрите как он добавляет изображения товарам, например.
Я считаю, что если кто то уже сделал импорт изображений, то зачем проходить этот путь ещё раз? Зачем пытаться понять куда писать в базу, куда сохранять картинки, будет ли это работать на двух витринах, не отвалится ли после обновления. КОгда можно просто использовать функцию:
function fn_import_images($prefix, $image_file, $detailed_file, $position, $type, $object_id, $object)
Тоже самое и с характеристиками, в CS-Cart уже есть импорт характеристик, зачем изобретать свой, если можно посмотреть как работает стандартный и подсунуть в него свои данные.