Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Загрузка заказов В opencart из структурированного СSV напрямую в БД через промежуточную таблицу.


Рекомендованные сообщения

Есть CSV файл определенной структуры, в нем имеются заказы, необходимо загрузить эти заказы в Opencart, напрямую в БД, через промежуточную таблицу (для сохранения истории загрузки и всех данных из CSV).

 

Промежуточная таблица может иметь любую структуру, главное обеспечить сохранность значений и их обновление при повторной загрузке, т.е. модуль должен искать по ключевому полю строку и обновлять ее полученными данными (безусловно, т.е. все), но не создавать заказ при обновлении. 

 

Сам файл в исходнике имеет XLS формат, но я думаю лучше будет его перевести в СSV средствами Win, чем обрабатывать его. 

 

Код должен быть открыт, интерфейс не нужен, кроме выбора файла на ПК, задачу предполагается разбить на этапы, описание первоочередного из них ниже, полный перечень могу предоставить в случае необходимости.  

 

Список полей в CSV файле, пояснения и действие необходимое с полем при создании заказа в opencart.

  • Если Opencart требует доп поля не описанные ниже, то необходимо заполнить их значениями по умолчанию (статус заказа к примеру)

 

  1. "Номер заказа" - внести в таблицу orders в созданное (не штатное) поле, а так же добавить в комментарий создаваемого заказа, сам номер присвоить по порядку(orders_id)
  2. "Время создания заказа" - присвоить создаваемому заказу
  3. "Стоимость товаров" = стоимость всех товаров. Необходимо вычислить и записать в итоги заказа должно быть равным сумме из источника, если не равно поправить стоимость самого дорого товара или всех пропорционально, в п.7 пояснения.  
  4. "Стоимость доставки" - Присвоить определенной службе доставки (будет создана для этих целей)
  5. "Сумма заказа"  = п.3+п.4-п.6
  6. "Скидка магазина"  = присвоить скидке (будет создана для этих целей)
  7. "Артикул" = многостроковое поле с перечнем ID (совпадают с полем product_id в БД Opencart) и кол-вом - создаем в заказе товары по этому полю, но у создаваемых необходимо умножить кол-во на поле из таблицы product, цену тоже взять из таблицы product (не стандартные поля).
  8. "Примечания к заказу" - перенести в комментарий. 
  9. "Имя получателя" - ФИО но бывает, что вместо ФИО лишь И, или ФИ, итог: разбить на слова: если одно то в "first_name" если два то в "first_name" и "second_name" если три, то Ф в "second_name", ИО в "first_name"
  10. Страна - Россия(по умолчанию) 
  11. Регион - перенести как есть
  12. Город - перенести как есть
  13. Адрес - перенести как есть
  14. Индекс - оставить как есть
  15. Телефон - оставить как есть

 

Если есть вопросы задавайте. 

 

 

Ссылка на комментарий
Поделиться на других сайтах


26.02.2022 в 18:42, nikifalex сказал:

у вас слишком своеобразное представление об опенкарте и его работе из-за чего вы словите массу побочных проблем если кто-то реализует ваше ТЗ четко по вашим пунктам. Мой совет тому кто возьмется делать - делайте, сдавайте по ТЗ и отказывайтесь сразу от дальнейшей поддержки. Пусть сами разгребают.

 

Ну так скажите как правильно. В чем могут  быть проблемы, я не против корректировки ТЗ, а опенкарт представляю так как умею, больше с точки зрения пользователя. 

У меня задача загружать в опенкарт заказы из файла, номенклатура соответствует только по id. Покупателей в БД опенкарта в большинстве своем нет. 

Изменено пользователем kapel
Ссылка на комментарий
Поделиться на других сайтах


26.02.2022 в 18:29, Shureg сказал:

Мда... Ничего не понял. Не моё, точно.

Необходимо создать заказы в opencart из файла сsv, выше список полей в этом файле. Описал так как представлял работу opencart с заказом, видимо представлял не верно. Направьте на путь истинный, что нужно предоставить, что бы получить желаемое ну или хотя бы совет, т.е. созданный заказ с позициями и наименованием их из БД опенкарт

Ссылка на комментарий
Поделиться на других сайтах


Модулей для выгрузки заказов из опенкарт в CSV не мало (google for that).

Есть и бесплатные.

Скачайте/установите, посмотрите что да как.

link

Ссылка на комментарий
Поделиться на других сайтах

Я понял.

Это я написал к тому, что бы человек слил себе экспорт, посмотрел и пере-осознал своё ТЗ.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

26.02.2022 в 20:42, Tom сказал:

Я понял.

Это я написал к тому, что бы человек слил себе экспорт, посмотрел и пере-осознал своё ТЗ.

Да что ж вы так, вокруг да около, скажите прямо в чем проблема.

 

Сливал я заказы и не раз, да в них присутствуют множество полей про которые я не писал в тз выше, но я и не стремился к этому, а лишь описал то, что имеется и как это необходимо преобразовать и куда.

Если необходимо описать целиком, все таблицы я опишу, но вместо этого я указал, что необходимо дозаполнить все которые требуются, значениями по умолчанию, т.е. это и статус заказа, и методы оплаты и группа покупателя и IP и почту сгенерировать и т.д., т.е. все что необходимо для корректной работы.  

 

В тз нашел ошибку в части региона, его придется выбирать из уже созданных т.к. регион в источнике может быть указан криво есть индекс, можно получить и город и регион по нему, через тот же dadata api.

 

Опций у товаров нет. Покупателей регистрировать не надо. Созданный заказ не будет редактироваться, единственное, что с ним будет происходить, это смена статуса. 

Ссылка на комментарий
Поделиться на других сайтах


В 27.02.2022 в 02:19, kapel сказал:

Опций у товаров нет. Покупателей регистрировать не надо. Созданный заказ не будет редактироваться, единственное, что с ним будет происходить, это смена статуса. 

Если еще и товары вычитать со склада не надо, то к заказам вашу задачу можно отнести весьма условно. Собственно, вам и опенкарт то нужен постольку поскольку. Не проще будет наоборот, из ОС данные по id и ценам товара получать, и в эксэле с ними развлекаться?

Ссылка на комментарий
Поделиться на других сайтах


26.02.2022 в 22:35, Shureg сказал:

Если еще и товары вычитать со склада не надо, то к заказам вашу задачу можно отнести весьма условно. Собственно, вам и опенкарт то нужен постольку поскольку. Не проще будет наоборот, из ОС данные по id и ценам товара получать, и в эксэле с ними развлекаться?

С остатками понял проблему, в данный момент они вычитаются, но лишь условно, т.е. фактически остатки используются для включения, выключения товара 0 - нет в продаже, больше 0 - доступен к заказу, как такового учета по ним нет и кол-ва введены с запасом. Их точность не важна. Истинные цели сего мероприятия расскажу исполнителю, с экселем не проще. 

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.