Последний месяц неспешно занимался созданием копии digital.ru на битриксе. Для души. Вот что .[spoiler] Там конечно не все работает, статичные страницы не создавал, что-то упростил или убрал, основное внимание уделено каталогу товаров, забил зеркальные фотоаппараты на пробу. Считаю проект законченным наполовину. Необходимо еще вылизать, что есть и кое-что доделать.
Зачем я это сделал. Это эксперимент. За сколько по времени и на сколько качественным я смогу сделать программную часть хорошего интернет-магазина. Я ненавижу и не умею заниматься дизайном и версткой, также не люблю проекты, в которых убогий дизайн и кривая верстка на <ТАБЛИЦАХ> с нЕчИтАеМоЙ структурой - мне их западло делать. А вот работать с красивым дизайном, хорошей версткой - это просто песня какая-то.
Если сравнивать текущую реализацию настоящего digital.ru и 1С-Битрикс с его возможностями, то приходишь в уныние - у битрикса хорошее API, но очень слабая реализация компонентов. Пришлось переписать все компоненты. В общем-то тут был использован свой модуль, который по идее уже решает значительную часть проблем. В первую очередь - нормальный AJAX, нормальное ЧПУ, списки элементов, организацию каталога, корзину, оформление заказа. Вывод всех списков товаров - это один и тот же компонент в разных шаблонах. Даже страница сравнения и результаты поиска - построены на нем. Самым логически интересным было построение логики основного меню товарных разделов. Вроде бы и просто всё, но не так чтобы совсем, пришлось мозг напрягать.
Учитывая, что компонент оформления заказа в битриксе стандартный уже точно такой же как был у меня - пытался его использовать. Но отказался по нескольким причинам. Во-первых, он несовместим с моей корзиной. В корзине автоматом по IP определяется город пользователя, либо задается, а потом при заказе он считается выбранным. В принципе это делалось через result_modifier.php в шаблоне, но даже если город выбран по умолчанию - не было служб доставки, которые зависят от города, а тут уже надо лезть в логику компонента, либо городить кривые костыли. Во-вторых, компонент кривоват, например, каким-то непостижимом образом он умудряется группы свойство повторять. В-третьих, сама убогость внешнего вида и кода компонента отталкивает - тупо лень было всё это переписывать с нуля.
Корзину свою тоже пришлось немного дописать. Теперь в ней выводятся еще и аксессуары к товарам в корзине - последний шанс впарить покупателю что-то в нагрузку. Посмотреть можно, если добавить в корзину .
Полностью был создан новый компонент для фильтра товаров в каталоге. Его можно наблюдать справа от списка товаров. Ориентировался на яндекс.маркет - там при выборе характеристик производится подсчет товаров и дается ссылка на данную выборку. Сделал примерно то же самое. В digital.ru не особо нравился фильтр по ссылкам и фиксированным значениям.
Еще достаточно большой доработкой была система рейтингов и комментариев. Каждый товар можно оценить звездочками в списках или на странице товара. Естественно можно оставить комментарий к товару. И комментарий можно оценить на полезность. Всё точно также как в оригинале. Не сказать, чтобы это всё очень сложно, но пришлось опять же выдумывать костыли. Комментарии с оценками хранятся в отдельном инфоблоке, а в товарах хранятся результаты голосования - оценка и количество голосов. Так проще для сортировки и отображения оценок. Неудобно только, что приходится пересчет делать в товарах этих оценок.
Сегодня добрался еще до выгрузки в Яндекс.Маркет. Эх, там конь не валялся. Ситуация такая же как с компонентами - есть необходимый минимум и ладно. Достаточно большое количество данных просто не попадает в выгрузку, например, производитель, доставка, акции продавца, гарантии, типы товаров и т.д. Еще предстоит довести до ума.
Зачем я это сделал. Это эксперимент. За сколько по времени и на сколько качественным я смогу сделать программную часть хорошего интернет-магазина. Я ненавижу и не умею заниматься дизайном и версткой, также не люблю проекты, в которых убогий дизайн и кривая верстка на <ТАБЛИЦАХ> с нЕчИтАеМоЙ структурой - мне их западло делать. А вот работать с красивым дизайном, хорошей версткой - это просто песня какая-то.
Если сравнивать текущую реализацию настоящего digital.ru и 1С-Битрикс с его возможностями, то приходишь в уныние - у битрикса хорошее API, но очень слабая реализация компонентов. Пришлось переписать все компоненты. В общем-то тут был использован свой модуль, который по идее уже решает значительную часть проблем. В первую очередь - нормальный AJAX, нормальное ЧПУ, списки элементов, организацию каталога, корзину, оформление заказа. Вывод всех списков товаров - это один и тот же компонент в разных шаблонах. Даже страница сравнения и результаты поиска - построены на нем. Самым логически интересным было построение логики основного меню товарных разделов. Вроде бы и просто всё, но не так чтобы совсем, пришлось мозг напрягать.
Учитывая, что компонент оформления заказа в битриксе стандартный уже точно такой же как был у меня - пытался его использовать. Но отказался по нескольким причинам. Во-первых, он несовместим с моей корзиной. В корзине автоматом по IP определяется город пользователя, либо задается, а потом при заказе он считается выбранным. В принципе это делалось через result_modifier.php в шаблоне, но даже если город выбран по умолчанию - не было служб доставки, которые зависят от города, а тут уже надо лезть в логику компонента, либо городить кривые костыли. Во-вторых, компонент кривоват, например, каким-то непостижимом образом он умудряется группы свойство повторять. В-третьих, сама убогость внешнего вида и кода компонента отталкивает - тупо лень было всё это переписывать с нуля.
Корзину свою тоже пришлось немного дописать. Теперь в ней выводятся еще и аксессуары к товарам в корзине - последний шанс впарить покупателю что-то в нагрузку. Посмотреть можно, если добавить в корзину .
Полностью был создан новый компонент для фильтра товаров в каталоге. Его можно наблюдать справа от списка товаров. Ориентировался на яндекс.маркет - там при выборе характеристик производится подсчет товаров и дается ссылка на данную выборку. Сделал примерно то же самое. В digital.ru не особо нравился фильтр по ссылкам и фиксированным значениям.
Еще достаточно большой доработкой была система рейтингов и комментариев. Каждый товар можно оценить звездочками в списках или на странице товара. Естественно можно оставить комментарий к товару. И комментарий можно оценить на полезность. Всё точно также как в оригинале. Не сказать, чтобы это всё очень сложно, но пришлось опять же выдумывать костыли. Комментарии с оценками хранятся в отдельном инфоблоке, а в товарах хранятся результаты голосования - оценка и количество голосов. Так проще для сортировки и отображения оценок. Неудобно только, что приходится пересчет делать в товарах этих оценок.
Сегодня добрался еще до выгрузки в Яндекс.Маркет. Эх, там конь не валялся. Ситуация такая же как с компонентами - есть необходимый минимум и ладно. Достаточно большое количество данных просто не попадает в выгрузку, например, производитель, доставка, акции продавца, гарантии, типы товаров и т.д. Еще предстоит довести до ума.