Автор Тема: Застрял в написании своего модуля.  (Прочитано 2247 раз)

25 Января 2012, 19:02:49
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дело заключается в следующем, я не могу понять как выбранный товар в корзине прошедший все шаги Check out'а включая payment становиться Orderom? т.е. заказом в обработке. Где это в коде модуля PayPal к примеру описано... я на основе этого модуля пишу свой.
25 Января 2012, 21:52:21
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 105578
  • Репутация: +39546/-0
    • Просмотр профиля
    • Webstudio UwK
Не совсем понятно, что вам нужно. Сохранение заказа ?
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
26 Января 2012, 11:55:32
Ответ #2
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Цитата: Виталий
Вот hooks оплаты, может это поможет:
HookFile
paymentorder.php
paymentReturnorder-confirmation.php
orderConfirmationorder-confirmation.php
backBeforePaymentorder.php

При разработке модулей оплаты нужны не только Hooks Payment, но и Hooks Order:
  • newOrder - класс PaymentModule.php
  • paymentConfirm - класс Hook.php
26 Января 2012, 22:31:18
Ответ #3
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
К сожалению я не работал в php с классами. Хотелось бы пойти более простым путем и составить запрос в mysql который выставлял бы статус у товара в корзине оплаченным, в дальнейшем этот товар считался заказом и располагался в my orders. а переменные для этого запроса я буду формировать в своей системе оплаты.
27 Января 2012, 12:07:23
Ответ #4
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Самый простой путь, это использовать возможности, что дает prestashop. В указанных классах определены методы, которые вам нужны. Все что вам нужно, это переопределить методы, в которые хотите добавить нужную вам функциональность.
Цитировать
а переменные для этого запроса я буду формировать в своей системе оплаты.
Переменные уже определены в prestashop,
$id_cart, $id_order_state, $paymentMethod ...вам нужно только вернуть значения переменных.

Чтобы лучше понять механизм работы prestashop, возьмитесь за написание простого модуля. Написание модулей оплаты для prestashop требуют больше знаний.
31 Января 2012, 01:58:29
Ответ #5
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Самый простой путь, это использовать возможности, что дает 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 каждый раз он генерируется, только я не понимаю в каком классе это делается...
31 Января 2012, 14:43:04
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
В папке модуля cashondelivery есть файл validation.php, он и отвечает за вывод данных в шаблоне validation.tpl.
31 Января 2012, 19:40:23
Ответ #7
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
что означает следующий вид записи в tpl файле?
<h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3>
s это переменная?
mod он влияет на что то?
01 Февраля 2012, 01:14:03
Ответ #8
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Цитата: strength00
что означает следующий вид записи в tpl файле?
<h3>{l s='Cash on delivery Payment' mod='cashondelivery'}</h3>
s это переменная?
mod он влияет на что то?
Текст в модуле может быть на разных языках. Если ты хочешь использовать английский и русский, то используй метод l() - класс module.php
Это даст возможность показывать текст, в зависимости от выбранного языка.
s - переменная, содержащая нужный текст
mod - название модуля, которому принадлежит перевод.
01 Февраля 2012, 09:02:56
Ответ #9
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитата: 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???
01 Февраля 2012, 11:12:36
Ответ #10
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
1. Очистить кеш
2. Проверить перевод
3. Проверить этап.
validation.tpl  используется при подтверждении, при выборе метода оплаты другой шаблон.
03 Февраля 2012, 21:33:34
Ответ #11
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1. Очистить кеш
2. Проверить переод
3. Проверить этап.
validation.tpl  используется при подтверждении, при выборе метода оплаты другой шаблон.
ура, заработало)
Виктор, а как можно в переменную допустим temp получить id_customer текущего пользователя?
Буду очень признателен!!!
03 Февраля 2012, 22:44:41
Ответ #12
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
if ($cookie->isLogged()) $temp=$cookie->id_customer;