Quantcast
Channel: Drupal - commerce
Viewing all 344 articles
Browse latest View live

Commerce 2. Пробный старт. Часть 3

$
0
0

Шаг 4. Базовая настройка Commerce

Валюты

Импортируем валюту "Российский рубль"admin/commerce/config/currency/import.
Импорт валюты
Валюты

Магазин

Важным нововведением в Commerce 2стали "Магазины". Как я понял "Магазин" - это подобие мультисайтинга. При помощи одной инсталляции Commerceможно будет создать несколько версий магазинов отличающихся настройками. Например, для разных стран.
Разработчики в своей документации приводят пример создания"Магазина"при помощи Drupal console.
drupal commerce:create:store
Но у меня этот код не заработал. В чем причина мне установить не удалось. В списке команд консоли данная команда отсутствует. Поэтому приступаем к созданию "Магазина"с использованием пользовательского интерфейса.

Создание магазина

admin/commerce/stores
Создание магазина
И коль уж мы создаем магазин, но пора бы уже определиться, что именно мы будем продавать. Дабы не изобретать долго велосипед, будем создавать классический бутик модной одежды. Пусть его кодовое название будет "Бутик".
Создание магазина
Создание магазина
При сохранении пришлось пройти целый квест по угадыванию правильного почтового индекса. Сайт напрочь отказывался принимать индекс 130000в Московской области.
Пришлось немного изучить исходный код и в результате было обнаружено, что Commerceхранит паттерны почтовых индексов России в файле vendor/commerceguys/addressing/resources/subdivision/RU.json.
Например, для Москвы там следующий код:

"gorod Moskva":{
        "local_code":"город Москва",
        "local_name":"Москва",
        "iso_code":"RU-MOW",
        "postal_code_pattern":"1(?:0[1-9]|1|2|3[0-5]|4[0-4])"
},

После недолгих раздумий был выбран регион "город Москва"и почтовый индекс "111100".
Создание магазина

Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Commerce 2. Пробный старт. Часть 4

$
0
0

Шаг 5. Товары

Небольшое отступление

Неожиданно обнаружил, что вышла новая версия Drupal - 8.3.2.
Обновляемся:

composer update drush/drush --with-dependencies
composer update drupal/core --with-dependencies
composer update  --with-dependencies

Отчет о состоянии показал, что необходимо обновить схему базы данных. Обновляем схему:

drush updb
The following updates are pending:

profile module :
  8001 -   Uninstalls the langcode field from the profile entity.

Do you wish to run all pending updates? (y/n): y
Performing profile_update_8001                                                                                                                                                            [ok]
Cache rebuild complete.                                                                                                                                                                   [ok]
Finished performing updates.              

Вроде ничего не сломалось. В журнале нет сведений об ошибках. Продолжаем.

Итак, у нас есть валюта и есть магазин, предназначенный для расчетов в данной валюте. Пора наполнить магазин товарами.
Как утверждает официальная документация Commerce, товары могут одновременно использоваться несколькими магазинами.

Архитектура товара

Все начинается с Типа товара. В магазине может быть множество типов товаров (Автомобили, одежда, космические корабли...), а можно обойтись и одним. Основное назначение Типа товара - предоставить возможность создавать различный по содержанию контент для различных типов товаров.

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

Каждый Тип товараимеет набор характеристик.
Характеристика - это свойство, характеризующее некий товар в целом. Например, "Описание". Представим себе пару туфель. Так вот описание "Удобные летние туфли" - это и есть характеристика"Описание"данного товара.

Но ведь туфли могут быть разного размера и цвета. "Размер"и "Цвет" - это атрибутытовара. Атрибутыпозволяют нам различать различные вариацииодного и того же товара.

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

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

Итак, подведем итог. Создание товара происходит следующим образом:

  1. Создаем Тип товараи наполняем его характеристиками.
  2. Создаем Вариацию товараи наполняем ее Атрибутами.
  3. Связываем Тип товара c Вариацией.
  4. Создаем дополнительные поля для атрибутов, при необходимости
  5. Отображение всех вышеописанных сущностей.
  6. Создаем товары и его вариации

Создание типа товара

Как я уже говорил выше, мы делаем модный бутик, значит, для начала, нам будет достаточно одного вида товара. Так и назовем его "Товар".
Переходим по адресу /admin/commerce/config/product-types"Commerce -> Конфигурация -> Product types"и видим, что Commerceуже создал для нас первый тип товара под названием Default. Переименуем его в Товар
Типы товаров

Создание вариации товара

