Ubercart Как правильно создать действие после оплаты?Один товар, а код в счет-фактуре у всех разный. шаблон счет-фактуры.

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

Аватар пользователя maxizmail maxizmail 15 июня 2011 в 16:30

Делаю сайт на drupal 6 - копия групон, биглион и т.п.
установил ubercart,uc_lto -для указания времени в течении которого можно купить продукт. Продукт - купон со скидкой,
-Как реализовать , чтобы после того, как пользователь нажал купить, оплатил, ему генерировалась нода с описанием продукта,что он купил, и случайный цифровой код.
-У купившего в профиле эта нода будет всегда доступна
-Только купивший будет иметь доступ к этой ноде
-Ноду впоследствии можно распечатать

Кто существенно поможет в этом проекте, дам рекламу на посещаемом сайте (300-500 чел/сутки)!

Комментарии

Аватар пользователя Xermit Xermit 16 июня 2011 в 2:33

Странно, разве то что ubercart сам на почту вам скидывает после покупки номер вашего заказа по которому купивший может зайти на сайт и авторизоваться автоматически созданным в момент покупки логином/паролем не достаточно?
Кроме того, заказы пользователя отображаются в его профиле итак.
Просто надо зайти в admin/store/ca
и по событию оплатил назначить действие, отобразить пользователю что-то и одновременно послать письмо ему, там же можно и код php выполнить, с помощью которого вы и генерируете цифровой код.

Аватар пользователя maxizmail maxizmail 16 июня 2011 в 12:15

Xermit
Спасибо, что откликнулись!
Как создать действие после оплаты.Как называется событее оплатил?
будет использоваться модуль uc_roboxchange.Приведите подробный пример.
Может Я не правильно вопрос задал.Уточняю - подукт - купон. он один.после покупки у пользователя появляется картинка с индивидуальным кодом,доступна купившему из его профиля всегда, код ДЛЯ НЕГО один и тот же ,но всегда разный для разных купивших.

Аватар пользователя Xermit Xermit 17 июня 2011 в 0:08

Да, я ошибся или не ошибся не знаю.
Видется такая схема:
1) У вас есть товар А, скидка или услуга
2) В этот товар надо каким угодно способом, метод не важен, сохранить метку на тип материала Б
3) ссылка в товаре А на тип материала Б нужна, чтобы при оплате, универсальный механизм вашего магазина узнал по какому типу материала ему надо создать для пользователя этого товара страницу.
То есть, при покупке универсальный механизм создаст новую страницу по типу материала Б, в которую и сохранит ваше уникальное число, и сделает материал доступным только этому пользователю.

формально ничего лишнего вроде как не надо делать так как в ca можно вставить php код как я писал на событие оплаты. Который сделает все что я описал в 3-х пунктах.

Событие, если установлен модуль оплаты, то там будут следующие.

http://imm.io/6w6z

http://imm.io/6w7s

При этом вы будете делать нечто похожее на 'uc node checkout', это модуль.
Суть в том, что этот модуль отображает форму ввода пользователю при заказе товара для ввода некоторых данных, после чего введенные данные он сохранит в виде страницы и в заказе сохранит ссылку на эту страницу. Соответственно я так думаю видеть эту страницу будет только купившей этот товар пользователь в рамках этого заказа. При оплате вам снова надо будет открыть ту ассоциированную с заказом страницу и прописать там в поле уникальное число.

Очень рекомендую к прочтению статью

http://drupaleasy.com/blogs/ultimike/2009/03/event-registration-ubercart

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

Аватар пользователя maxizmail maxizmail 22 июня 2011 в 17:53

Сделал, в итоге, не заморачиваясь так:
После покупки у пользователя в профиль-заказы появляется счет-фактура, который можно распечатать.
Оказывается, можно изменить шаблон вывода данного счета.
sites/all/modules/ubercart/uc_order/templates
Изменил его шаблон .
Вывел имя
краткое описание акции (для типа материалов Product добавил cck поле и в шаблоне вывел его с помощью кода
<?php $fgf = node_load($product->nid);
print_r ($fgf->field_usl[0][value]); ?>
ID заказа - как раз индивидуальный номер.он формируется у меня из номера заказа $product->order_id;
Немного извращенно,но работает как надо и заморотов с действиями после оплаты нет!