Как сделать зоомагазин
Jan. 9th, 2011 04:12 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Браза 2dostudio попросил сделать ему инет-версию оффлайновой сети зоомагазинов местных.
Получился zoo29.ru (клик на первую картинку – в магазин ):
Там всё суперудобно, можно сделать заказ без регистрации и вообще всё просто летает. Пока это бета – скажем, корзина не запоминается между сеансами, кое-где тексты неадеватные и картинки не очень. Поиска пока нет – но будет.
Заказывать уже можно, но осторожно. Да, Володя?
Ниже -- ещё скриншотеги и как делалось.
Вводные были примерно такие:
- Есть склад в 1С, его надо синхронизировать со онлайн-стоком, скажем, ежедневно
- Всё должно быть быстро, красиво и удобно
Сначала я подумал в сторону 1С-Битрикс, даже попробовал поковырять демо… Потом проанализировал базу. И вышло, что не перелопачивая структуру базы сделать на Битриксе ничего не получится.
И даже перелопатив базу, всё равно будет грустно, и вот почему.
Для одного, скажем, типа корма бывают упаковки разных весов. В битриксе без допиливания они будут показываться каждый отдельным товаром – хотя это один и тот же товар, с одинаковым названием, картинкой и описанием. Выбрать что-то в такой свалке будет трудно.
Есть ещё момент, это уже 1С-ное в чистом виде. Довольно трудно сделать так, чтобы товар одновременно принадлежал двум категориям – скажем, одна и та-же клетка подходит и для птиц, и для грызунов.
Короче, на Битрикс я плюнул, он кста ещё и чудовищно медленный.
Пришлось написать парсер, который разбивает 1С-ную базу на категории, группирует одинаковые товары с разной развесовкой и маркирует все товары тэгами (Кошки, Собаки, Котята, Корма, Здоровье, Гигиена и тп), ресэмплит картинки, а потом выгружает всё это на сервер. 37 килобайт яваскрипта.
В процессе парса 1C-ного XML (руки бы поотрывал за кириллические тэги) выяснилось, что после группировок и обезвоживания объём баз сокращается примерно в 60 раз. Это означает, что можно сразу, при открытии какого-то раздела сайта (Кошки там или собаки), загружать всю базу товаров для этого животного – несколько сотен наименований спокойно укладываются в 100 Кб. А уже загруженную базу фильтровать по тэгам.
Такой подход позволяет работать зоомагазину очень, очень, ОЧЕНЬ быстро. Совершенно кста неожиданный для меня результат – я полагал сначала делать всё по классической схеме.
Ну и ещё из интересного. При обкатке выснилось, что в описаниях товаров и заголовках есть длинные слова, которые рвут вёрстку. Так вот, я написал кусочек кода, который расставляет в длинных словах переносы. Длина кусочка кода – 7 строк ) Честно.
Плюс в зависимости от длины описания и заголовка карточки товаров верстаются немного по-разному.
Ругайте )
PS. Да, я знаю, что у меня очень узнаваемый стиль.
no subject
Date: 2011-01-09 01:46 am (UTC)можно категории животных отрисовать иконками-кавайками в стиле лого, и расставить сеткой, удобнее станет навигация и первым юзерам (а, насколько я понимаю, существенная часть ЦА это virgin юзеры) легче будет разбираться в категориях. если тебе лень это делать, могу скетч набросать). текнологически изменения потребуются минимальные.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-01-09 02:44 am (UTC)бросилось в глаза:
- при эмуляции переходов по страницами яваскриптом неплохо бы писать это в хистори браузера (чтобы кнопка "назад" работала, например)
- в иетестере, особенно в режиме эмуляции ие6 как то все мягко говоря разъезжается
- комбинация контролов +-х (в корзине) не самая понятная
на битриксе кстати упомянутая проблема с разной весовкой товаров решается не сложнее выбранного вами пути, но свой парсер (и вообще все свое) — более спортивный вариант, с т.з. разработчика конечно =)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-01-09 04:24 am (UTC)Ты наверное хотел сказать "группам".
Потому что у тебя товар в дереве. А надо использовать свойства и категории. Делается с помощью регистра сведений и ПВХ. Ну это если я ничего не забыл.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-01-09 08:52 am (UTC)Надо бы вычитать базу.
no subject
Date: 2011-01-09 10:49 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-01-09 11:57 am (UTC)no subject
Date: 2011-01-09 04:15 pm (UTC)no subject
Date: 2011-01-11 05:24 pm (UTC)(no subject)
From:no subject
Date: 2011-01-16 01:24 pm (UTC)