Переходим по адресу /admin/commerce/config/product-variation-types"Commerce -> Конфигурация -> Product variation types"и видим, что Commerceуже создал для нас вариацию товара под названием Default. Переименуем его в Вариация товара
Вариации товаров

Создание атрибута товара

Создадим первый атрибут товара - "Цвет".
Переходим по адресу /admin/commerce/product-attributes"Commerce -> Product attributes"
Атрибуты товара
Создание атрибута
Создание атрибута
Создание атрибута
Создание атрибута
Создание атрибута
Создание атрибута
Создание атрибута
Создание атрибута

Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Необходимо обновить дизайн сайта на Drupal 7

$
0
0

Доброго времени суток!
Ищем специалиста Drupal для установки и настройки платной темы для сайта на Drupal 7. Основная задача - не меняя функционал сайта обновить его внешний вид. Все модули включая ядро обновлены до последних версий. На сайте также установлены модули E-Commerce, то есть это корпоративный сайт + интернет-магазин.
Ссылка на сайт http://pergament.md/.
То есть, хотим приобрести готовую тему на themeforest и затем ее настроить на готовом сайте. Как вариант рассматриваем эту тему https://themeforest.net/item/hasta-multipurpose-responsive-commerce-theme/13444469
Интересует примерный срок реализации и стоимость подобной работы. Спасибо, жду ваших предложений!

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Как в Commerce 2 организовать работу с product display?

$
0
0

Вопрос больше для тех кто уже пробовал commerce 2!

Подскажите, правильно ли я понял:

Если в D7 можно было иметь один product_display и много разных типов commerce_product, то здесь под каждый product-variation-type с набором атрибутов обязательно свой product-type?

Т.е. если я хочу торговать обувью и брюками (с разным определением размеров), я должен создать: отдельно для брюк product-variation-type + product-type и отдельно для обуви тоже свои?

Как-то неудобно получается. Если подойдёт примерно один и тот же дисплей-product-type, с одинаковым набором полей, то зачем плодить их ещё?

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Drupal Commerce - Как заставить заработать Taxonomy menu с заказами

$
0
0

Заполняя платежную информацию при создании заказа, пользователь выбирает свою страну из списка (справочник таксономии).

Для фильтрации заказов по стране создано меню  Taxonomy menu.

Для справочника указаны следующие настройки:

  • Синхронизировать меню с изменениями в этом словаре
  • Показывать количество элементов
  • Скрывать пустые термины

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

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

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Отображение изображений таксономии во views "кирпичиками"

$
0
0

Drupal Commerce 7
Есть таксономический справочник с категориями товаров. Для каждой категории с справочнике указаны:

  1. Название
  2. Описание
  3. Изображение
  4. Признак "Отображать на главной"

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

Сложностьв том что отображать нужно в нечетных строках по 2 блока на строку, а в четных по одному на всю ширину страницы (см. изображение). Количество отображаемых категорий и их последовательность могут меняться.

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

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

[РЕШЕНО] Выбор термина в entity с помощью rules

$
0
0

Drupal commerce 7
В заказе есть поле с типом "Ссылка на термин". В справочнике 3 значения (RU, EN, CN).

Нужно создать правило которое будет проверять язык контента сайта на момент создания/завершения заказа и выбирать в заказе из списка с возможными языками нужный.

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Почему дублируются заказы в админе? Как исправить?

$
0
0

Чем вызвано, кажется разобрался: количество позиций заказа равно количеству товаров в заказе.
Но как исправить не понимаю, думал может агрегация поможет но она вообще выдает ошибку
Кто сталкивался с подобной проблемой? как решили?
Снимок.PNG

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Как вывести кодом содержимое заказа?

$
0
0

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

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Кто имел опыт загрузки feeds-ом 50к+ товаров в commerce в автоматическом режиме?

$
0
0

Мальчишки и девчонки, кто из вас имел дело с автоматической (по крону) регулярной загрузкой feeds-ом 50к+ товаров в commerce? (например раз в сутки)
Реально ли?
Поделитесь методикой работы по пунктам на словах. Что за чем, какие подводные камни, на что обратить внимание.

Версия Drupal: 
Модули и темы: 
0 Спасибо

Drupal Commerce - Как изменить поведение кнопки Отмена на странице оформления заказа

$
0
0

Опытные коллеги, помогите пожалуйста.

Нужно изменить поведение кнопки "Отмена" (Cancel) на странице оформления заказа (/checkout).

Сейчас нажатие на кнопку Отмена приводит к открытию страницы /cart и показу статусного сообщения "Checkout of your current order has been canceled and may be resumed when you are ready.".

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

Также нужно изменить название этой кнопки с "Cancel"на "Back to Shopping".

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Метод оплаты в Commerce

