ermouth: (Default)
[personal profile] ermouth

Браза 2dostudio попросил сделать ему инет-версию оффлайновой сети зоомагазинов местных.

Получился zoo29.ru (клик на первую картинку – в магазин ):

image

Там всё суперудобно, можно сделать заказ без регистрации и вообще всё просто летает. Пока это бета – скажем, корзина не запоминается между сеансами, кое-где тексты неадеватные и картинки не очень. Поиска пока нет – но будет.

Заказывать уже можно, но осторожно. Да, Володя?

Ниже -- ещё скриншотеги и как делалось.

image

image

image

Вводные были примерно такие:

  • Есть склад в 1С, его надо синхронизировать со онлайн-стоком, скажем, ежедневно
  • Всё должно быть быстро, красиво и удобно

Сначала я подумал в сторону 1С-Битрикс, даже попробовал поковырять демо… Потом проанализировал базу. И вышло, что не перелопачивая структуру базы сделать на Битриксе ничего не получится.

И даже перелопатив базу, всё равно будет грустно, и вот почему.

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

Есть ещё момент, это уже 1С-ное в чистом виде. Довольно трудно сделать так, чтобы товар одновременно принадлежал двум категориям – скажем, одна и та-же клетка подходит и для птиц, и для грызунов.

Короче, на Битрикс я плюнул, он кста ещё и чудовищно медленный.

Пришлось написать парсер, который разбивает 1С-ную базу на категории, группирует одинаковые товары с разной развесовкой и маркирует все товары тэгами (Кошки, Собаки, Котята, Корма, Здоровье, Гигиена и тп), ресэмплит картинки, а потом выгружает всё это на сервер. 37 килобайт яваскрипта.

В процессе парса 1C-ного XML (руки бы поотрывал за кириллические тэги) выяснилось, что после группировок и обезвоживания объём баз сокращается примерно в 60 раз. Это означает, что можно сразу, при открытии какого-то раздела сайта (Кошки там или собаки), загружать всю базу товаров для этого животного – несколько сотен наименований спокойно укладываются в 100 Кб. А уже загруженную базу фильтровать по тэгам.

Такой подход позволяет работать зоомагазину очень, очень, ОЧЕНЬ быстро. Совершенно кста неожиданный для меня результат – я полагал сначала делать всё по классической схеме.

Ну и ещё из интересного. При обкатке выснилось, что в описаниях товаров и заголовках есть длинные слова, которые рвут вёрстку. Так вот, я написал кусочек кода, который расставляет в длинных словах переносы. Длина кусочка кода – 7 строк ) Честно.

Плюс в зависимости от длины описания и заголовка карточки товаров верстаются немного по-разному.

Ругайте )

PS. Да, я знаю, что у меня очень узнаваемый стиль.

Date: 2011-01-09 01:46 am (UTC)
From: [identity profile] 802-11.livejournal.com
про дизаен и юзабилити рацпред
можно категории животных отрисовать иконками-кавайками в стиле лого, и расставить сеткой, удобнее станет навигация и первым юзерам (а, насколько я понимаю, существенная часть ЦА это virgin юзеры) легче будет разбираться в категориях. если тебе лень это делать, могу скетч набросать). текнологически изменения потребуются минимальные.

Date: 2011-01-09 01:49 am (UTC)
From: [identity profile] 802-11.livejournal.com
в остальном (самое важное забыла упомянуть) ты нереально крут, как обычно.

Date: 2011-01-09 01:54 am (UTC)
From: [identity profile] ermouth.livejournal.com
спасибо )

не уловил твою идею, из скетча наверное и правда будет понятнее )

Date: 2011-01-09 09:36 am (UTC)
From: [identity profile] 802-11.livejournal.com
вот так

Image

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

Date: 2011-01-09 09:55 am (UTC)
From: [identity profile] ermouth.livejournal.com
ааа, да ) мне просто был лень, фотки быстрее.

Date: 2011-01-15 04:42 am (UTC)
From: [identity profile] ktototam-lj.livejournal.com
мне с обычными фотками кажется живее и приятнее глазу. и в том, что нет привязки итемов по сетке -- тоже свой шарм.

Date: 2011-01-09 09:55 am (UTC)
From: [identity profile] 802-11.livejournal.com
свистни, если решишь внедрить, я отрисую их вектором :>

