Мой сайт для интернет-магазина написан на CMS Drupal. Для этого я использовала модуль Ubercart. Но ещё до его написания я случайно наткнулась на вебинар, где какой-то дядя размышлял на тему юзабилити интернет-магазинов. Он рассказал, что ему написал какой-то вьюноша, что, выбирая подарок для мамочки в таком магазине, он вдруг наткнулся на понятие как 'Положить в корзину', испугался и убежал... Выбирать подарок 'вживую'. ))
Ну на самом деле, говорил дальше дядя, зачем мне корзина, если я пришёл в интернет-магазин, чтобы купить телевизор, ноутбук, кухонную стенку и т.п.? (Может, не это именно он перечислял.. Да даже наверняка..)
Вобщем, мысль понятна. Мне всё стало ясно, я выключила и занялась своим. Но вот, когда я уже приступила к написанию своего интернет-магазина, я задумалась. Дело в том, что его попросила создать моя хорошая знакомая для рекламы-продажи своих поделок на тему «Тильда». Она просто занимается этим шитьём для своего удовольствия и хотела бы потихоньку продавать, не напрягаясь. До сих пор она выставлялась 'в контакте' на своей страничке в рамках 'А вот что забавное у меня сегодня вышло. Может, кто возьмёт в хорошие руки за недорого?'. Ясно, что корзина здесь вредна. Всё должно быть максимально понятно-просто.
Поставив модуль Ubercart, я скоро выяснила, что без подключения подмодуля 'Cart', не будут доступны составлене отчётов и отправка их покупателю и продавцу.
Пришлось окунуться с головой в сами модули. Поначалу блуждала, как в дремучем лесу безлунной ночью. Скачала Development (т.н. 'Devel'), расставила отладочные печати. Ночь стала светлеть.
В итоге сделала вот что.
Заменила название 'Добавить в корзину' ('Add to cart') на 'Заказать'. По этой кнопке я уже попадаю с одним моим выбранным товаром на страницу 'Заказанный товар + Составление заказа'.
Скажу для пепосвящённых, что в дистрибутиве юберкарта попасть на страницу составления заказа можно исключительно из корзины.
Убрала всё, что связано с хранением (запоминанием заказа), так как это связано с заполнением-запоминанием корзины и, естественно, идентификацией покупателя. Я отказалась от регистрации.
Сначала я тупо скопировала функции из модуля uc_cart.pages.inc (он отвечает за содержимое страницы Корзина+Заказ) в uc_product.pages.inc и заменяла префикс 'uc_cart_' у функций и хуков на префикс 'uc_product_'.
Потом завела сама дополнительный файл uc_product_checkout_pane.inc копированием uc_cart_checkout_pane.inc – это для внешнего вида офрмления заказа — с префиксами сделала тоже самое.
По кнопке 'Заказать' я сделала редирект на новую страницу, то есть новая callback-функция в uc_product_menu() модуля uc_product.module.
В общих чертах всё. Остальное — мелочи, с которыми возни как раз было больше всего. ))
Получился вот такой скромный маленький домашний интернет-магазин с уведомлениями при сделанном заказе покупателю(если был правильно указан e-mail) и админисьтратору магазина. На данный момент - мне.