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

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

Аватар пользователя neochief neochief 12 ноября 2009 в 12:48

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

Комментарии

Аватар пользователя gorr gorr 12 ноября 2009 в 13:40

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

Аватар пользователя gorr gorr 12 ноября 2009 в 13:50

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

Аватар пользователя glu2006 glu2006 12 ноября 2009 в 14:17

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

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

Аватар пользователя glu2006 glu2006 12 ноября 2009 в 14:41

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

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

Аватар пользователя glu2006 glu2006 12 ноября 2009 в 17:21

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

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

Аватар пользователя Mojo Mojo 13 ноября 2009 в 0:33

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

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

Аватар пользователя glu2006 glu2006 13 ноября 2009 в 0:48

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

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

Аватар пользователя Mojo Mojo 13 ноября 2009 в 3:32

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

Аватар пользователя F10 F10 13 ноября 2009 в 22:13

"glu2006" wrote:
Может когда-то и настанут времена, когда магазины на убере можно будет клепать как на OS-commerce но пока ситуация в корне иная :)
- в точку. Привязка товара не к артиклу, а к номеру ноды(отсюда косяки с многоязычностью). Плохо с юзабельностью, особенно для админов магазина. Да вообще много не доработаного, но для Друпала пока самое хорошее решение для поднятия магазина.

Аватар пользователя ihtiandr ihtiandr 14 ноября 2009 в 9:28

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

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 14 ноября 2009 в 17:02

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

Аватар пользователя glu2006 glu2006 14 ноября 2009 в 17:31

<a href="mailto:Mr.Alinaki@drupal.org">Mr.Alinaki@drupal.org</a> wrote:
У парня талант презентации проводить, я получил огромное удовольствие от просмотра, чего давненько за собой не замечал. И информации просто огромное количество, спасибо!

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

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 15 ноября 2009 в 20:02

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

Аватар пользователя Anton L. Safin Anton L. Safin 3 декабря 2009 в 7:37

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

Аватар пользователя ilya-stromberg ilya-stromberg 20 января 2010 в 0:15

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

Аватар пользователя glu2006 glu2006 20 января 2010 в 11:32

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

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

Аватар пользователя gorr gorr 20 января 2010 в 18:01

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

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

Аватар пользователя glu2006 glu2006 20 января 2010 в 22:10

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

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

Аватар пользователя glu2006 glu2006 24 января 2010 в 22:33

MDinc wrote:
Ну так крон есть для этого

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

Аватар пользователя Dan Dan 25 января 2010 в 9:34

"glu2006" wrote:
Сложность однако есть в том, что надо к примеру файл в 10метров распарсить

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 2 февраля 2010 в 17:15

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

Аватар пользователя glu2006 glu2006 2 февраля 2010 в 17:37

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

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

Аватар пользователя Dan Dan 3 февраля 2010 в 1:05

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

Аватар пользователя MAMONT MAMONT 24 февраля 2010 в 22:51

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

Аватар пользователя glu2006 glu2006 25 февраля 2010 в 0:11

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

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

Аватар пользователя F10 F10 25 февраля 2010 в 11:01

"glu2006" wrote:
И даже из XML?

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

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

Аватар пользователя glu2006 glu2006 25 февраля 2010 в 12:02

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

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

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

Аватар пользователя F10 F10 25 февраля 2010 в 14:49

"glu2006" wrote:
(четкая связь nid -> id товара в сторонней системе).

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

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

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

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

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

Аватар пользователя glu2006 glu2006 25 февраля 2010 в 15:38

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

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

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

Аватар пользователя F10 F10 25 февраля 2010 в 15:50

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

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

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

Аватар пользователя glu2006 glu2006 25 февраля 2010 в 17:10

F10 wrote:

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

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