Привет.
Я создал собственный action с помощью hook_rules_action_info(), где подсчитал все как мне нужно.
Вызвал the action в рулсах для пересчета цен для commerce line items. Что-то типа shop -> settings -> pricing rules
2) Создать новый action в Rules кастомно, который принимает uid и product_id, а выдает цену с таблицы.
3) Использовать кастомный action в Pricing Rules
Предлагаю такой вариант:
Можно через Rules. Но прийдется и написать кастомный функционал.
Если нужно для каждого клиента задавать скидку на каждый товар, то можно так:
1) Создать кастомную таблицу с полями: uid, product_id, price. И сделать старицу, где визуально можно будет ее заполнять. Можно отдельно, можно привязать таблицу в вьюхам, можно сделать новую вкладку на странице товара и т.п. (это уже не входит в данную тему)
2) Создать новый action в Rules кастомно, который принимает uid и product_id, а выдает цену с таблицы.
Решением для меня стало только добавлять товары в корзину аяксом http://xandeadx.ru/blog/drupal/645.
Сообщение о добавлении в корзину после этого отображалось при перезагрузке страницы.
Решил так:
Отключил стандартный Rules "Display an Add to Cart message".
И немного переделал modulename_add_to_cart_ajax_callback() чтобы показывать сообщение о добавлении товара.
Спасибо.
Да, мой модуль заточен под этот сайт и без знания PHP такой не создать. У меня все никак руки не дойдут его переписать для drupal.org.
Есть модуль http://drupal.org/project/commerce_add_to_cart_extras . Думаю он может тебе как раз пригодиться. Для его использования нужно просто создать views.
как вариант, сделать кастомный код в модуле.
нужно загрузить $line_item товара, а в нем есть поле quantity к-во товаров в корзине.
ну а дальше нужно просто умножить твое поле на к-во и вывести гдето результат в ноде.
во views можно добавить свое поле через views api, или если нужно быстро то ставь модуль views php и все считаешь в поле(лучше написать свою ф-ю и ее вызывать)
А можно в модуле как-то перехватить событие расчета цены и посчитать всё что надо в php-функции?
Мне кажется это будет работать в разы быстрее и тратить меньше памяти, чем куча правил и проверок в Rules.
писать php код в relus не есть хорошо ведь это хранится в базе.
Quote:
Rules по умолчанию не видят все поля сущностей. Для того чтобы работать с каким либо полем(картинкой, описанием и т.п.) нужно сделать проверку что у товара есть это поле.
Conditions->Entity has field->Выбираешь твое поле.
писать php код в relus не есть хорошо ведь это хранится в базе.
ты не сделал condition "Entity has field Field: commerce_product в твоем компоненте. по-этому его и не видно.
В общем можешь написать в личку если не получится чтобы тут не флудить. Потом решение напишем сюда
я сделал все как в показано в видео, и уже было обрадовался, что вот-вот все выйдет и достигну желаемого результата, но в конце, после выбора созданного мною с помощью workflow компонента нужно выбрать селектор данных и в видео выбирают "line-item:commerce-product", а у меня нет такого...
при создании компонента в workflow был выбран Data Type -> Commerce Product.
Rules по умолчанию не видят все поля сущностей. Для того чтобы работать с каким либо полем(картинкой, описанием и т.п.) нужно сделать проверку что у товара есть это поле.
Conditions->Entity has field->Выбираешь твое поле.
тогда программно.
создать hook на node presave
в нем изменять значение поля.
1. сделать commerce_product_load
2. изменить значение поля
3. commerce_product_save
Коммерц. Разные цены для разных ролей.
Привет.
Я создал собственный action с помощью hook_rules_action_info(), где подсчитал все как мне нужно.
Вызвал the action в рулсах для пересчета цен для commerce line items. Что-то типа shop -> settings -> pricing rules
Открыт набор на интенсив по основам разработки на Drupal 7
мне кажется, или на картинке действительно Windows 7 на MacBook?
Коммерц. Разные цены для разных ролей.
Коммерц. Разные цены для разных ролей.
Я согласен с 5n00py, если можно отыскать логику, или дать возможность менеджеру менять цены, то все станет проще на много
Коммерц. Разные цены для разных ролей.
Предлагаю такой вариант:
Можно через Rules. Но прийдется и написать кастомный функционал.
Если нужно для каждого клиента задавать скидку на каждый товар, то можно так:
1) Создать кастомную таблицу с полями: uid, product_id, price. И сделать старицу, где визуально можно будет ее заполнять. Можно отдельно, можно привязать таблицу в вьюхам, можно сделать новую вкладку на странице товара и т.п. (это уже не входит в данную тему)
2) Создать новый action в Rules кастомно, который принимает uid и product_id, а выдает цену с таблицы.
Как заставить работать add_groupby (views handler filter) ?
Решил.
Если кто-то столкнется, вот как нужно правильно добавлять SUM чтобы избежать GROUP BY ненужных полей:
Как заставить работать add_groupby (views handler filter) ?
Убрал nid с помощью
<?php
$this->query->pure_distinct = TRUE;
?>
но остальные поля убрать не получается.
Вот мой код:
Как заставить работать add_groupby (views handler filter) ?
+1 у меня тоже эта проблема https://drupal.org/node/1578808#comment-8010961
Drupal Commerce и AJAX - ошибка
Решением для меня стало только добавлять товары в корзину аяксом http://xandeadx.ru/blog/drupal/645.
Сообщение о добавлении в корзину после этого отображалось при перезагрузке страницы.
Решил так:
Отключил стандартный Rules "Display an Add to Cart message".
И немного переделал modulename_add_to_cart_ajax_callback() чтобы показывать сообщение о добавлении товара.
Drupal Commerce и AJAX - ошибка
Вот еще обсуждения на эту тему https://drupal.org/node/1294164.
Говорят, это проблема во Views.
@Сергей, не нашли еще решение?
Drupal Commerce 7. Варианты цены для одного товара. И пример на homepage модуля. Как сделать ?
Спасибо.
Да, мой модуль заточен под этот сайт и без знания PHP такой не создать. У меня все никак руки не дойдут его переписать для drupal.org.
Есть модуль http://drupal.org/project/commerce_add_to_cart_extras . Думаю он может тебе как раз пригодиться. Для его использования нужно просто создать views.
Drupal Commerce 7. Варианты цены для одного товара. И пример на homepage модуля. Как сделать ?
Я писал собственный field_formatter для поля product_reference. Результат можно увидеть на сайте http://atrics.ua/.
http://atrics.ua/product/s-99 или http://atrics.ua/product/kletka-sv-02 .
в форме добавления в корзину я перебираю все комбинации товаров и вывожу в виде таблицы
Как сделать чтобы у Taxonomy menu в выпадающем списке Menu path type появился пункт Custom path? (Drupal 7)
Эта функция уже доступна в альфа версии модуля
DrupalCafé №6 в Харькове - 28.02.2013
Ссылка на доклад "Архитектура Drupal Commerce. Основы работы с Drupal Commerce"
Коммерц. Разные цены для разных ролей.
как вариант, сделать кастомный код в модуле.
нужно загрузить $line_item товара, а в нем есть поле quantity к-во товаров в корзине.
ну а дальше нужно просто умножить твое поле на к-во и вывести гдето результат в ноде.
во views можно добавить свое поле через views api, или если нужно быстро то ставь модуль views php и все считаешь в поле(лучше написать свою ф-ю и ее вызывать)
Коммерц. Разные цены для разных ролей.
Коммерц. Разные цены для разных ролей.
Коммерц. Разные цены для разных ролей.
писать php код в relus не есть хорошо ведь это хранится в базе.
ты не сделал condition "Entity has field Field: commerce_product в твоем компоненте. по-этому его и не видно.
В общем можешь написать в личку если не получится чтобы тут не флудить. Потом решение напишем сюда
Коммерц. Разные цены для разных ролей.
пришли экспорт своего rules
Коммерц. Разные цены для разных ролей.
Решило свою проблему.
В общем я дописал PHP в rules для подсчета суммы в корзине. по другому не получилось.
global $user;
$order = commerce_cart_order_load($user->uid);
if ($order) {
Коммерц. Разные цены для разных ролей.
Rules по умолчанию не видят все поля сущностей. Для того чтобы работать с каким либо полем(картинкой, описанием и т.п.) нужно сделать проверку что у товара есть это поле.
Conditions->Entity has field->Выбираешь твое поле.
Так работают Rules.
Коммерц. Разные цены для разных ролей.
Согласен c 5n00py с exposed filters может возникнуть проблема
Как получить URL уменьшенного изображения в drupal 7
Привет. Вот как можно вывести image style:
Коммерц. Разные цены для разных ролей.
можно было бы и сделать рулесом, только для этого нужно в рулесах создать компонент. Проверять поле ноды в основном Rule, а поле entity в компоненте
Коммерц. Разные цены для разных ролей.
тогда программно.
создать hook на node presave
в нем изменять значение поля.
1. сделать commerce_product_load
2. изменить значение поля
3. commerce_product_save