Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Скрипт экспорта и поддержание актуальности.


kon

Recommended Posts

Есть пара скриптов на перл.Один взаимодействует с системой Автопредприятие8 и формирует файл с информацией о товарах, категориях, производителях, ценах, количествах. Второй, получив каким либо образом этот файл - заливает информацию в опенкарт. Заливает не совсем тупо - проверяет разницу между состоянием опенкарта и текущим состоянием полученным из файла передачи. То есть если в исходной базе переименовалась категория товара, или изменилось название производителя, или удален товар или категория, или изменилась цена товара, то эти изменения будут отображены и в опенкарт.В принципе Автопредприятие8 тут имеет значение постольку поскольку, забор информации тривиален, и источник может быть любой.Вопрос - оно интересно кому? Если интересно - причешу и выложу под GPL v2+.

Надіслати
Поділитися на інших сайтах


К сожалению для корректной работы модуля импорта/экспорта нужны серьезные ресурсы. На личном примере убедился что для импорта файла Excel весом 3 мегабайта необходимо на сервере оперативки в районе 300 Мб. При чем товаров в файле не больше 1500 шт.

Надіслати
Поділитися на інших сайтах


О! Конечно интересно. А если составишь хорошее описание как этим пользоваться вообще зачетно будет :(

ОК. За воскресенье напишу инструкцию для использования, добавлю комментариев в код и выложу.
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Ребят я не особо в "Рearl" да и всякого рода таких делах "Юзверь" я...... Подскажите как и куда нужно всунуть сей скрипт чтоб потом подтягивать данные? или это все через базы непосредственно ручками?

Надіслати
Поділитися на інших сайтах


Боюсь что для просто "Юзверя" это не годится. Это скрипт для синхронизации некоей абстрактной базы с номенклатурой и опенкарта. Причем работа с некоей абстрактной базой - выборка из нее актуальных данных - ложится на ваши плечи. А вообще да - скрипт в результате работает непосредственно с базой mysql минуя php обвязку. Получается быстро, не накладно по ресурсам и поддается автоматизации для поддержания соответствия без человеческого участия.У меня 2800 позиций - заливка занимает секунд 20. Актуализация данных - секунд 5.

Надіслати
Поділитися на інших сайтах


Весьма жаль потому что у меня гдет так же предвидеться около 1500-2000 позиций даже не хочется думать о том чтоб это руками все править.......Ну а все же если не тяжело как-то пошагово описать сам процес и подручные утилитки чтоб запустить эту синхронизацию можна? или все делается втупую с консоли?

Надіслати
Поділитися на інших сайтах


Подручные утилитки это perl и те пару скриптов. А откуда вам нужно вытащить данные? Есть образец? И консоль - она не не тупая - отнюдь.Опять же если в консоли все отлажено и работает - никто не мешает понавешать на это ярлыков разложить красиво на рабочем столе. Или запихать в cron.

Надіслати
Поділитися на інших сайтах


Данные могут быть выгружены либо в ексель файлик либо 1С-овский формат......А по поводу консоли я не говорил что она тупая) Скорее всего обратное) Я имел ввиду что "просто" с консоли.........Дело в том что магазинчек у меня на FreeBSD....и всунуть в крон с помощью умов я смогу....мнеб понять сам принцип работы данного скрипта.По типу откуда он берет и что мне нада положить в каком формате туда чтоб он брал.....

Надіслати
Поділитися на інших сайтах


Выгрузи данные в какой нибудь общепринятый формат, CSV например, выложи куда нибудь и дай линку.

Должно быть три файла - Производители, Категории, Товары. Не забудь описание полей дать.

Крайне важно чтобы не прерывалась логическая связь с исходной базой, то есть каждая запись в CSV файле должна иметь первым аргументом уникальный номер объекта (ID) из родительской - исходной базы.

Структура таблиц Производителей и Товаров понятна. Линейная таблица.

Производители:

^id_производителя^;^Имя_производителя^
Товары:

^id_товара^;^id_производителя_товара^;^id_категории_товара^;^Название^;^Цена^;^Количество^;^Стоимость^;^Примечание^
Все просто.

А вот структура категорий должна иметь вид:

^id_категории^ ; ^Имя_категории^ ; ^id_родительской_категории^ ; ^Примечания к категории^
Именно такая структура используется в opencart

Я сварганю getdata скрипт для этого формата, делов то. Может кому то и пригодится.

То, что магазин на фре крутится - облегчает дело, perl там есть.

Надіслати
Поділитися на інших сайтах


Я че-то не могу вкурить - как первоначальный файл для импорта сформировать средствами РНР ?И вообще можно ли делать этот xls файл чем-то еще кроме как openoffice? Ну не руками же прописыватьвсе товары и атрибты в эти таблички...

Надіслати
Поділитися на інших сайтах


А зачем его формировать средствами php? И самый главный вопрос - что является в вашем случае исходной базой? Нужно отталкиваться от вашей исходной базы и придумать несложный способ импорта ее структуры в какой нибудь открытый (ну не в *.xls же ковыряться) формат. CSV для импорта подходит хорошо. Впрочем как и например DBF файлы firebird-a. Потому что больших проблем для импорта любого объема данных в опенкарт нет. Есть проблема экспорта из ваших хранилищ. Для своего хранилища я скрипт написал и его очень не сложно переделать для любого другого хранилища, которое хотя бы отдаленно смахивает на реляционную базу данных.

