Перейти к содержанию
kon

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

По поводу поддержания актуальности. Модуль экспорт/импорт, так же умеет изменять количесто товаров на складе.

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

Ребят я не особо в "Р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-файла для дальнейшего скармливания в опенкарт через модуль импорт/экспорт, поэтому получилось немного не в тему. Пардон.В вашем скрипте, как я понял, свободная форма для ввода товаров и категорий, что, несомненно, даже лучче. С понедельника будем пробывать.

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

Спасибо за ответы буду напрягать человека отвечающего за базу чтоб выдал мне корректный кусок...

Поделиться сообщением


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

Kon Погляди плз а вот такого формата база подойдет под твои скрипты? Ато модуль импорта експорта чет у меня не заработал надеюсь пока на твое решение.....

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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