Застрял в написании своего модуля.

Автор strength00, 25 января 2012, 19:02:49

« назад - далее »

strength00

Дело заключается в следующем, я не могу понять как выбранный товар в корзине прошедший все шаги Check out'а включая payment становиться Orderom? т.е. заказом в обработке. Где это в коде модуля PayPal к примеру описано... я на основе этого модуля пишу свой.

Виталий

Не совсем понятно, что вам нужно. Сохранение заказа ?
paypal.php
-----------------------
public function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown',
$message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false,
$secure_key = false)
{
.....
private function _saveTransaction($id_cart, $extraVars)
{
....


Вот hooks оплаты, может это поможет:






HookFile
paymentorder.php
paymentReturnorder-confirmation.php
orderConfirmationorder-confirmation.php
backBeforePaymentorder.php
Cоздание интернет сайтов Webstudio UwK

Виктор Демидов

Цитата: Виталий
Вот hooks оплаты, может это поможет:






HookFile
paymentorder.php
paymentReturnorder-confirmation.php
orderConfirmationorder-confirmation.php
backBeforePaymentorder.php

При разработке модулей оплаты нужны не только Hooks Payment, но и Hooks Order:

  • newOrder - класс PaymentModule.php
  • paymentConfirm - класс Hook.php

strength00

К сожалению я не работал в php с классами. Хотелось бы пойти более простым путем и составить запрос в mysql который выставлял бы статус у товара в корзине оплаченным, в дальнейшем этот товар считался заказом и располагался в my orders. а переменные для этого запроса я буду формировать в своей системе оплаты.

Виктор Демидов

#4
Самый простой путь, это использовать возможности, что дает prestashop. В указанных классах определены методы, которые вам нужны. Все что вам нужно, это переопределить методы, в которые хотите добавить нужную вам функциональность.
Цитироватьа переменные для этого запроса я буду формировать в своей системе оплаты.
Переменные уже определены в prestashop,
$id_cart, $id_order_state, $paymentMethod ...
вам нужно только вернуть значения переменных.

Чтобы лучше понять механизм работы prestashop, возьмитесь за написание простого модуля. Написание модулей оплаты для prestashop требуют больше знаний.

strength00

Цитата: Виктор Демидов от 27 января 2012, 12:07:23
Самый простой путь, это использовать возможности, что дает prestashop. В указанных классах определены методы, которые вам нужны. Все что вам нужно, это переопределить методы, в которые хотите добавить нужную вам функциональность.
Цитироватьа переменные для этого запроса я буду формировать в своей системе оплаты.
Переменные уже определены в prestashop,
$id_cart, $id_order_state, $paymentMethod ...
вам нужно только вернуть значения переменных.

Чтобы лучше понять механизм работы prestashop, возьмитесь за написание простого модуля. Написание модулей оплаты для prestashop требуют больше знаний.
Так я и сделал, решил воспользоваться возможностями которые дает prestashop и выбрал в качестве примера модуль оплаты Cash on delivery (COD) v0.4 by PrestaShop. Мне он понравился особенно тем что я начал понимать как работает движок через классы. Есть вопрос а как формируются tpl файлы? вот к примеру в модуле Cash on delivery (COD) v0.4 by PrestaShop есть validation.tpl каждый раз он генерируется, только я не понимаю в каком классе это делается...

Виктор Демидов

В папке модуля cashondelivery есть файл validation.php, он и отвечает за вывод данных в шаблоне validation.tpl.

strength00

#7
что означает следующий вид записи в tpl файле?
<h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3>
s это переменная?
mod он влияет на что то?

Виктор Демидов

Цитата: strength00
что означает следующий вид записи в tpl файле?
<h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3>
s это переменная?
mod он влияет на что то?
Текст в модуле может быть на разных языках. Если ты хочешь использовать английский и русский, то используй метод l() - класс module.php
Это даст возможность показывать текст, в зависимости от выбранного языка.
s - переменная, содержащая нужный текст
mod - название модуля, которому принадлежит перевод.

strength00

Цитата: Виктор Демидов от 01 февраля 2012, 01:14:03
Цитата: strength00
что означает следующий вид записи в tpl файле?
<h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3>
s это переменная?
mod он влияет на что то?
Текст в модуле может быть на разных языках. Если ты хочешь использовать английский и русский, то используй метод l() - класс module.php
Это даст возможность показывать текст, в зависимости от выбранного языка.
s - переменная, содержащая нужный текст
mod - название модуля, которому принадлежит перевод.
Я так и предполагал, но почему тогда при редактировании validation.tpl строки <h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3> на <h3>{l s='Hello Payment metod' mod='cashondelivery'}</h3> в prestashop все равно отображается как Cash on delivery Payment' mod???

Виктор Демидов

#10
1. Очистить кеш
2. Проверить перевод
3. Проверить этап.
validation.tpl  используется при подтверждении, при выборе метода оплаты другой шаблон.

strength00

Цитата: Виктор Демидов от 01 февраля 2012, 11:12:36
1. Очистить кеш
2. Проверить переод
3. Проверить этап.
validation.tpl  используется при подтверждении, при выборе метода оплаты другой шаблон.
ура, заработало)
Виктор, а как можно в переменную допустим temp получить id_customer текущего пользователя?
Буду очень признателен!!!

Виктор Демидов