Інтернет-магазини у Drupal 8 — цікава тема для багатьох розробників. Якщо ви — серед них, то вам пощастило: наш Drupal-девелопер написала блог про модуль Commerce 2.x, який ми раді вам запропонувати. Після статей наших розробників про темізацію, створення попапів, побудову модулів у Drupal 8 та багато іншого, ця стаття ідеально доповнить картину. Тож надаємо слово автору.
Drupal Commerce — популярний модуль для створення інтернет-магазинів різної складності, який "з коробки" дозволяє налаштувати магазин з базовим функціоналом. У даній статті представлений короткий огляд Commerce 2.x для Drupal 8.
Встановлення
Перед встановленням переконайтеся, що на вашому сервері встановлено менеджер залежностей Composer. Commerce у восьмій версії Drupal вимагає встановлення бібліотек, які тепер встановлюються не вручну, а за допомогою Composer'а.
Ви можете встановити Drupal, а також Commerce разом із залежними модулями і бібліотеками за допомогою команди:
composer create-project drupalcommerce/project-base mystore --stability dev
Все буде встановлено в папку mystore.
Далі потрібно відкрити сайт в браузері і завершити процес встановлення.
http://mystore/web/core/install.php
Після цього Commerce і залежні модулі та бібліотеки будуть увімкнені.
Якщо ви поглянете на структуру папок, то побачите, що ядро Drupal і модулі знаходяться в папці mystore/web, Drupal Console — в mystore/vendor/bin, Drush — в mystore/drush. Приклад команди для встановлення нових модулів:
composer require "drupal/devel:8.1.x-dev"
Оновлення існуючих модулів:
composer update drupal/address
Якщо вам потрібно встановити Commerce на існуючий сайт, то скористайтеся командою (в корені сайту):
composer config repositories.drupal composer https://packagist.drupal-composer.org
Ця команда знайде Commerce та інші необхідні модулі та бібліотеки.
Встановлення виконується командою:
composer require "drupal/commerce 8.2.x-dev"
Потім потрібно встановити Drupal Console, якщо вона ще не встановлена. Drupal Console — це новий інтерфейс командного рядка для Drupal, який дозволяє генерувати шаблони коду, виконувати debugging та ін.
Встановлення Drupal Console:
curl https://drupalconsole.com/installer -L -o drupal.phar
Команда для встановлення без Curl:
php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar mv drupal.phar /usr/local/bin/drupal chmod +x /usr/local/bin/drupal drupal init --override drupal check
Тепер вмикаємо модулі, використовуючи Drupal Console:
drupal module:install commerce_product commerce_checkout commerce_cart commerce_tax
Після завершення успішного встановлення ви побачите повідомлення:
[OK] The following module(s) were installed successfully: commerce_product, commerce_checkout, commerce_cart, commerce_tax, commerce, address, entity, inline_entity_form, commerce_price, commerce_store, commerce_order, profile, state_machine
Налаштування в адміністративному інтерфейсі
Заходимо на сторінку налаштування Commerce (admin/commerce/config).
1. Валюта
По-перше, потрібно обрати валюту магазину (admin/commerce/config/currency). За замовчуванням список валют порожній (ви побачите напис There is no Currency yet.). Список валют потрібно імпортувати. На сторінці імпорту валют (admin/commerce/config/currency/import) оберемо потрібні.
Валюти зберігаються в бібліотеці, яка вже встановилася разом з модулями. Тепер на сторінці Сurrency ми бачимо список валют.
2. Магазин
Переходимо до створення магазину.
У Commerce 1.x (в Drupal 7) сутності "магазин" не було, а у версії для Drupal 8 ви можете створити кілька магазинів, які можуть відрізнятися валютами, налаштуваннями податків, країнами, в які здійснюється доставка і т.д.
За замовчуванням є один тип магазину — default. Але ви можете створювати свої типи магазинів (на сторінці admin/commerce/config/store-types) і додавати різні поля.
На сторінці admin/commerce/stores натискаємо Add new store.
На цьому кроці конфігуруємо магазин: вказуємо назву, email, країну, валюту та інші налаштування.
3. Товари
Тут треба зазначити відмінність від Drupal Commerce 1.x (для Drupal 7). У Commerce 2.x з'явилися суті (entity) Product і ProductVariation. Product замінює собою product display з Commerce 1.x (тип ноди, яка була пов'язана з товарами). ProductVariation — це аналог Commerce Product. Таким чином, як і в Drupal 7, ми можемо для одного товару (Product entity) створити багато різних (ProductVariation entities). Наприклад, "плаття" — це товар, у якого може бути багато варіантів товару (наприклад, різного розміру і кольорів). Розмір і колір — це атрибути товару. Набір атрибутів товару визначає варіант товару.
3.1 Product Attributes (атрибути товару)
В першу чергу створимо атрибути товару. На сторінці Product Attributes (admin/commerce/product-attributes) додаємо свій атрибут (наприклад, розмір товару) і обираємо значення, які він може приймати. Для прикладу додамо "розмір".
3.2 Product variations
Потім на сторінці Product variation types (admin/commerce/config/product-variation-types) обираємо варіант товару Default (або створюємо свій) і додаємо цей атрибут в варіант.
Варіант товару може містити кілька атрибутів.
Всі атрибути варіанти товару ви знайдете в списку полів (admin/commerce/config/product-variation-types/default/edit/fields)
У нашому прикладі у варіанту Default поки один атрибут — "розмір". Це поле, яке можна змінювати, як і інші поля. Натиснувши кнопку Edit, переходимо в редагування.
Для прикладу встановимо значення за замовчуванням.
При створенні нового типу варіантів товару ви можете використовувати вже створені атрибути.
Варіант товару може містити як різні поля різних типів (текстові, числові ...), так і інші сутності. Додати нове поле можна на сторінці:
admin/commerce/config/product-variation-types/VARIANT_NAME/edit/fields/add-field
3.3 Product
Для створення продукту перейдемо на сторінку admin/commerce/products
Створення нового продукту схоже на створення ноди. Потрібно вказати назву продукту, при необхідності, опис (також у продукту, як і в іншої сутності, можуть бути й інші поля), а далі — створити варіанти товару. При створенні варіантів потрібно вказати SKU, ціну, а також заповнити поля (наприклад, поле "розмір", яке ми створили раніше). У підсумку вийде товар Dress і варіанти цього товару різних розмірів.
Ви можете створювати типи товарів і створювати поля для них на сторінці admin/commerce/config/product-types
Ось так тепер виглядає наш перший товар.
Налаштувати порядок полів і їх відображення можна на сторінці admin/commerce/config/product-types/TYPE_NAME/edit/form-display
Ми зробили базове налаштування інтернет-магазину. Модуль Drupal Commerce 2.x підтримує безліч можливостей для реалізації популярних функцій. Це, наприклад, податки (суб-модуль Tax), можливість налаштування типів замовлень і процесів оформлення замовлень (суб-модуль Workflow), також на момент написання статті ведеться робота над реалізацією функціоналу знижок.
Детальніше про Commerce 2.x ви можете прочитати за наступними посиланнями: