Быстрое развитие электронной коммерции на основе Dreamweaver UltraDev и PayPal


Джоэл Мартинес (Joel Martinez) и Рей Вест (Ray West) (www.basic-ultradev.com)

В этой статье рассматриваются способы интеграции UltraDev с PayPal с помощью нескольких вариантов поведения сервера, предоставляемых на безвозмездной основе, для реализации трех типичных сценариев продаж через Интернет. Набор вариантов поведения сервера под названием «Пакет расширения PayPal» (PayPal Extension Suite) может быть получен у Майка Ахерна (Mike Ahern) из компании Shore Computers (http://www.shorecomp.com/ultradev/paypal/default.asp). Пакет предоставляется на безвозмездной основе, но мы порекомендовали бы вам оказать посильную финансовую помощь через PayPal, если вы пользуетесь результатами его работы.

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

Создание веб-сайта электронной коммерции с помощью PayPal


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

В рамках пакета расширений существует целый ряд вариантов поведения сервера, каждый из которых предоставляет различные наборы функций. Однако на практике они совместно используют определенные общие элементы.
  • Электронная почта PayPal – Каждый вариант поведения сервера предполагает ввод адреса электронной почты, связанного со счетом PayPal. Если вы планируете осуществлять свою бизнес-деятельность на основе счета PayPal, вы определенно остановите свой выбор на счете категории Business.
  • Статические/динамические поля – Практически любой вариант поведения сервера предполагает использование полей, позволяющих выбирать либо товары из окна привязки данных в UltraDev, либо статические значения. При этом необходимо помнить, что для использования статического значения последнее должно быть заключено в двойные кавычки (например, «5,00»).
  • Денежные средства – Все поля, содержащие значения в денежном выражении, должны иметь формат «xx.xx». При присвоении одному из этих полей значения из палитры привязки данных следует убедиться, что эти значения имеют указанный формат. Для присвоения схемы форматирования этому значению можно использовать встроенную функциональность UltraDev.

Рис. 1. Форматирование значений в денежном выражении при их присвоении из палитры привязки данных.
  • Поля URL – Некоторые варианты поведения сервера предполагают выдачу запроса на ввод URL логотипа или адреса, по которому будет направлен пользователь после обработки операции. Все эти адреса должны являться абсолютными URL. Это означает необходимость использования http://www.yourdomain.com.
Варианты поведения сервера

Описанные ниже варианты поведения сервера, входящие в пакет, обеспечивают взаимодействие с функциональностью PayPal.
  1. Поведение «Одна покупка»
    В случае применения к изображению или определенному тексту использование данного поведения сервера предполагает создание прямой ссылки на экран оформления заказов через систему PayPal. Это позволяет создавать такие ссылки, как «Купите прямо сейчас!». Применение такого подхода целесообразно для веб-сайтов, предназначенных для продажи только одного продукта или услуги.
  2. Поведение «Из вашей корзины»
    В случае выбора другого решения для корзины, например, UltraCart II, вы по-прежнему можете использовать услуги, предоставляемые PayPal для приема платежей за ваши продукты. Единственной информацией, которую необходимо предоставить (в дополнение к коду PayPal и нескольким URL), является номер заказа и итоговая сумма продажи. Эту информацию несложно собрать и передать через обычный интерфейс пользователя.
  3. Поведение «Добавление товара в корзину»
    Вероятно, этот вариант поведения сервера окажется наиболее популярным. Поведение «Добавление товара в корзину» очень просто интегрируется с экраном базы данных товаров, что значительно упрощает процесс поиска наиболее выгодного предложения и добавления товаров в корзину. При каждом переходе по сгенерированной ссылке появляется всплывающее окно, наглядно отображающее содержимое корзины. Затем пользователи могут перейти от данного экрана к области оформления заказа, где они могут либо войти в систему с использованием учетной записи PayPal, либо просто ввести свою платежную информацию.
  4. Поведение «Просмотр корзины»
    Это поведение сервера используется в сочетании с поведением «Добавление товара в корзину» путем перехода по ссылке, сгенерированной в рамках варианта «Просмотр корзины», при этом на экране появляется окно с содержимым корзины. Единственной необходимой информацией является код адреса электронной почты PayPal.
  5. Поведение «Пожертвование»
    Ссылка, генерируемая при использовании данного поведения сервера, обеспечивает переход пользователя к экрану, на котором он может перечислить денежные средства со своего счета PayPal. Эта опция предоставляет значительные преимущества разработчикам условно-бесплатного программного обеспечения или некоммерческим организациям, поскольку позволяет принимать денежные средства через ваш веб-сайт без привязки к определенной покупке.
  6. Поведение «Подписка»
    Эта уникальная услуга, предлагаемая PayPal, особенно подходит для веб-сайтов, предоставляющих доступ к своему содержимому на основе подписки. Пользователи, зарегистрировавшиеся на услугу подписки, получают регулярный ежемесячный счет от PayPal. Денежные средства поступают непосредственно на счет PayPal пользователя, при этом после выполнения каждого платежа пользователь получает электронное сообщение, уведомляющее его относительно продления подписки. При переходе по ссылке, создаваемой в рамках данного поведения сервера, на экране появляется окно с запросом на ввод расчетной информации пользователя.

Области применения пакета PayPal


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

Мы создали специальный демонстрационный сайт, доступный по адресу http://www.codecube.net/teksales/. На этом демонстрационном сайте можно более подробно ознакомиться с примерами, описанными в данной статье лишь в общих чертах.


Рис. 2. Демонстрационный сайт Teksales


«Мне один, пожалуйста» – Продажа одного товара


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

Допустим, у кого-то есть первоклассный мотоцикл Ducati Monster S4Fogarty. И вот однажды на дороге его внезапно подрезает автомобиль, перестраивающийся на другую полосу. В один миг вся жизнь проносится перед глазами нашего мотоциклиста, и с тех пор от одной мысли о поездке на своем железном коне его бросает в холодный пот. Делать нечего, он принимает решение о продаже мотоцикла через веб-сайт. Он быстро разрабатывает дизайн объявления с помощью Ultradev и размещает его на своем сайте.


Рис. 3. Продажа Ducati через веб-сайт... с оплатой без рассрочки

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

Использование варианта поведения сервера «Одна покупка»

Использовать поведение сервера «Одна покупка» достаточно просто. После создания страницы необходимо лишь выбрать объект на странице, который действует по принципу кнопки «Купить». Это может быть изображение «Купи меня» или какой-либо текст, имеющий тот же смысл. Выделите объект и воспользуйтесь поведением сервера привычным для вас способом. Поведение сервера «Одна покупка» доступно в палитре вариантов поведения сервера по пути PayPal > Одна покупка через PayPal.



Рис. 4. pp_SinglePurchase

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


«Я возьму по две штуки каждого вида» – Стандартная корзина


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

Вернемся к нашему начинающему продавцу мотоциклов. В результате продажи своего Ducati он осознал, что существует спрос на товары, связанные с мотоциклами, и решил заняться интернет-бизнесом по продаже таких товаров. Новое решение PayPal для приема платежей через Интернет обеспечило быстрое развитие его нового бизнеса. Продажа мотоциклов через веб-сайт приносит существенную прибыль, однако наш бизнесмен принимает решение о начале продаж некоторых сопутствующих товаров, таких как шлемы и защитные очки. Это достаточно простая концепция, но использование того же самого решения не позволяет реализовать ее на практике. Во время еженедельного посещения супермаркета, добавляя бутылочку с моющим средством в корзину, где уже лежат молоко и яйца, наш бизнесмен вдруг осознает, что необходимо сделать. Ему тоже нужна корзина!

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

Использование корзины PayPal

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

Для применения определенного поведения сервера к товару просто выделите объект или текст на своей веб-странице и выберите «Добавить к поведению сервера “Корзина”» по пути PayPal > Добавить товар в корзину через PayPal в палитре вариантов поведения сервера. Повторите эти шаги для каждого товара на вашем веб-сайте.



Переход по создаваемой ссылке приведет к появлению в системе «Корзина PayPal» нового всплывающего окна, в котором отображаются все добавленные товары. При двойном щелчке по тому же товару количество товара увеличивается на единицу. Этот подход является предпочтительным в данной ситуации, поскольку при приобретении необходимых продуктов покупатели стремятся выполнить минимум действий. Таким образом, даже незначительное уменьшение числа нажатий на кнопку мыши повышает удовлетворенность клиента, а довольный клиент совершает больше покупок.

Использование системы PayPal для корзины на основе базы данных


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

Табличная структура

Наиболее трудоемкая часть разработки такого сайта – создание самой базы данных. Фактически, привязка к системе покупок с использованием PayPal – обычная операция. В рамках настоящей статьи рассмотрим классическую структуру данных: родительские/дочерние элементы – основные/подробные данные. Такова структура базы данных, используемая в 99% базах данных по всей сети. Если вам необходима помощь при разработке базы данных для этого проекта, вы можете обратиться к целому ряду сетевых ресурсов, которые могут оказаться полезными.

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

Категория «Телевизоры»
– Sony 20"
– RCA 19"
– Magnavox 32"

Категория «Видеомагнитофоны»
– Panasonic с двумя головками
– Samsung с четырьмя головками

Формирование таблицы категорий рекомендуется начать со следующих полей:
  • catID – счетчик
  • catName – текст
Очевидно, что таблица основных данных обычно не содержит большого объема информации, поскольку она является лишь организационным звеном для многочисленных строк в дочерней таблице. Кроме того, данная таблица может включать следующую информацию:
  • расширенное описание
  • схему категории
  • поле «Активно», которое указывает, активна ли в настоящее время данная категория
Данная таблица может использоваться на странице, где перечислены все категории товаров, доступных на веб-сайте. Затем покупатель может выбрать категорию для просмотра подробных данных о продуктах, доступных в каждой категории.

Следующая таблица, которую необходимо сформировать, является таблицей продуктов. Она будет содержать информацию о каждом отдельном продукте. Таким образом, необходимо предусмотреть поле для каждого соответствующего товара в рамках поведения сервера «Добавление в корзину».
  • itemID – счетчик
  • catID – число
  • itemName – текст
  • сумма – валюта
  • отправка – валюта
  • доставка – валюта
Если некоторые из этих полей использовать не планируется (например, плата за отправку и доставку не взимается), можно просто заполнить их нулями.

Как и в случае таблицы категорий, для краткости рассмотрим минимальное число полей. Другие возможные поля:
  • Дата добавления
  • Активный
  • Виды просмотра страницы

Рис. 6. tekDB_relationship
Графическое представление взаимосвязи между двумя таблицами

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



Рис. 7. tekDB_catTableContents

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


Рис. 8. tekDB_ProductTableContents


Представление данных

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

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

Перетащите имя категории из палитры «Источник данных» во вторую строку первого столбца. Второй столбец будет содержать ссылку «Просмотреть».

Для создания ссылки «Просмотреть» сначала выделите текст и используйте меню свойств объекта для перехода к странице, на которой будут отображаться продукты. Нажмите на значок папки, и на экране появится список всех страниц веб-сайта. Выберите страницу продуктов, а затем нажмите кнопку «Параметры» в нижней части диалогового окна. В окне «Параметры» можно создать параметр URL под названием catID (который используется для фильтрации набора записей о продуктах) и присвоить значение из базы данных методом выбора поля catID с помощью значка молнии. Теперь при нажатии кнопки «Просмотреть» рядом с этой категорией соответствующий код передается в набор записей о продуктах в строке URL, и на странице подробной информации появляются только продукты данной категории. После выполнения этого шага вы можете добавить поведение сервера «Повторяющийся регион» ко второй строке.

Теперь, когда мы создали работоспособную страницу категорий, можно перейти к следующему шагу – созданию страницы подробной информации. Нам известно, что любой элемент, отображаемый на данной странице, имеет связь со страницей категорий, и, следовательно, будет иметь catID в строке запроса. Таким образом, следует начать с создания набора записей, связанного с каждым полем в таблице, при этом фильтрация catID осуществляется по значению из строки запроса с помощью запроса («catID»).


Рис. 9. tekDB_categoryRS

Интерфейс пользователя для данной таблицы может аналогичную структуру, за исключением дополнительного столбца для цены. Перетащите наименование товара в первый столбец, цену – во второй и введите «Добавить в корзину» в третий. Выделите текст «Добавить в корзину» и выберите поведение сервера «Добавление в корзину» из палитры вариантов поведения сервера. Рядом с текстовым окном большинства полей в интерфейсе пользователя отображается значок молнии. Этот значок позволяет заполнять поля значениями полей из базы данных на основе набора записей, созданного в окне «Источники данных». Для каждого соответствующего товара в поведении сервера выберите поле из базы данных. Затем можно добавить повторяющийся регион ко второй строке. В процессе переноса данных продуктов из базы данных на эту страницу к каждому случаю «Добавить в корзину» привязывается соответствующая информация. При добавлении любого товара, выбранного для покупки, корзина обновляется с учетом введенной информации. Теперь ведение товара в базе данных может выполняться без необходимости редактирования страниц HTML.


Рис. 10. tekDB_Addtocart

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

Настоящая статья является фрагментом новой книги «Концепции электронной коммерции на основе UltraDev: следующие шаги» (UltraDev E-commerce Concepts: Next Steps), написанной Рэем Вестом (Ray West), Томом Маком (Tom Muck) и Джоэлом Мартинесом (Joel Martinez). Для получения дополнительной информации о UltraDev и электронной коммерции ознакомьтесь с разделом Basic UltraDev на веб-сайте www.basic-ultradev.com. В этом разделе представлена информация о наших книгах, руководствах и расширениях, которые могут значительно увеличить возможности веб-разработки.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Содержимое следующих статей предоставляется частным лицом — автором каждой статьи, а не зарегистрированной корпорацией PayPal или ее филиалами или дочерними компаниями. В статьях могут содержаться ошибки, поэтому PayPal не подтверждает и не поддерживает их содержимое. PayPal рекомендует связаться с авторами статей для получения ответов на вопросы, информации о технической поддержке, гарантийных обязательств и/или лицензий, если таковые являются необходимыми. Если вы принимаете решение положиться на содержимое любой из этих статей, вы делаете это на свой страх и риск. PayPal не несет ответственности за ошибки, ущерб или другой вред, который может возникнуть в результате вашего доверия данным этого содержимого, включая побочный, особый, непрямой или косвенный ущерб. PayPal КАТЕГОРИЧЕСКИ ОТКАЗЫВАЕТСЯ ОТ ОТВЕТСТВЕННОСТИ ЗА ВСЕ ГАРАНТИЙНЫЕ ОБЯЗАТЕЛЬСТВА касательно этого содержимого и использования этого содержимого.