Date: 2011-01-09 02:44 am (UTC)
From: [identity profile] http://users.livejournal.com/_mu/
симпатично.
бросилось в глаза:
- при эмуляции переходов по страницами яваскриптом неплохо бы писать это в хистори браузера (чтобы кнопка "назад" работала, например)
- в иетестере, особенно в режиме эмуляции ие6 как то все мягко говоря разъезжается
- комбинация контролов +-х (в корзине) не самая понятная
на битриксе кстати упомянутая проблема с разной весовкой товаров решается не сложнее выбранного вами пути, но свой парсер (и вообще все свое) — более спортивный вариант, с т.з. разработчика конечно =)

Date: 2011-01-09 02:59 am (UTC)
From: [identity profile] ermouth.livejournal.com
Под ие6 неспешно допилим )

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

Базу переделывать нереально.

Date: 2011-01-09 03:36 am (UTC)
From: [identity profile] http://users.livejournal.com/_mu/
Да так же по-сути, парсить импортируемый каталог, использовать свойства товаров ну и дорабатывать модуль каталога товаров. Не сказать что просто, но мы же сравниваем с "велосипедом снуля"?

Интересно, с учетом трансферинга товаров из каталога "удобного для учета" в "каталог удобный покупателям" выгрузку заказов (и их статусов) в 1С как планируете делать?

Date: 2011-01-09 09:59 am (UTC)
From: [identity profile] ermouth.livejournal.com
а зачем их обратно в 1С выгружать, я не пойму?

Date: 2011-01-10 06:39 pm (UTC)
From: [identity profile] http://users.livejournal.com/_mu/
Выгружать заказы в 1с? Для того чтобы формировать документы продаж, например. Но для простенького магазина это все не шибко нужно, конечно.

Date: 2011-01-10 10:59 pm (UTC)
From: [identity profile] ermouth.livejournal.com
а, это несложно. внутренний 1С-ный id товара при всех этих пертурбациях не теряется, его достаточно.

Date: 2011-01-09 04:24 am (UTC)
From: [identity profile] rezkiy.livejournal.com
>>трудно сделать так, чтобы товар одновременно принадлежал двум категориям

Ты наверное хотел сказать "группам".

Потому что у тебя товар в дереве. А надо использовать свойства и категории. Делается с помощью регистра сведений и ПВХ. Ну это если я ничего не забыл.

Date: 2011-01-09 10:04 am (UTC)
From: [identity profile] ermouth.livejournal.com
да, конечно я хотел сказать "группам".

у меня не получилось выгрузить кастомные характеристики, это раз. интерфейс внутри 1С для их задания предполагает огромное к-во лишних кликов, это два.

Date: 2011-01-10 01:55 am (UTC)
From: [identity profile] rezkiy.livejournal.com
Ты чем выгружаешь?

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

Date: 2011-01-10 02:23 am (UTC)
From: [identity profile] ermouth.livejournal.com
Тэги указываются в начале описания -- типа "Кошки котята корм лекарства. Этот корм предназначен для лечебного питания...". Так сделано потому, что в процессе подготовки базы к выгрузке выяснилось, что:
-- категории, заданные полями, не выгружаются в лоб
-- чтобы их выбирать из справочника, надо делать чудовищное количество кликов.

Вторая причина даже важнее, потому что описания вносились в базу отдельным человеком как правило копи-пэйстом, и куда проще наколотить пару слов перед Ctrl-V, чем дрочить UI 1С-ки и проклинать его проектировщиков.

Выгружается встроенной в 1С 8 выгружалкой о_О Она формирует два xml-файла и свалку сырых картинок.

Дальше эти два файла парсятся WSH-скриптом, группируются одинаковые товары выделением одинаковых подстрок в названиях, объединяются тэги и все сериализуется в json.

Потом imagemagic-ом приводятся в божий вид картинки (флэттенятся, ресайзятся, обрезаются цветовые профайлы и тп).

А потом всё это сливается на сервер через ftp. В самом деле, это для пользователя два клика.

Не понял про оптимизацию и ключевые клавиши.

Date: 2011-01-10 04:35 am (UTC)
From: [identity profile] rezkiy.livejournal.com
Если ты фигачишь категории в названия, то ты ломаешь отчеты. Ну то есть они будут работать, но например без группировки по свойствам. Девочка которая дрочит юай стоит совсем недорого. А если дорого, то можно написать строк двести которые все распарсят в регистр сведений.

Date: 2011-01-10 06:47 pm (UTC)
From: [identity profile] ermouth.livejournal.com
не в название, а в описание. при этом как раз вообще ничего не ломается, в мире 1С описание нужно только для восприятия его человеком.

Date: 2011-01-10 08:17 pm (UTC)
From: [identity profile] rezkiy.livejournal.com
Я напомню, что я бывший сотрудник отдела методическиъ разработок фирмы 1С :-).

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

Date: 2011-01-10 08:28 pm (UTC)
From: [identity profile] ermouth.livejournal.com
Ох, ты первый раз бросил такой понт, тем более, уверен, ты знаешь что я это знаю )

Клиенту описание продукта никуда не упёрлось, а про маппинг базы на поле тэгов -- как концепцию управления большими стоками -- он вообще впервые от меня услышал. Понятие "категорийный менеджмент" ему тоже пока ни о чём не говорит -- у него не тот уровень конкуренции и высокая маржа, чтобы заморачиваться такими абстракциями.

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

Date: 2011-01-10 10:33 pm (UTC)
From: [identity profile] rezkiy.livejournal.com
я знаю что ты знаешь. Это я так напоминаю, что не имеет особого смысла рассказывать мне, как работают типовые кофигурации восьмерки.

Ты все правильно сделал. Но так сказать нетрадиционно. РАботать будет, но с тобой а не со среднестатистическим одинэсником на поддержке. ПОдумай, что удобно не всегда хорошо. И что труд того кто смотрит отчеты в разы дороже чем труд того, кто вбивает первичку. Но судя по всему, для этого клиента только так и надо. Ты внедренец, тебе лучше знать. Методические разработки != внедрения :-).

Сделай юай чуть поуже, кажется, на 1024 не влезет. В остальном заебись.

Date: 2011-01-09 08:52 am (UTC)
From: [identity profile] nikolaswheatten.livejournal.com
"Для кошек, постоянно живущих в помещении, в возрасте с 10 лет на протяже­ниией жизни".

Надо бы вычитать базу.

Date: 2011-01-09 10:49 am (UTC)
From: [identity profile] service-picky.livejournal.com
а не должно быть подробного описания каждого товара, крупной фотки?

Date: 2011-01-09 11:00 am (UTC)
From: [identity profile] ermouth.livejournal.com
о, это отличный вопрос!

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

Date: 2011-01-09 11:11 am (UTC)
From: [identity profile] service-picky.livejournal.com
не очень понимаю специфику (я не ЦА), но имхо описание не надо, только если заказывается с доставкой хорошо знакомый постоянный товар - типа корма или наполнители для сортиров. А если кто-то захочет заказать что-то новое, то без описания не обойтись, навернео.

а чем трекинг кликов на нессылки отслеживается?

Date: 2011-01-09 11:17 am (UTC)
From: [identity profile] ermouth.livejournal.com
описаний длиннее, чем они уже есть, в большинстве случаев не будет.

про клики -- уже ничем, а вообще был на body приаттачен event listener, который каждый клик отслеживает и отправляет id элемента, на котором был клик, на сервер.

это буквально в пять строчек на клиенте и в 10 на сервере делается, но нагружает сервер почём зря.

Date: 2011-01-09 11:57 am (UTC)
From: [identity profile] andrey-larin.livejournal.com
Ругать? Хвалить надо.

Date: 2011-01-09 04:15 pm (UTC)
From: [identity profile] lerka-amra.livejournal.com
ты действительно крут, йо

Date: 2011-01-11 05:24 pm (UTC)
From: [identity profile] dr-funk.livejournal.com
Все понра, а где же знак ру-бля? ;)

Date: 2011-01-11 06:25 pm (UTC)
From: [identity profile] ermouth.livejournal.com
нахуй этот знак рубля ) это пиар-акция.

Date: 2011-01-16 01:24 pm (UTC)
From: [identity profile] adehoidar.livejournal.com
Здорово.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 28th, 2025 06:20 pm
Powered by Dreamwidth Studios