АРАМА: Модуль Интернет-магазин на Старте

Описание курса

Данный курс описывает модуль Модуль Интернет-магазин на Старте, предназначенный для сайтов на базе cms 1С-Битрикс.

Модуль Интернет-магазин на Старте — это инструмент, с помощью которого возможно реализовать интернет-магазин на младших редакциях cms 1С-Битрикс.

Для кого этот курс?
  • Разработчикам

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

Внимание! Скриншоты в курсе сделаны с демонстрационной версии "1С-Битрикс: Управление сайтом" в шаблоне Интернет-магазин. Реальный сайт, на котором будет работать специалист, будет иметь свой собственный внешний вид. Это не касается интерфейсов Административного раздела и форм создания/редактирования элементов, которые разработчики сайтов меняют крайне редко.

Компоненты

Модуль Интернет-магазин на Старте – это вспомогательный продукт, модуль разворачивает ряд готовых компонентов, с помощью которых без особых затруднений можно реализовать элементы интернет-магазина на вашем сайте. Это не из разряда готовых сайтов, как ошибочно иногда полагают, а именно вспомогательный инструмент для разработчика (продвинутого пользователя) для упрощения его деятельности.

Модуль содержит такие недостающие компоненты:

  • корзина (scoder:sale.basket)
  • форма заказа (scoder:sale.order)

и вспомогательные:

  • малая корзина (scoder:sale.smallbasket). Данный компонент обычно размещается в шапке сайта и выводит информацию о количестве и стоимости товаров в корзине;
  • компонент добавления в корзину (scoder:sale.addtobasket).

Внимание: Задача компонента scoder:sale.addtobasket служебная, он только добавляет товар и перенаправляет пользователя на страницу корзины. Адрес страницы корзины указывается в параметре «Страница корзины» (URL_CART). Если данный параметр не указать, то компонент возвращает результат добавления в корзину (true или false). При указании данного параметра происходит редирект (перенаправление) на указанный адрес, в этом случае компонент нужно размещать на странице только через админку, в противном случае происходит редирект.

Данный компонент нельзя размещать на одной странице вместе с остальными компонентами модуля.

Основной принцип работы модуля следующий: т.к. в младших редакциях 1С-Битрикс (Старт, Стандарт) нет модулей «Торговый каталог» и «Интернет-магазин», следовательно нет специальных полей для хранения цен. Для этого модулем используется обычное свойство инфоблоков. Если у вас создан инфоблок для ваших товаров, необходимо в нем для начала создать свойство Цена. с символьным кодом PRICE, тип свойства Число.

Свойство цена.jpg

Товары выводятся стандартными компонентами Каталог (bitrix:catalog), Новости (bitrix:news) и т.п. Т.к. Цена (с кодом PRICE) — это обычное свойство, то выводить его в любом удобном вам виде. Посетителям сайта необходимо давать возможность выведенные товары положить в корзину и впоследствии оформить заказ. Тут и приходит время работы нашего модуля.

В шаблоне компонента вывода товара(ов) необходимо разместить кнопку купить со ссылкой. Ссылка должна вести на страницу, например, скрипт addtocart.php в корне сайта, где размещен компонент добавления в корзину, и содержать ИД товара и количество, добавляемое в корзину (если не указано, то по умолчанию 1).

На примере шаблона bitrix:news.list. Ссылка размещается внутри цикла: foreach($arResult["ITEMS"] as $arItem) :, и выглядит следующим образом: <a href="/addtocart.php?id=&q=1" rel="nofollow">Купить</a>

Содержание файла addtocart.php:

$APPLICATION->IncludeComponent(
   "scoder:sale.addtobasket",
   "",
   Array(
      "PRODUCT_ID" => $_REQUEST['id'],            //ИД товара
      "QUANTITY" => $_REQUEST['q'],            //Количество
      "URL_CART" => "/cart/"                //Адрес страницы корзины
   )
);

Остается только разместить компоненты корзины и оформления заказа на нужных вам страницах.

Корзина размещение компонента.jpg

Корзина, например, страница /cart/:

$APPLICATION->IncludeComponent(
   "scoder:sale.basket",
   "",
   Array(
      "ORDER_URL" => "/order/"         // Адрес страницы оформления заказа
   )
);

Если все верно сделано, то после добавления товаров в корзину, она будет выглядеть так:

Корзина.jpg

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

Оформление заказа, например, страница /order/:

$APPLICATION->IncludeComponent(
   "scoder:sale.order",
   "",
   Array(
      "B_IBLOCK_ID" => "7",                  //ИД инфоблока с заказами
   )
);

ИД инфоблока с заказами нужно создать вручную с обязательными свойствами, которые тоже нужно создать вручную. Свойства должны иметь символьный код:

  • FULL_NAME - ФИО
  • EMAIL - Email
  • PHONE - Телефон
  • ADDRESS - Адрес
  • PRICE - Сумма
  • ITEMS - Состав заказа

Заказ.jpg

На этом основные настройки завершены. Кроме всего этого, после оформления заказа срабатывает почтовое событие «Новый заказ» (SCODER_SALE_NEW_ORDER). Почтовые шаблоны данного типа почтового события можно редактировать на свой лад. В нем доступны такие макросы:

   #ORDER_ID# - Номер заказа

   #FULL_NAME# - ФИО

   #EMAIL# - E-Mail покупателя

   #PHONE# - Телефон покупателя

   #ADDRESS# - Адрес доставки

   #PRICE# - Сумма

   #ITEMS# - Состав заказа

   #DATE# - Дата заказа

Подробнее в документации: работа с почтовыми шаблонами.