Интернет-магазин. «Разделяй и властвуй» или «ОО уже и тут»

    А почему бы вам, коллеги, не приобщиться к интернет-магазинству?
    Страшно? То-то же, и мне страшно. И здесь мы поговорим о том как побороть свои страхи. С помощью… объектно-ориентированного подхода.

    Под конец этого ежегодного съезда он выступал перед собравшимися, широким повелительным, великолепным взмахом руки указывал на огромную карту Соединенных Штатов, которая покрывала всю стену
    за его спиной, и говорил так:
    — Вот он, ваш рынок! Идите и продавайте!
    Томас Вулф, «Домой возврата нет»


    Один мой знакомый интернет-созидатель весьма ловко зарабатывает на всевозможных потомках баннерной системы. Сайты, реклама, рейтинги цитирования… Однажды я его спросил — а почему бы тебе не смастерить собственный интернет-магазин (далее — «И-М»)? Мол, доходы в разы выше. В ответ он помолчал и сказал — сложно это.

    Блоки и интерфейсы

    Да, это сложно. Но путь решения проблем на пути становления интернет-магазинации на мой взгляд есть. Это классический «Divide and Conquer» — «Разделяй и властвуй», применяемый, в частности, в объектно-ориентированном программировании. Делим схему на слабозависимые блоки и соединяем через интерфейсы. Реализатора интерфейса впоследствии можно менять по своему усмотрению без воздействия на процесс в целом. Итак, посмотрим на схему ниже.

    Use Case схема интернет-магазина

    Здесь мы видим блоки по одну сторону баррикад: Промоутер, Склад, Продавец, Курьер. На другой стороне — Клиент. И, с потугой на нейтральную Швейцарию, — Платежная система.

    Что с этими блоками делать?

    Во-первых, заставить их поддерживать определенные интерфейсы. Назвался складом — будь добр, реализуй поддержку методов GetItemsList() и ReserveItem(). Да, ребята, да. Время Excel-я прошло, придется ставить сервак, покупать софт и тянуть выделенку. Иначе будут покупать у кого-то другого.

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

    Конструируем И-М

    Теперь примерим на одного человека возможность созидания И-М.

    Итак, вперед выходит новый будущий интернет-торговец. Предположим, что домен RussianVegetables.com он уже купил. Далее он выбирает из списка овощебаз наиболее подходящий ему. Например по ценам (тут есть один маленький бонус, но о нем мы поговрим в следующей статье).

    Поехали дальше. Раскручивать будем сами? Если нет, то ищем промоутера, объясняем ему схему и отправляем промоутить.

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

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

    Как мы видим, каждый блок вполне реализуем одним человеком.

    И что — минусов нет? Да сколько угодно! Ответственность делится, поэтому случаи service temporarily unavailable придется вписывать в контракт с каждым интерфейсо-реализатором. И да, — самый главный минус — работать все равно придется :)
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 20

      0
      исчерпывающе о прописных истинах.
      но на то они и "прописные", что их надо периодически прописывать....
        +1
        Mashup in action
          0
          И на каждом этапе вас будут стараться обмануть и как нибудь материально наказать ваши контрагенты.
            0
            Это свойство любой системы. Возьмите ваши отношения с работодателем, с кондуктором, с продавцом в магазине и партнером по нардам.
            0
            Почему облако курьер-доставить_товар не соеденено с клиент-получить_товар?
            То есть если курьер не доставит оплаченный товар - угадайте к кому будут все претензии? =)

            Каждый участник И-М будет стараться заработать как можно больше, а работать меньше. И кол-во участников должно быть минимальным. Например искать склад с собственной службой доставки.
              0
              Схема противоречит складу с собственной системой доставки?
              0
              Главный вопрос — вопрос доверия и ответственности учатников. Можно, конечно, "продавть входные билеты", чтобы степень заинтересованности проверить и стимулировать участников к активным действиям. Но такой подход сведёт на нет количество желающих мелких "доставщиков/курьеров".
                0
                Причем не обязательно интернет-магазин. Это вопросы общего бизнес-подхода.
                  0
                  Полдесятка примеров можно привести?
                  0
                  >своим складом
                  Вы торгуете _не_ воздухом, а товаром. Иметь это на складе очень желательно, потому что ваши постащики тоже фирмы и имеют свои проблемы, которые в свою очередь отразятся на вашем бизнесе и ваших клиентах. Поэтому желательно иметь на складе запас. Также это ускорит доставку к клиенту.
                  >Курьерская служба
                  Это лишь машина + водитель. Выгодно иметь свое, нежели отдавать деньги на сторону. А также избавляет от проблем, подобных "у них машина сломалась, он не может приехать"/"Все в отпусках, машину не найти" и прочее, прочее. Ускоряет доставку к клиенту.

                  На первое время этой схемы может хватить, но дальше вы будете понимать выгоду иметь своё. Потому что при большом кол-ве заказов вы тихо начнете приплывать. :)
                    0
                    цель высказывания про склад я таки не понял. Вполне можно реализовать метод ОстатокНаСкладе(ItemID) и выводить для покупки только то что превышает некий минимум. Например, 5 мешков.

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

                    Вообще, цель этой статьи - показать направление развития рынка, которое позволит новичку войти в электронную коммерцию. Потратив, вместо нереальных $100К и двух месяцев, $2К и 2 недели. После вхождения и первых оборотов, можно подменять внешние блоки своими. Складиком обзавестись, курьером, свечным заводиком...
                      0
                      >$2К и 2 недели.
                      Смех и слезы, ваша схема заставит вас впахивать на такой фирме круглосуточно, без перерывов и выходных, без отпусков. Ваш аутсорсинг будет способствовать этому, потому что "те не отгрузил", "те потеряли", "нужно срочно".
                      Вы работали на оптовых фирмах? Да и на розничных стоит попробывать, познаешь все сразу. Особенно если ты "самый главный" ;)

                      Вот смотрим, наш клиент заказывает у нас товар в И-М. Далее этот товар попадает менеджеру нашего И-М, менеджер созваниванивается с другой фирмой у которой есть товар (ага, _если_ есть ;)), выписывает, склад покует и отчитывается что мол все, готово, приезжайте. Далее курьерская служба, наш менеджер звонит и заказывает машину, машина приезжает к менеджеру, берет необходимый пакет документов (доверка на забирание товара со склада поставщика, накладный, с/ф, счета, по вкусу, а может и менеджер ехать), едут на склад, забирают товар, едут к клиенту (предварительно с ним договорившись). Я опущу пункт "расчет клиента с И-М".
                      Вооот. Тут ваша задача, заставить все это работать. ;) И чтобы все это работало, вам прийдется работать еще больше :)

                      И это, что за 2 месяца и 2 недели? Это откудо взято? Это не открытие "еще одной банерной сети" или блога. :)
                        0
                        Отвечаю в обратном порядке: во-первых, все что тут описано - это концепт. Общество будущего. Где есть устоявшийся стандартный интерфейс каждого нарисованного выше блока. В конце концов, факсы понимают жужжание друг друга, так почему бы и серверам не начать понимать GetItemInfo() и ReserveItem() ? Судя по пунктам меню MS Money, банки уже предоставляют какой-то стандартный интерфейс к счетам.

                        Далее (опираясь на первый пункт ессно), разберем ваш второй абзац про менеджера. У меня складывается ощущение, что инет вырубили, остались только телефоны. Вся эта головомойка вполне пакуема в одну единственную "кнопку". Вы же не звоните в PayPal, ваш банк и И-М после оплаты покупки? Патамушта их серверы сами между собой договариваются.

                        Опираясь на эти существующие интерфейсы цифра $2К и 2 недели мне видится весьма правдоподобной. Поправьте если что не так.

                        Теперь хватит фантазий. Переходим к современному миру. С менеджерами на телефонах. Вы можете мне привести пример любого современного (не концептуального) участника со схемы выше, который не может быть подтянут до этого концептуального уровня силами, скажем, одного человека и за квартал времени?
                          0
                          ААА, так это концепт будущего, тогда это многое объясняет. Так и надо было писать, потму что опиратся на нем в реальной жизни, это как бы... эээ... нереально.

                          И так, какие участки сложно дотянуть:
                          1. Склад - вы думаете каждый склад работает с электронным учетом? Я знал такую фирму, 7 лямов оборота и все на бумажках. Ух да, заставите вы их перейти за квартал и поставить сервера :)
                          Кроме того, я сомневаюсь что вам дадут читать и писать ихнию базу. Знаете, у них свои черные проводки, отмывания денег :)
                          2. Курьеры - ... что, заказ курьера через емейл уже существуют?

                          И да, на чем будем размещать сервис? Нужно же под ваш магазин площадку.

                          А так мне все нравится, минимум вложений, максимум прибыли. Осталось только поднять такую схему в указанные сроки и нас ожидает бум интернет магазинов. :)
                          Кстати, вы уверенны что вам позволят поставщики вписать "service temporarily unavailable"? Просто с такими фирмами накладно работать, требований много, а вот толку как от обычного клиента. :)
                            0
                            Да, да... это только концепт... увы :)
                            Сложность реализации в том, что возводить ее придется с нуля, а подтягиваться все начнут, когда это будет уже стандартом. Проблема не техническая, а внедренческая. Весь промежуток между нулем и стандартом придется тянуть неизвестно какими усилиями.

                            Google, алло, Google, купите идею за недорого, а? Я и порулить проектом могу...
                    –1
                    А помоему очень актуальная тема и в реализации не столь сложная так как не идёт реч о замене обычных супермаркетов, салонов или ботиков а реч идёт о связи покупателя с продавцом по средствам Интернета.
                      0
                      осталось дождаться когда у нас люди начнут платить сразу, а не по факту доставки
                        0
                        Имхо, такая схема работы - утопия.
                        Что сразу могу сказать:
                        Во-первых, пользуясь "формочкой, предоставленной интерфейсом курьера", вы не учитываете, что стоимость "Курьер пошел, забрал на Складе товар и довез его покупателю" в этом случае будет вовсе не так низка, как если бы это был обычный, но ваш ШТАТНЫЙ курьер (берем только доставку по Москве). Если товар крупногабаритен или тяжел, в курьерской компании с вас запросят соответствующие габаритам или весу деньги. Штатный курьер (сам видел) готов тащить что угодно и куда угодно, причем за одну и ту же сумму. И только вечерняя, после 19.00 доставка оплачивается ему немного дороже.

                        Во-вторых, про "внешнюю Платежную систему". Львиная доля клиентов покупают за нал. Те доли процента, желающие оплатить иначе - это не та аудитория, за которую надо воевать.

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

                        В-четвертых, срок доставки товара при такой схеме может очень затянуться: пока Курьер со стороны соблаговолит прийти или приехать, пока товар со склада выдадут (не были вы наверное на Большом складе), пока Курьер по пробкам довезет-таки товар до покупателя... В общем, чем менее вы зависимы от внешних модулей, тем слаженнее и эффективнее будет ваша работа.
                          0
                          После того как вы красиво пропишите все методы и реализуете все в код, Вы будете еще лет 10 (в России) ждать пока изменится текущая ситуация, которая такова, исходя из моего опыта.

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

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

                          Далее наступают проблемы, которые следуют из оптового характера нынешних поставщиков. Возиться с вами в виду ваших относительно небольших оборотов им малоинтересно. Поэтому, вы либо покупаете сразу много (что вам невыгодно), либо вам придется внести залог (в моем секторе рынка поставщики берут в залог от $2 килобаксов) за то, что ваш курьер приезжает за "одним мешком". Но обойтись одним поставщиком сложно, потому я не согласен с утверждением, что новичку удастся войти в рынок почти без затрат.

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

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое