[РЕШЕНО] Как бы сделали Вы логику цен в Drupal Commerce на моей задаче?

Главные вкладки

Аватар пользователя andreystrelkov andreystrelkov 30 марта 2013 в 17:34

Здравствуйте, суть такова.
Сайт совместных покупок, на коммерце.
У сайт есть один тип продукта, в котором есть стандартное поле цены - ядровое/движковое (в котором хранится цена оптового продавца) и дополнительное созданное мною. Оно служит для хранения цены с процентом организатора покупок. Обычно 13%
Т.е. если первое содержит 100руб то второе 113руб

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

Теперь я в задумьях как сделать чтобы выводилась вторая цена, лезть в код модуля и менять что выводится там
либо менять логику - а именно считать что ядровая/движковая цена - это цена организатора, а вторая цена оптового поставщика
Либо вообще не показывать движковый checkout cart contenst а рисовать самому а покупателю показывать только движковую кнопку подтверждения

Комментарии

Аватар пользователя roman-yrv roman-yrv 30 марта 2013 в 18:39

Я думаю, что-то подправлять в модуле - нехорошо. Возникнет необходимость провести обновление модулей - вот и всё, исправления исчезнут.

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

Например, есть хук hook_node_view_alter или, если эта цена выводится в форме, есть хук hook_form_alter

Аватар пользователя Andruxa Andruxa 30 марта 2013 в 19:24

Товар добавляется в корзину с ядрёной ценой - ну так и поменяйте их местами.

Пусть в доп. филде будет оптовая ценна, а в ядрёном - та, которая нужна для чекаута.

Аватар пользователя andreystrelkov andreystrelkov 31 марта 2013 в 19:35

Большое спасибо за интерес, всё таки сделал по самому простому, цену поменял местами... пришлось правда логику везде менять в рулсах, но всё решено и работает

Теперь другой вопрос встал.
Нужно вьюхой выводить ORDERS, в которой показывать сколько итоговая сумма поставщика, и итоговая сумма организатора

с организатором всё просто, т.к. он теперь ядровый Smile то движок уже сам посчитал сумму и поместил её в Line Items, цену за товар в одном количество и в заказном (quantity)

а вот с поставщиком не так, т.к. это лишь поле дополнительное типом цена. то оно не прописывает в line items и не подсчитывается в зависимости от кол-ва

я попробовал самое просто, это во вьюхе его вывести, и добавить ещё одно поле для вывода типом Math Expressions
в котором перемножил значения поля поставщика с полем количества заказанного... и вот тут меня ждал подстава
т.к. поле цена "корявое" Smile то не так легко над ними проводиться действия
вот что получилось

http://s2.ipicture.ru/uploads/20130331/m57JrMhg.png

Результат первый (он второй справа), ощущение что всё что после запятой он не считает, и тупо отрубает, т.е. не волнуют его понятия десятичные, он с тысячи только считает
в raw же формате (последняя колонка), вроде все цифры чувствует у цены, но странно считает что в копейках, в десятичном разряде - должно быть 3 символа вместо двух

а итоговую сумму вообще странно подсчитал :////

Что можете посоветовать, как правильно подсчитать суммы поставщика, чтобы было также как у организатора