Обновление цен Ubercart через программу под Windows

Главные вкладки

Аватар пользователя Bonderas Bonderas 23 октября 2014 в 16:58

Добрый день!
Недавно понадобилось обновлять цены на товары на сайте(drupal 6 + ubercart) с ПК. Оказалось, что нет 1С(или аналога, где ведется учет товаров и цен), нет общего прайс-листа, как своего так и поставщиков. Организация работает по данным со своего же сайта(то есть вся информация о цене только там). Редактировать каждый материал(через интерфейс Друпала) клиенту не удобно (проблема с поиском, проблема с очень медленным интернетом). Вести свой прайс лист трудно.
В итоге пришли к следующему(типа ТЗ) нужна программка на ПК, которая:
1. имеет список товаров с сайта(название и цена)(загружаются данные с сайта)
2. можно было делать поиск по товару(я бы добавил артикул, но не стал мудрить)
3. можно исправить цену на товар
4. открыть ноду выбранного товара на редактирование(пользователь на этом пк должен быть залогинен на сайте с правом редактирования материала данного типа)
5. сформировать прайс-лист всей продукции(xls формат)
5.а. формировать прайс-лист с разделением по страницам. Один лист - содержание(меню) категорий товаров(первый уровень словаря таксономии), далее отдельный лист для отдельного типа словаря. Строка в содержании-ссылка на страницу категории внутри файла прайс-листа
6. загрузить прайс-лист на сайт для скачивания
7. сделать фильтр товаров, у которых отсутствует фото товара(реализацию не стали делать, так как на сайте используется фото по умолчанию при отсутствии фото товара)

Получили программку, которая собственно все это делает(кроме пункта 7).
На данный момент ИД словаря товаров прописан в коде программы, но планируется реализовать выбор нужного словаря таксономии(нужен для формирования прайс-листа с разбивкой по группам) в окне программы. Поддерживается вложенность групп количеством 3:
Уровень1
-Уровень2
-Уровень3
-Уровень3
-Уровень2
-Уровень3
-Уровень3
Уровень1
-Уровень2
-Уровень3
-Уровень3
-Уровень2
-Уровень3
-Уровень3
Так же на данном этапе, данные для доступа к ФТП и обращения к БД пока прописаны в коде программы(планируется перенос в отдельный файл для универсальности)
Изменение цены сделано так - формируется список товаров с сайта, и две колонки - текущая цена и новая.. Новая изначально равна текущей. изменяется колонка новая цена по всем необходимым строкам товара, далее нажимается обновить и на сайте обновляются те цены, которые были изменены(текущая не равна новой)
Программа работает под Windows(тестировалась на XP и 7), для формирования прайс-листа требуется установленный MS Excel
Так же, для работы программы, на хостинге заказчика потребовалось поставить настройку разрешения подключения к БД со всех адресов(у клиента даже нет статического IP адреса). Не знаю, везде ли есть такая настройка.
Еще одно замечание, у клиента не используются классы товаров, а группировка в прайс-листе идет по словарю таксономии.
Тестировать на сайте с классами планирую в ближайшее время.
И еще. В БД данные мы обновили, а вот кеш чистить надо руками, или ждать крона.
Программка была заточена под конкретного заказчика, но пока кроме вопроса с классами не вижу проблем использовать в других проектах.
Интересует ли эта программка кого нить? Когда задался вопросом обновления цен на сайте, где то видел вопрос про подобную вещь, но ответа не было и не заострил внимание на этом.
На версиях друпала7 не проверялась. (если там не именились названия полей и таблиц БД для нод, терминов, и уберкарта) то должна работать, если изменились, возможно будет доработка (опять же если это кому нить кроме меня надо)
Описание скрина:
1. синим закрашено название сайта(пока что прописано в коде)
2. зачеркнутые кнопки красным - убираются из программы(так как их функции перенесены в кнопку обновить с учетом галочек) или не будут реализвовываться
3. над списком товаров - поле для поиска
4. галки вверху - для формирования прай-листа в экселе на ПК и для загрузки его на сайт
5.Редактировать на сайте - открывается нода на редактирование в браузере клиента
6. Загрузить на сайт - обновить на сайте цены из таблицы выше

отвечать на вопросы, если такие вообще появяться буду здесь, либо на почту bonderaspСОБАКАmail.ru

ВложениеРазмер
Иконка изображения Обновление цен37.23 КБ

Комментарии

Аватар пользователя Bonderas Bonderas 24 октября 2014 в 10:06

ХулиGUN wrote:
Не понятно только кто мешал сделать удобный интерфейс для всего этого непосредственно на сайте?

качество и скорость интернет соединения. Открытие одной старницы - это уже пытка

VasyOK wrote:
Безусловно это кому-то да пригодится, но
1. Вы не первый кто до этого додумался.
2. Делфи уже мало юзают, так что ваши наработки надо будет перекомпилировывать, если они окажутся полезными и открытыми.
3. Сейчас уже на feeds + views + editable fields + много чего другого
можно забабахать подобное, без внешней программы.

согласен с Вами, но задача стояла отбросить браузер.

Moel
спасибо за комментарий.
3. Это сделано для обновления цен, а не для вбивания товаров новых. в таблице есть название и текущая цена и новая цена.. меняется только новая цена.. сам контент (на данном этапе разработки не трогается). Это делается в самой программе без открытия сайта в браузере
4 пукнт с открытием на редактирование - это дополнительная кнопка для открытия именно на сайте формы редактирования ноды(она не используется). Необходимость редактирования в программе ноды обсуждается еще
5 и 6 пункты. Скорее всего Вы правы,не знал что есть такая возможность
В ваших предложениях есть смысл. Про группы и админов не думал, так как тут один единственный человек, который владелец и он же все остальные сотрудники в одном лице) Нужно было решение по обновлению цен - главная задача.
Через броузер ничего не происходит из этой программы - только кнопка, одна, которая просто есть, но не используется в работе.
Про drumode спасибо, посмотрю что это такое, не сталкивался ранее
Неплохие мысли по поводу функционала программы. Думаю хорошие программисты может и сделают что нить такое. Я как начинающий (и друпал и делфи) сделал что сделал )

