Интернет-магазин на Drupal 8

Аватар пользователя filinkov.ru filinkov.ru 6 ноября 2017 в 22:28

Спустя 8 месяцев разработки рад представить любителям платформы Drupal 8 конфигурацию интернет-магазина SiteCommerce — это не Ubercart или Drupal Commerce. SiteCommerce — новый модуль, который позволит быстро и легко создать интернет-магазин с минимальными настройками.

Демо-версия http://sc.filinkov.ru/

Описание конфигурации

0 Thanks

Комментарии

Аватар пользователя ХулиGUN ХулиGUN 6 ноября 2017 в 23:22

Это, конечно здорово, но есть вопросы
1. Доставка
2. Корзина(на демке, странное поведение - попал в неё всего 1 раз, даже сам не знаю как)
3. Поддержка склада
4. Воркфлоу самого заказа (корзина-> подтверждение->оплата->доставка )

Аватар пользователя filinkov.ru filinkov.ru 6 ноября 2017 в 23:39

Это все будет. Сейчас конфигурация развивается под конкретных заказчиков. Поведение корзины это отдельная тема. Есть возможность для каждого товара отдельно задавать поведение при нажатии добавить в корзину. Доступны три варианты: отображать сразу форму быстрого заказа, классический переход в корзину и форма заказа (полноценная с адресом доставки). Так же, что не мало важно, настройки карточки товара позволяют адаптировать ее как для товаров, так и для услуг, причем можно конфигурировать названия кнопок заказа и описание над формой заказа. Поддержка склада - это следующий этап развития, для большинства моих клиентов склад не нужен, но уже сейчас конфигурация развивается в сторону поддержки склада и кабинета приема и обработки заказов (делается для одной сети автозапчастей). С введением онлайн касс усложнился процесс интеграции. Сейчас решается вопрос по интеграции с Яндекс.Касской.

Корзина не идеальная, будет еще доработана отображением товара и ссылками на карточку товара.

Данное решение подойдет не каждому. Но как и 7 версия уверен найдет своего потребителя.

Есть возможность реализации параметров товаров, пока в виде таблицы (скриншот во вложении).

Реализации параметров товара

Аватар пользователя ХулиGUN ХулиGUN 7 ноября 2017 в 0:14

Чуть позже гляну кодовую базу. Единственное, что если уж предлагаете решение, не лучше ли было бы оформить в инсталяционный профиль?

Аватар пользователя filinkov.ru filinkov.ru 7 ноября 2017 в 10:47

Спасибо! Ошибку с корзиной исправил. Это даже не ошибка, а особенность работы кэширования модуля Internal Page Cache, который для интернет-магазинов необходимо отключать если требуется взаимодействие с пользователем. Это официальные рекомендации описанные тут https://www.drupal.org/docs/8/administering-drupal-8-site/internal-page-... (Websites that serve personalized content to anonymous users (dynamic, per-session, e.g. a shopping cart) will want to disable the Internal Page Cache module.)

Аватар пользователя mbaev mbaev 7 ноября 2017 в 18:11

Спасибо. Ваша работа достойна уважения!
Продолжайте, будем следить.

Аватар пользователя sas@drupal.org sas@drupal.org 8 ноября 2017 в 7:27

@todo
- Каталог товаров с умными фильрами
- Доставка
- Оплата
- Добавить в корзину из списка товаров, а не только со страницы товара
- Сделать добавление в козину ajax
- Сделать корзину ajax

P.S. Проблемы с кешем видимо продолжаются ...
- Добавил товар в корзину отправил заказ,
- потом еще раз добавл - на странице товара пишет уже есть в корзине,
- в корзине пусто - пишет добавьте товар!
s

Аватар пользователя vbard vbard 8 ноября 2017 в 16:01

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

Аватар пользователя godson godson 24 января 2018 в 12:15

Пишет The website encountered an unexpected error. Please try again later.
А что такое профиль инсталляцилнный?

Аватар пользователя godson godson 24 января 2018 в 12:22

