Реальный опыт разработки интернет-магазина

Аватар пользователя neochief

Встречайте новое видео доклада Юрия Глушкова о принципах разработки интернет-магазина на Ubercart, и снова спасибо нашему видео-партнеру «Николаевскому курьеру» и Александру Митасову лично.

Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя News
News 8 лет назад

Юрий молоток)
На хабре поддержал.

Аватар пользователя glu2006
glu2006 8 лет назад

Большое спасибо, как будто опять побывал на camp :).

Аватар пользователя gorr
gorr 8 лет назад

Так вот он какой, северный олень)))
dataimport - отличная разработка, когда появится на друпал.орг будем писать плагины...
И это... спасибо!

Аватар пользователя gorr
gorr 8 лет назад

Также интересно было услышать про category, смотрел его только под 5-ку, не понравилось - тяжеловат. Теперь думаю под 6-ку гляну снова. И сразу вопрос к докладчику - а при использовании category придется отказаться от такой плюшки, как hierarchical select или нет?

Аватар пользователя glu2006
glu2006 8 лет назад
gorr написал:
И сразу вопрос к докладчику - а при использовании category придется отказаться от такой плюшки, как hierarchical select или нет?

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

Аватар пользователя sadmin
sadmin 8 лет назад

Интересный материал. Поиску от Гугл на друпал.ру мешает, но ради содержимого можно и потерпеть :)

Аватар пользователя Mitas
Mitas 8 лет назад

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

Аватар пользователя glu2006
glu2006 8 лет назад
Mitas написал:
Доклад очень здоровский. Я из него всего 3 минуты вырезал. Спасибо.

Вам спасибо, что тратите время на обработку наших высказываний и рассказываний и делаете их достоянием общественности, на кемпе услышало человек 60, а так услышит и увидит гораздо больше :).

Аватар пользователя Ромка
Ромка 8 лет назад

Отличный доклад и монтаж видео!

Аватар пользователя GogA
GogA 8 лет назад

Очень актуальный доклад! Благодарю авторов!

Аватар пользователя Valeratal
Valeratal 8 лет назад

спасибо, дома посмотрю

Аватар пользователя yurgon
yurgon 8 лет назад

отличный доклад, узнал много нового, ещё бы кто заделился модулем оплаты Приватбанка под Д6...

Аватар пользователя glu2006
glu2006 8 лет назад
yurgon написал:
отличный доклад, узнал много нового, ещё бы кто заделился модулем оплаты Приватбанка под Д6..

Координаты в профиле, пишите, он с 5-ки портирован уже, но еще не обкатан.

Аватар пользователя Mojo
Mojo 8 лет назад

Молодца, только имхо в докладе слишком много информации про вспомогательные php-скрипты, которые напрямую к Друпалу не относятся.

Создается впечатление, что просто так магазин на Ubercart не сделать - тут надо кодить, там дописать, здесь переделать и т.д.))

Аватар пользователя glu2006
glu2006 8 лет назад
Mojo написал:
Молодца, только имхо в докладе слишком много информации про вспомогательные php-скрипты, которые напрямую к Друпалу не относятся.
Создается впечатление, что просто так магазин на Ubercart не сделать - тут надо кодить, там дописать, здесь переделать и т.д.))

А Вы и вправду считаете что хороший, полноценный магазин на уберкарте можно сделать ничего не дописывая??? ;)
Ведь на самом деле надо и приходится пилить и кодить для получения действительно качественного и работающего на все 100% продукта.
Может когда-то и настанут времена, когда магазины на убере можно будет клепать как на OS-commerce но пока ситуация в корне иная :)

Аватар пользователя Mojo
Mojo 8 лет назад

Ну, скажем так, типовой магазин можно сделать практически из коробки. А если нужны какие-то нестандартные решения, то тут, конечно, надо кодить.

Аватар пользователя F10
F10 8 лет назад
glu2006 написал:
Может когда-то и настанут времена, когда магазины на убере можно будет клепать как на OS-commerce но пока ситуация в корне иная :)

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

Аватар пользователя ihtiandr
ihtiandr 8 лет назад

Большое спасибо за видео. В планах - импорт в Друпал большой БД. В данном докладе много полезностей, то что доктор прописал. ))

Аватар пользователя Mr.Alinaki@drupal.org
Mr.Alinaki@drup... 8 лет назад

У парня талант презентации проводить, я получил огромное удовольствие от просмотра, чего давненько за собой не замечал. И информации просто огромное количество, спасибо!

Аватар пользователя glu2006
glu2006 8 лет назад
Mr.Alinaki@drupal.org написал:
У парня талант презентации проводить, я получил огромное удовольствие от просмотра, чего давненько за собой не замечал. И информации просто огромное количество, спасибо!

Спасибо большое :) это не талант а больше педагогическое образование сказывается :).

Аватар пользователя Mr.Alinaki@drupal.org
Mr.Alinaki@drup... 8 лет назад