Аватар пользователя VasyOK VasyOK 24 октября 2014 в 1:10

Безусловно это кому-то да пригодится, но
1. Вы не первый кто до этого додумался.
2. Делфи уже мало юзают, так что ваши наработки надо будет перекомпилировывать, если они окажутся полезными и открытыми.
3. Сейчас уже на feeds + views + editable fields + много чего другого
можно забабахать подобное, без внешней программы.

Аватар пользователя Moel Moel 24 октября 2014 в 1:44

Это наверно удобно если все товары вносятся руками, т.е. сидят у вас 5 контентщиков и набивают в реальном времени. Но опять же тут соответствующий интерфейс должен быть, настроенный так как удобно тем же контентщикам.
А так не понятно

"Bonderas" wrote:
3. можно исправить цену на товар
4. открыть ноду выбранного товара на редактирование(пользователь на этом пк должен быть залогинен на сайте с правом редактирования материала данного типа)

Это где в браузере открывается или в программе. Если в браузер то смысл....
"Bonderas" wrote:
5. сформировать прайс-лист всей продукции(xls формат)
5.а. формировать прайс-лист с разделением по страницам. Один лист - содержание(меню) категорий товаров(первый уровень словаря таксономии), далее отдельный лист для отдельного типа словаря. Строка в содержании-ссылка на страницу категории внутри файла прайс-листа
6. загрузить прайс-лист на сайт для скачивания

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

Ну можно сюда еще и импорт, экспорт, парсер приплести. А лучше все это дело по ролям разделить. Например у админа один интерфейс, у менегера другой. Админ может назначать менегерам задания и т.д.
Но только смысл это делать на 6ке....
И что то подобное уже есть drumode называется. Работало все очень быстро так как друпал был не причем(отдельный скрипт, работа с базой). Я использовал когда 6ку юзал.
Итого получаем если делать, то делать прогу направленную на контент менеджера. И без всяких перенаправлений в браузер.
Но что то чуется мне на 6ке остаются те, у кого уже все настолько переколбашено что переход будет очень нелегким и все эти фичи уже есть и без вашей проги.

Аватар пользователя Bonderas Bonderas 24 октября 2014 в 11:01

ХулиGUN wrote:
"Bonderas" wrote:
качество и скорость интернет соединения. Открытие одной старницы - это уже пытка

У нас возвращаются времена диалапа?
А что касаемо пытки при открытии страницы - то это уже проблема скорее всего в изгибах рук разработчика и настройки сервера
Судя по скрину нужно получать список нод (1 запрос к бд с 1 джойном по цене), вносить изменения и сохранять(1-2 запроса к бд: 1 на смену тайтла, второй на смену цены)
Единственный профит, если часто нужно делать экспорт прайса в эксель, а товаров просто дохерища. В таком случае да, генерация на стороне сервера + скачивание гораздо менее продуктивно, чем генерация непосредственно на стороне клиента, однако в силу технологий наверняка есть какой нить js, который это запросто сделает на стороне клиента.
В общем мой вердикт, что профит от такого решения весьма сомнительный, тем более под убер...

К сожалению в некоторых частях нашей необъятной страны, да что уж говорить, в городе, есть места, где 4Г соединение со скоростью подобной диалапу - реальность.
Тайтл не меняется. только запрос на изменение цены.
Скорее всего Вы правы по поводу ненужности этой программки. Сейчас точно не скажу по времени, но примерно - поиск,открытие и сохранение изменения цены(так как сейчас это реализовано на сайте) - примерно 1-2 минуты(зная где искать товар или через поиск на сайте) на 1 товар.
Через программу на том же рабочем месте - около 1000 товаров.
1. загрузка списка товаров(всех)15-20 сек
2. поиск нужного товара - 3-5 сек
3. изменение цены - 3 сек
4. обновление на сайте - от 2 сек (в зависимости от кол-во измененных цен на товары)
итого 20+5+3+2 = 30сек -
при изменении цен на 10 товаров получаем:
через браузер - 10-20 мин
через прогу - 20с+(5+3)*10+20с=2мин

Аватар пользователя Bonderas Bonderas 24 октября 2014 в 12:28

я не претендую на восхищенные комменты )) Ваша критика очень интересна
Выложил собственно для следующих целей:
1. узнать нужно это кому нить или нет
2. узнать предложения по функционалу (опять же если кому то нужно)

как то так..
когда ко мне обратились с такой проблемой/задачей, я решил реализовать её таким способом, которым умею (я не гуру программирования)
Из Вашего поста по реализации такого на сайте - я к сожалению ничего не понял (кроме кофе и порно). Это речь идет о модуле(или связке модулей) или это надо разрабатывать самому? на связку модулей не похоже (меня бы это устроило, и я наверно не заморачивался бы с этим "велосипедом").

Сайт и прогу делал я сам. Это один из первых(я бы сказал второй сайт за который я вообще взялся) на нём собственно и учится начал, и делался он не на платной основе а для помощи другу в начале его бизнеса.
Если не секрет, то что вы описали(функционал на сайте - лень работы) - если бы Вы делали это, на сайте под заказ - какая сумма бы получилось? просто порядок цен интересен