Ну не руками же прописыватьвсе товары и атрибты в эти таблички...

Дык ради этого я и затевал всё.
Надіслати
Поділитися на інших сайтах


А зачем его формировать средствами php? И самый главный вопрос - что является в вашем случае исходной базой? Нужно отталкиваться от вашей исходной базы и придумать несложный способ импорта ее структуры в какой нибудь открытый (ну не в *.xls же ковыряться) формат. CSV для импорта подходит хорошо. Впрочем как и например DBF файлы firebird-a. Потому что больших проблем для импорта любого объема данных в опенкарт нет. Есть проблема экспорта из ваших хранилищ. Для своего хранилища я скрипт написал и его очень не сложно переделать для любого другого хранилища, которое хотя бы отдаленно смахивает на реляционную базу данных.

Ну не руками же прописыватьвсе товары и атрибты в эти таблички...

Дык ради этого я и затевал всё.
Собственно дело в том, что счас базы товаров нет, то есть товары есть, но никак не структуированы.И я лазил по форуму в поисках рецепта составления многотабличного xls-файла для дальнейшего скармливания в опенкарт через модуль импорт/экспорт, поэтому получилось немного не в тему. Пардон.В вашем скрипте, как я понял, свободная форма для ввода товаров и категорий, что, несомненно, даже лучче. С понедельника будем пробывать.
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Kon сори малость пропал так и не домучав начатое.... =) Вобщем мне скинули кусок базы из которой нада будет составить списки товаров. И вот пока я отсутсвовал оратор излагавшийся после меня выдал именно то что мне нужно.... Как бы магазин пустой ну там демо товары+демо производители. А мне вот нада с моей базы запиндюрить список товара. И я так понял сей скрипт делает немного иную работу он обновляет то что уже имеется соответсвенно новым цифрам базы? А вбивание товара с нуля пусть даже в одну категорию у меня не как не выдет?

ссылка на базу..... http://dump.ru/file/4688326 чет маловато у вас под вложения всего 250кб

Надіслати
Поділитися на інших сайтах


Посмотрел базу.

Нужно определения полей и которые из них забрать.

FLAG    KOD     ROD     UR      NAME    FULLNAME        ART     CENA1   CENA2   CENA3   MINPROD SHTRIH
Потому что, например опенкарт не предусматривает три цены на товар.

так же в примере NAME=FULLNAME вроде везде.

Так же нет наименования категорий и производителей.

Почитайте тред, я писал требования к входным файлам. В идеале нужно три таблицы.

Но вообще это годный файл товара и из него можно сформировать наполнения для категории.

Update.

Ан, нет категории тут есть оказывается.

Это кто же такой умный, что флаги русскими буквами сделал?

Update.

Распарсил формат.

Осталась непонятка с ценами, названиями, и что такое UR?

Можно уже заливать это в магазин запросто, но это же будет длиннющая портянка в 244 категории!! Как люди ориентироваться будут?

И что за программка такие данные выплевывает?

Надіслати
Поділитися на інших сайтах


Ответ очевиден 1С =)))))) Из трех цен нужна ток третья и та потом будет вручную регулироваться. По поводу категорий я вот думаю их нада будет объединять как-то. Потому как например идет товар....1)удочки после пруты для спинингов и оно уже их в разные категории делит. А проще былоб наверн по производителям. Я вот что хотел узнать если например все залить в одну категорию а после я создам нужные яж смогу с этой первой общей переводить в новые созданные вручную? Кстате вчера рылся на офф сайте ОпенКарта и нарыл там модуль импорта-експорта под версию 1.4.7-1.4.8b http://www.opencart.com/index.php?route=extension/extension/info&extension_id=17&path=8 По ходу модуль весьма интересен но я еще пока его не разобрал что и как.

З.Ы. И былоб весьма актуально видеть этот модуль в первоначальной сборке опенкарта думаю этот модуль как не где нужен именно в веб магазинаг) Да и всякого рода модули подходящие под Русскоязычный сегмент нада былоб стырить на главную в роздел файлов ато как-то у нас тут пустовато)

Надіслати
Поділитися на інших сайтах


В столбце KOD по отношению к товару - не уникальные, да и вообще абы как написанный индексы. Вообще строки смахивающие на какой то артикул.Можно это залить один раз, но целостность поддерживать не получится.Нужно чтобы исходные данные имели столбец с уникальным индексом товара.

Надіслати
Поділитися на інших сайтах


Я тут намылился приобрести 1С:Предприниматель на днях.Так что интеграция с 1С будет.Пойду погляжу чего за кусок.update.Кусок поглядел. Плохо что он в екселе - парсить ексель нет никакого желания. В этом смыле DBF лучше.Хорошо что в первом столбце что то похожее на индекс. Вопрос, это точно индекс товара или просто автонумерация строк при выводе из 1c в ексель?Плохо что нет категорий.

Надіслати
Поділитися на інших сайтах


Да понимаешь в этом и суть что товар который будет продаваться в моем магазине будет ити из канторы моего друга а он так себе юзер 1С..... Посему и получается что допросится у него толковой базы выборки с категориями не выходит = Ну ты знаешь коль ты говорить что будешь делать интеграцию из 1С и это будет в период месяц полтора два я могу подождать) Поскольку у меня в планах чтоб магазин стартанул гдет к новому году посему время пока ждет....

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.