$
0
0

Здравствуйте.
Помогите подключить метод оплаты платежной системы в Commerce.
Код для интеграции:

<formaction="https://my.pay.com/pay/"method="post"target="_blank">
        <button typo="submit"class="pay_with_pay"><i></i>Оплатить</button>
        <inputtype=”hidden” name=”KEY” value=VALUE/>
        <inputtype=”hidden” name=”KEY” value=VALUE/>
        …
</form>

Для взаимодействия сайта поставщика и интерфейса оплаты необходимо передать следующие параметры c помощью hidden полей.

MNT_ID
MNT_USER_ID
MNT_SERVICE_ID
MNT_TRANS_ID
MNT_TRANS_AMOUNT
MNT_TRANS_NOTE
MNT_USER_PHONE
MNT_USER_EMAIL
SIGN_TIME
SIGN_STRING
MNT_TRANS_NOTE_BASE64

Параметр SIGN_STRING формируется по алгоритму, который приведен ниже:

MD5(SIGN_TIME + SECRET_KEY + MNT_SERVICE_ID + MNT_TRANS_ID + MNT_TRANS_AMOUNT)

Пример формирования MNT_TRANS_NOTE_BASE64 и SIGN_STRING (PHP Код):

<?php<?
$secret = "XXXXX"; //Нужно заменить параметры на полученные
$date = date("Y-m-d h:i:s");
$mntID = 30; //Нужно заменить параметр на полученный ID
$mntUserID = 5; 
$serviceID = 22;  $transID = "user23151";
$transAmount = number_format(1000, 2, '.', '');
$signString = md5 ($date. $secret. $serviceID. $transID. $transAmount);
 //Список товаров из корзины (для интернет-магазинов)
$data = array(
    "foods" => array(
        "0" => array(
            "name" => "Товар 1",
            "count" => 2,
            "price" => 12000
        ),
        "1" => array(
            "name" => "Товар 2",
            "count" => 1,
            "price" => 7000
        )
    ),
    "client" => array(
        "name" => "John Doe",
        "phone" => "9989XYYYYXXYY",
        "address" => "Адрес доставки сюда"
    )
);
$encoded = base64_encode(serialize($data));
$HTML = <<<CODE
<form action="https://my.pay.com/pay/" id=”pay_form” method="post" target="_blank"> 
    <input id=”pay_amount_field” type="hidden" name="MNT_TRANS_AMOUNT" value="$transAmount" class=”pay_input” />
    <input type="hidden" name="MNT_ID" value="$mntID"/>
    <input type="hidden" name="MNT_USER_ID" value="$mntUserID"/>
    <input type="hidden" name="MNT_SERVICE_ID" value="$serviceID"/>
    <input type="hidden" name="MNT_TRANS_ID" value="$transID"/> 
    <input type="hidden" name="MNT_TRANS_NOTE" value="Оплата"/>          
    <input type="hidden" name="MNT_USER_PHONE" value="77777777777"/> 
    <input type="hidden" name="MNT_USER_EMAIL" value="mail@server.com"/> 
    <input type="hidden" name="SIGN_TIME" value="$date"/>
    <input type="hidden" name="SIGN_STRING" value="$signString"/>
    <input type="hidden" name="MNT_TRANS_NOTE_BASE64" value="$encoded"/>
    <button class=”pay_logo"><i></i>Оплатить</button>             
</form>
<div id="pay_button" class="field" style="display: none;">            
    <button typo="submit" class="pay_logo"><i></i>Оплатить</button>
</div>
CODE;
?>

Пример конечного HTML кода:

<formid="pay_form"action="https://my.pay.com/pay/"method="post"target="_blank">   
        <inputid="pay_amount_field"type="hidden"name="MNT_TRANS_AMOUNT"value="1000"class="pay_input"/>
        <inputtype="hidden"name="MNT_ID"value="46"/>
        <inputtype="hidden"name="MNT_USER_ID"value="4"/>
        <inputtype="hidden"name="MNT_SERVICE_ID"value="36"/>
        <inputtype="hidden"name="MNT_TRANS_ID"value="user23151"/>
        <inputtype="hidden"name="MNT_TRANS_NOTE"value="Оплата за услуги"/>
        <inputtype="hidden"name="MNT_USER_PHONE"value="777777777777"/>
        <inputtype="hidden"name="MNT_USER_EMAIL"value="@server.com">mail@server.com"/>
        <inputtype="hidden"name="SIGN_TIME"value="2013-01-25 12:54:36"/>
        <inputtype="hidden"name="SIGN_STRING"value="8bf8051adc7bf25c75e939f04"/>
        <inputtype="hidden"name="MNT_TRANS_NOTE_BASE64"value="JGRhdGEgPSBhcnJheSgNCgkiZm9KA0KCQkiMCIgPT4gYXJyQoJCQkibmFQoJCQkiY291bnQiID0+IDIsDQoJCQkicHJpY2UiID0+IDEyMDAwDQoJCSksDQoJCSIxIiA9PiBhcnJheSgNCgkJCSJuYW1LQvtCy0LDRgSIgPT4gNzAwMA0KCQkpDQoJKQ0KKTs="/>
    <buttonclass="pay_logo"><i></i>Оплатить</button>
</form>
 
<divid="pay_button"class="field"style="display: none;">                     
        <button typo="submit"class="pay_logo"><i></i>Оплатить</button>       
</div>
Тип материала: 
Модули и темы: 
0 Спасибо

Кнопка Add to cart для Views

$
0
0

На Drupal 8 + Commerce 2 создал вьюс. Нету негде в полях кнопки 'Add to cart'.
Почитал статью с рекомендацией создать View Mode для Product (не Variation product) и там скрыть все поля кроме 'Variations'с форматтером 'Add to cart form'. И вытянуть это дело во вьюсе в качестве поля через Rendered Entity.
Ну, кнопка выводится и вместе с ней и картинки, и еще раз тайтл продукта, цены.. Бред, короче.
Кто-то точно уже с этим сталкивался, так что, товарищи, прошу помочь и низкий поклон заранее за отклик)

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

[РЕШЕНО] Пропадает класс кнопки

$
0
0

Использую Commerce и тему Bootstrap. в настройке темы выставлен режим Цветные кнопки. Решил я поменять в кнопке надпись "Add to cart"на "В корзину". В разделе Перевод интерфейса нашел эту английскую фразу и перевел ее на русскую. в итоге у кнопки(тег ) пропал класс, отвечающий как раз за цвет (.btn-success). Не пойму почему он пропал. В переводе интерфейса удаляю этот перевод и класс этот возвращается вместе с цветом кнопки.
Подскажите, почему так происходит и как перевести кнопку чтобы класс (.btn-success) остался?

P.S.: пробовал менять название кнопки через хук, цвет тоже пропадает вместе с классом.

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Повторяются товары на каждой странице Views

$
0
0

При стандартной пагинации, при переходе с одной страницы на другую, повторяются 2 - 3 товара с первых страниц. Все товары уникальны.
Агрегация и дистинкт не помогает. Использовала другие пагинаторы - не помогает

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Добавление подарочного товара из корзины commerce

$
0
0

Добрый день! Пытаюсь разобраться со следущей задачей. Есть сайт пиццерии на drupal 7 commerce. Необходимо во время оформления заказа, добавить возможность выбора бесплатного напитка, при покупке двух пицц. Так же при покупке трех пицц - четвертая бесплатно, с возможностью выбора.

Если есть идеи, буду благодарен!

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Неверная сумма при переходу к оплате картой

$
0
0

Здравствуйте. Настроил магазин, все работает, но при переходе на страницу оплаты банковской карой, сумма оплаты уменьшается в 10 раз (запятая переносится на два знака) при этом в кабинете банка отображается некорректная сумма, а в сообщении о завершении платежа в системе сайта все верно. Помогите, куда копать? Оплата происходит через модуль альфа-банка https://pay.alfabank.ru/ecommerce/

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Drupal Commerce не показывать поля для ввода адреса доставки, если выбран самовывоз

Перевод списка стран на русский.

$
0
0

Начал изучать Drupal 7 + Commerce. Столкнулся с очередной проблемой. На странице оформления заказа, где вводишь свой адрес есть два выпадающих списка: первый - выбор страны, второй - выбор края, области. Так вот все значения выпадающего списка на английском. Как перевести на русский? Подскажите, братья-друпалводы!))

Тип материала: 
Версия Drupal: 
Модули и темы: 
0 Спасибо

Как темизировать карточку товара в Commerce(нюансы)

$
0
0

Здравствуйте. Хочу темизировать карточку товара. Пересмотрел форумы, но одна сложность так и не решилась.
Темизирую в файле: node--product-display.tpl.php. Для поиска полей использую print krumo($content);
И всё бы ни чего, но не могу найти Кнопку "Купить"и окно ввода кол-ва товара. Я понимаю, что они как то иначе выводятся, чем остальные товары. Подскажите, как мне найти этих беглецов?))

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Модули и темы: 
0 Спасибо
Viewing all 344 articles
Browse latest View live