Кстати, как раз недавно на своём новом проекте реализовал вложение словаря в словарь в чистом Taxonomy. В самом простом его варианте - показал только те значения из дочернего словаря по каждому значению из родительского, для которых существуют материалы и построил навигацию... О category я как-то даже и не знал, да и вложенность не та. Но на Category надо будет посмотреть повнимательнее.

Аватар пользователя Anton L. Safin
Anton L. Safin 8 лет назад

Хорошее пояснение по отличиям taxonomy от category.
Очень интересна тема про dataimport - буду ждать более подробной документации по использованию, потому как применить есть где :)

Аватар пользователя ilya-stromberg
ilya-stromberg 8 лет назад

Очень хорошая статья. Как раз сейчас собираюсь устанавливать интернет-магазин, очень помогла. Первоначально хотел установить OScommerce, вот только недавно узнал про Drupal и решил перейти на него - с моей точки зрения возможностей больше. Вопрос к докладчику: где можно скачать модуль, отвечающий за dataimport - искал на drupal.org и не нашел, наверно просто неправильно искал. Идея с импортом данных действительно очень полезная, обязательно надо подключить, вот только пока не знаю как.

Аватар пользователя glu2006
glu2006 8 лет назад
ilya-stromberg написал:
Очень хорошая статья. Как раз сейчас собираюсь устанавливать интернет-магазин, очень помогла. Первоначально хотел установить OScommerce, вот только недавно узнал про Drupal и решил перейти на него - с моей точки зрения возможностей больше. Вопрос к докладчику: где можно скачать модуль, отвечающий за dataimport - искал на drupal.org и не нашел, наверно просто неправильно искал. Идея с импортом данных действительно очень полезная, обязательно надо подключить, вот только пока не знаю как.

Идея с импортом данных временно заглохла в силу трудности затащить парсинг xml файла в batchAPI а делать иначе это не есть гуд поскольку все начнут натыкаться на процессорное время и кричать что нифига не работает.

Аватар пользователя gorr
gorr 8 лет назад
glu2006 написал:
Идея с импортом данных временно заглохла в силу трудности затащить парсинг xml файла в batchAPI а делать иначе это не есть гуд поскольку все начнут натыкаться на процессорное время и кричать что нифига не работает.

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

Аватар пользователя glu2006
glu2006 8 лет назад
gorr написал:
Я так понял, что проблема в том, что при каждом запросе парсить xml файл приходится. Если так, то может его отпарсить на первом витке работы батчапи и создать временно таблицу в базе, слить туда, а на последнем шаге удалить эту таблицу.

Сложность однако есть в том, что надо к примеру файл в 10метров распарсить (я понимаю что это максимализм), но вот боюсь процессорного времени в 30-60 секунд не хватит в таком случае. а успеть нужно распарсить засериализовать и в бд записать. С категориями и таксономией я так и делал, но там файло мелкое.

Аватар пользователя kukuxa
kukuxa 8 лет назад

Хороший доклад.

Аватар пользователя glu2006
glu2006 8 лет назад
MDinc написал:
Ну так крон есть для этого

Крон не для этого есть :), на кроне batchAPI процессы не работают.
Сделать узкое решение это два пальца об асфальт, надо решить задачу так чтоб максимально удовлетворить страждущий народ а для этого надо придумать как распарсить xml в батч апи поскольку все остальное это не проблема.

Аватар пользователя vgoodvin
vgoodvin 8 лет назад
MDinc написал:
Ну так крон есть для этого

А при чем здесь крон?

Аватар пользователя Dan
Dan 8 лет назад
glu2006 написал:
Сложность однако есть в том, что надо к примеру файл в 10метров распарсить

Для сайтов у которых файлы 10 метров весят, не грех и set_time_limit разрешить и выполнять скрипт хоть час.

Аватар пользователя vgoodvin
vgoodvin 8 лет назад
MDinc написал:
Полный бред как раз с помощью крона это сделать проще простого

А вы бы написали как.

Аватар пользователя Виктор Степаньков ака RxB

Я вот думаю, а XPath никак не поможет? Там аналог скульных лимитов должен быть, парсим десяток записей, сохраняем в переменную последний ID, опять парсим десять, опять сохраняем. И так, потихоньку, всё спарсим

Аватар пользователя glu2006
glu2006 8 лет назад
RxB написал:
Я вот думаю, а XPath никак не поможет? Там аналог скульных лимитов должен быть, парсим десяток записей, сохраняем в переменную последний ID, опять парсим десять, опять сохраняем. И так, потихоньку, всё спарсим

Спасибо большое, поковыряюсь на досуге :) что-то я не обратил на это внимания.

Аватар пользователя kopimi
kopimi 8 лет назад

Эх, хорошо, но - мало! )
Плюсанул на хабре!

Аватар пользователя Dan
Dan 8 лет назад