Файлы закинул на сайт. Базу данных импортировал, данные базы данных в конфиге сайта поменял... Что еще не сделал? Попытался файлы папки site поменять доступ по аналогии с прошлым сайтом... но толку мало :(

Аватар пользователя sas@drupal.org sas@drupal.org 24 января 2018 в 12:27

- развернуть базу
- убить файл sites/default/settings.php
- скопировать sites/default/settings.default.php в sites/default/settings.php
- install.php , выбрать базу куда развернулись, скажет - ok ob

Аватар пользователя godson godson 24 января 2018 в 12:46

Че-то не получается, инсталляция прошла как положено, базу подсунул - он сказал, что сайт уже установлен... а щелкаешь по главной - белая страница :(

Аватар пользователя godson godson 25 января 2018 в 2:21

Я в этом плохо понимаю:
PHP Fatal error: Default value for parameters with a class type hint can only be NULL in home/site.ru/public_html/modules/custom/kvantstudio/modules/site_commerce/src/Controller/SiteCommerceDatabaseController.php on line 44, referer: http://site.ru/user/login

Аватар пользователя usl usl 10 апреля 2018 в 22:33

{% for tid, data in terms %}
<.li><.a href="{{ path('entity.taxonomy_term.canonical', {'taxonomy_term': tid}) }}">{{ data.name }}<./li>
{% endfor %}

А как вывести, и под категории товаров в меню?

Аватар пользователя filinkov.ru filinkov.ru 11 апреля 2018 в 16:22
1

Для этого нужно в теме оформления в hook_preprocess_page() модифицировать функцию загрузки категорий

<?php
  
// Каталог первого уровня для меню.
  
$terms = \Drupal::service('entity_type.manager')->getStorage("taxonomy_term")->loadTree('site_commerce'01TRUE);
  
$variables['terms'] = [];
  foreach (
$terms as $term) {
    
// Кол-во товаров в категориии.
    
$count_products = \Drupal::service('site_commerce.database')->countProducts(1$term->id());

    

// Перечень корневых категорий.
    
$variables['terms'][$term->id()]['name'] = $term->getName() . ' (' $count_products ')';

    

// Перечень дочерних категорий.
    
$children_terms = \Drupal::service('entity_type.manager')->getStorage("taxonomy_term")->loadTree('site_commerce'$term->id(), 1TRUE);
    foreach (
$children_terms as $children_term) {
      
// Перечень дочерних категорий.
      
$variables['terms'][$term->id()]['children'][$children_term->id()]['name'] = $children_term->getName();
    }
  }
?>

А в шаблоне вывести, что то типа:

{% for tid, data in terms %}
    <a class="dropdown-item" href="{{ path('entity.taxonomy_term.canonical', {'taxonomy_term': tid}) }}">{{ data.name }}</a>
    {% for ctid, cdata in data.children %}
        <a class="dropdown-item" href="{{ path('entity.taxonomy_term.canonical', {'taxonomy_term': ctid}) }}">{{ cdata.name }}</a>
    {% endfor %}
{% endfor %}
Аватар пользователя filinkov.ru filinkov.ru 11 апреля 2018 в 16:49
3

Доступна для скачивания Конфигурация SiteCommerce-8.x-1.0-beta2.
Основные отличия:

  1. Добавлен профиль установки.
  2. Добавлена новая базовая тема оформления.
  3. Поддержка Bootstrap 4.
  4. Исправлены косяки при работе корзины и отправке заказов.
  5. Добавлен встроенный модуль форматирования писем в HTML. Для использования нужно на странице admin/config/system/mailsystem выбрать средство форматирования – Почтовая программа HTML от filinkov.ru.
  6. Добавлен редактор цен. Доступен по адресу admin/config/kvantstudio/site-commerce/price-editor. Позволяет пока менять быстро цену ОТ, базовую цену и единицу измерения количества. Функционал будет добавляться.
  7. Для отправки заказов необходим запуск Cron. При оформлении заказа он попадает в БД, но сразу не отправляется на почту.
  8. Специальный модуль формирования контактной информации в формате микроразметки. Доступен по ссылке admin/config/kvantstudio/site-offices/organization-settings

Один из последних реальных сайтов на базе нашего модуля магазина https://hc66.ru.

Аватар пользователя usl usl 5 июня 2018 в 17:43

в beta5:

  • в корзине не корректно идет подсчет
  • в прошлой версии работало

  • в "редакторе цен" больше чем 11 строк не сохраняет
  • при рассмотрении товара с дополнительной позицией, при нажатии на выбор, ничего не происходит
  • в прошлой версии работало

а не подскажите, с каждой в будущих версиях как безболезненно переходить на новую версию, с сохранением базы?

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

Аватар пользователя filinkov.ru filinkov.ru 6 июня 2018 в 16:53

Добрый день. Можно более подробно по каждому вопросу: что конкретно не так складывается в корзине, что значит не сохраняется более 11 строк. По поводу дополнительных позиций товаров имеется ввиду параметры товара?

Аватар пользователя digital_sword digital_sword 1 сентября 2018 в 11:40

Здравствуйте!
Возможны ли в карточке товара, при использовании модуля, опции?
Например, товар "Орехи", и в нем упаковка 100гр с фото - 100руб, 500гр 500 (тоже с фото), 100гр - 1000?

Аватар пользователя filinkov.ru filinkov.ru 1 сентября 2018 в 17:04

Не могу найти кнопку редактирования поста, так бы поправил. А вообще С 01.09.2018 г. открыта новое направление разработки модуля. Все исходные файлы доступны в репозитории на github — https://github.com/kvantstudio.

Установка выполняется через composer https://filinkov.ru/ustanovka-internet-magazina-sitecommerce-cerez-composer

Аватар пользователя ivnish ivnish 1 сентября 2018 в 18:45

На редактирование постов есть временнОе ограничение.

Github и composer - это отлично, спасибо

Аватар пользователя Blinks44 Blinks44 5 сентября 2018 в 16:35

Приветствую! Не подскажете, можно ли SiteCommerce внедрить в уже существующую тему и если да, то сделать это можно только через composer? Заранее спасибо.

Аватар пользователя filinkov.ru filinkov.ru 5 сентября 2018 в 17:38

В настоящее время привязка к bootstrap в шаблонах убрана, поэтому можно внедрить на любой готовый сайт. Установка через composer не обязательно, но надо правильно загрузить тогда все библиотеки. Хотя в этом нет смысла так как установка через composer полностью автоматическая и нет никаких проблем ее запустить, хотя бы на локальной версии сайта, а потом все залить на сервер. Есть ряд специальных twig функций. Например, для вывода корневого каталога — {{ getCatalog() }}.

Аватар пользователя Paradruper Paradruper 10 января в 18:20

Здравствуйте!
Мы научились делать сайты на друпале и теперь хотели бы интернет-магазин.
Но требуется хорошая интеграция с 1С-Предприятие 8.3.:
1) по товарам, 2) по остаткам товаров, 3) по резервированию заказа, 4) по подтверждению оплаты.
5) Кроме того, нам требуется составлять заказы в штуках и упаковках.

Скажите пожалуйста, решаются ли эти вопросы данным модулем? Как ознакомиться?

Аватар пользователя filinkov.ru filinkov.ru 10 января в 20:48

Добрый день. Во-первых у данного модуля планируется в 1-2 квартале 2019 интеграция с модулем media и отказ от использования обычных полей с файлами. Во-вторых возможна любая интеграция при написании модуля прослойки под вашу структуру. В третьих даже при существующей подсистеме импорта из xls работает интеграция с 1С (но она будет улучшаться).

Показать структуру файла прямо сейчас не смогу. Фактически есть 2 файла xls один со структурой каталога, второй с товарами. Любой программист 1С сформирует его легко из базы 1С. Далее такие файлы могут автоматом выгружаться на сервер по FTP и уже средствами сайта по крону происходит импорт товаров и изменения в каталоге в фоновом режиме.

Подписывайтесь на мой канал https://www.youtube.com/user/kvantstudio, планирую сделать подробный видеокурс по настройке конфигурации с нуля.