Есть CSV файл определенной структуры, в нем имеются заказы, необходимо загрузить эти заказы в Opencart, напрямую в БД, через промежуточную таблицу (для сохранения истории загрузки и всех данных из CSV).
Промежуточная таблица может иметь любую структуру, главное обеспечить сохранность значений и их обновление при повторной загрузке, т.е. модуль должен искать по ключевому полю строку и обновлять ее полученными данными (безусловно, т.е. все), но не создавать заказ при обновлении.
Сам файл в исходнике имеет XLS формат, но я думаю лучше будет его перевести в СSV средствами Win, чем обрабатывать его.
Код должен быть открыт, интерфейс не нужен, кроме выбора файла на ПК, задачу предполагается разбить на этапы, описание первоочередного из них ниже, полный перечень могу предоставить в случае необходимости.
Список полей в CSV файле, пояснения и действие необходимое с полем при создании заказа в opencart.
Если Opencart требует доп поля не описанные ниже, то необходимо заполнить их значениями по умолчанию (статус заказа к примеру)
"Номер заказа" - внести в таблицу orders в созданное (не штатное) поле, а так же добавить в комментарий создаваемого заказа, сам номер присвоить по порядку(orders_id)
"Время создания заказа" - присвоить создаваемому заказу
"Стоимость товаров" = стоимость всех товаров. Необходимо вычислить и записать в итоги заказа должно быть равным сумме из источника, если не равно поправить стоимость самого дорого товара или всех пропорционально, в п.7 пояснения.
"Стоимость доставки" - Присвоить определенной службе доставки (будет создана для этих целей)
"Сумма заказа" = п.3+п.4-п.6
"Скидка магазина" = присвоить скидке (будет создана для этих целей)
"Артикул" = многостроковое поле с перечнем ID (совпадают с полем product_id в БД Opencart) и кол-вом - создаем в заказе товары по этому полю, но у создаваемых необходимо умножить кол-во на поле из таблицы product, цену тоже взять из таблицы product (не стандартные поля).
"Примечания к заказу" - перенести в комментарий.
"Имя получателя" - ФИО но бывает, что вместо ФИО лишь И, или ФИ, итог: разбить на слова: если одно то в "first_name" если два то в "first_name" и "second_name" если три, то Ф в "second_name", ИО в "first_name"
Страна - Россия(по умолчанию)
Регион - перенести как есть
Город - перенести как есть
Адрес - перенести как есть
Индекс - оставить как есть
Телефон - оставить как есть
Если есть вопросы задавайте.