Да, нужно использовать (SAX) Simple API for XML - он использует мимнимум памяти, т.к. использует событийный метод обработки.

Аватар пользователя MAMONT
MAMONT 8 лет назад

Долгое время держал в закладках эту страницу благодаря dataimport. И вот приспичило по сильному, а его нету))) Значит завтра буду писать свой модуль импорта CSV(XLS) to Ubercard.

Аватар пользователя F10
F10 8 лет назад

 node_import импортит в Ubercart для 6-ки

Аватар пользователя glu2006
glu2006 8 лет назад
F10 написал:
 node_import импортит в Ubercart для 6-ки

И даже из XML?
Весь импорт застопорился просто из-за нехватки времени и денег на его разработку, поскольку его спонсировать никто не хочет.
Поэтому кому финансово интересно поучаствовать, мои контакты в профиле. Там осталось не очень много работы.

Аватар пользователя F10
F10 8 лет назад
glu2006 написал:
И даже из XML?

- нет. Хотя не ручаюсь.
Там сейчас реально сделать обновление товара, по nid на сколько помню.
И есть модуль дополнительный к node import, который добавляет функцию запуска по крону.

glu2006 вам удачи в разработке, модуль который вы задумали действительно нужен многим.
P.S. Как бы не забросали камнями, но может вам сделать его платным, просто цену символическую. ИМХО.

Аватар пользователя glu2006
glu2006 8 лет назад
F10 написал:
- нет. Хотя не ручаюсь.
Там сейчас реально сделать обновление товара, по nid на сколько помню.
И есть модуль дополнительный к node import, который добавляет функцию запуска по крону.

Вот именно что не делает :) модуль нод импорт я постоянно мониторю и недостатков там хоть отбавляй.
1. он не хранит маппинг данных (четкая связь nid -> id товара в сторонней системе).
2. при повторной заливке ноды создаются по новой а не переписываются старые (может уже официально и пофиксили, но не факт)
3. не работает с модулем категори
3а. С таксономией работает только по имени термина что неприемлемо поскольку в большинстве случаев cторонние системы выгружают именно id термина.
4. нельзя обновлять отдельно только цены или только остатки товаров
5. непонятно как работать с атрибутами.
6. не умеет импортить фотографии из архива.
7. и самое главное не работает с XML

ЗЫ. Здоровой и обоснованной критики я не боюсь, на нездоровую попросту стараюсь не реагировать.

Аватар пользователя F10
F10 8 лет назад
glu2006 написал:
(четкая связь nid -> id товара в сторонней системе).

- связи nid и id желательно избежать. В многоязычных сайтах на Ubercart у разных языковых версий одного товара разные nid.

glu2006 написал:
ЗЫ. Здоровой и обоснованной критики я не боюсь, на нездоровую попросту стараюсь не реагировать.

- да не кретиковал я ничего.

MAMONT написал:
Долгое время держал в закладках эту страницу благодаря dataimport. И вот приспичило по сильному, а его нету))) Значит завтра буду писать свой модуль импорта CSV(XLS) to Ubercard.

- вот ему и написал, что может посмотреть пока node_import.
CSV ж в его сообщении есть. Просто забыл вставить его цитату.

Аватар пользователя glu2006
glu2006 8 лет назад
F10 написал:
связи nid и id желательно избежать. В многоязычных сайтах на Ubercart у разных языковых версий одного товара разные nid.

Как раз тут с Вами и поспорю, есть язык по умолчанию т.е. основной язык и для связи сторонней системы и уберкарта жесткое соответствие между nid или sku и id-внешней просто обязательно в противном случае по какому признаку вы будете определять какую ноду обновлять а какую создавать заново, а какую-то вообще удалять? Все остальные связи между нодами различных языковых версий есть в БД друпала и достать их не составляет никакого труда.
Но поддержка многоязычности для dataimport пока вообще не рассматривается, хотя и возможна в теории.

Про критику это я в общем, ни в коем случае именно к Вам это не относится :)

Аватар пользователя F10
F10 8 лет назад
glu2006 написал:
Но поддержка многоязычности для dataimport пока вообще не рассматривается, хотя и возможна в теории.

- здесь вы правы, многоязычность на Ubercart работает через жопу. Корзина добавляет не товар по sku, а по nid. Т.е. если добавить в корзину товар русской версии сайта, при переключении языка сайта на англ, в корзине останется русская версия товара.
Та же проблема с остатками, т.е. если у товара создать версию другого языка, магазин видит уже два товара, если даже артиклы у них одинаковые, и при покупки этого товара, он фактически останется в остатках, только в другой языковой версии.
Непонятно, зачем они ввели артиклы товара, если работают не через них.

Короче мой совет по поводу не привязки к nid можете пропустить мимо ушей.

Аватар пользователя glu2006
glu2006 8 лет назад
F10 написал:

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

Так что все решаемо, вопрос только во времени и средствах.