Автор Тема: Отметить заказ как оплаченный  (Прочитано 1979 раз)

22 Январь 2015, 16:19:59
Ответ #30
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Cоздание интернет сайтов Webstudio UwK
22 Январь 2015, 19:30:57
Ответ #31
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для этого всего я создал модуль "payment", добавил в него хуки: DisplayPaymentEU, ReturnPayment, Payment. Из конструктора  вызываю метод validateOrder объекта $this и всё равно ошибка. В чём проблема ? В ошибке пишет, что такого метода не существует. Как добавить доступ к этому методу ?
23 Январь 2015, 09:19:03
Ответ #32
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
23 Январь 2015, 11:30:21
Ответ #33
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Прежде чем вызывать метод validateOrder, нужно создать экземпляр класса (инстанцию) PaymentModule. Если метод не определяется, значит вы этого не сделали. Код какой, прикрепите пример?
23 Январь 2015, 14:06:47
Ответ #34
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Нет, это integer. Это не объект.
Я не правльно выразил свою мысль, это указатель на реальный объект, т.е. такая корзина должна быть, вы не можете передать произвольный номер. Из этого объекта будут извлечены товары. Иначе будет возврат ошибки определения объекта cart.

Для этого всего я создал модуль "payment", добавил в него хуки: DisplayPaymentEU, ReturnPayment, Payment. Из конструктора  вызываю метод validateOrder объекта $this и всё равно ошибка. В чём проблема ? В ошибке пишет, что такого метода не существует. Как добавить доступ к этому методу ?
Вы вызываете этот метод в конструкторе своего класса? Лучше бы вам приложить код модуля полностью.
 
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
24 Январь 2015, 20:10:47
Ответ #35
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я понимаю, что нельзя дать произвольный ID, передаётся ID корзины именно этого пользователя. Сейчас скину код.
24 Январь 2015, 20:13:04
Ответ #36
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот код
public function initContent()
{
    parent::initContent();

//Задаём список продуктов
self::$products = $this->context->cart->getProducts();

$cities = NP::getCities();
array_unshift($cities, array('id'=>0, 'name' => 'Не выбрано'));

$this->context->smarty->assign(array(
     'payment_name' => Configuration::get('MOD_ATUTORIAL_NAME'),
      'payment_color' => Configuration::get('MOD_ATUTORIAL_COLOR'),
  'products' => self::$products,
  'total_cart' => $this->context->cart->getOrderTotal(),
  'default_currency' => Currency::getDefaultCurrency(),
  'cities' => $cities,
  'weight' => $this->context->cart->getTotalWeight(),
  'paymentForms' => NP::getPaymentForms(),
  'id_cart' => $this->context->cart->id
    ));

if(
isset($_REQUEST['addCounterparty']) &&
isset($_REQUEST['city']) &&
isset($_REQUEST['streets']) &&
isset($_REQUEST['HomeNumber']) &&
isset($_REQUEST['Flat']) &&
isset($_REQUEST['LastName']) &&
isset($_REQUEST['MiddleName']) &&
isset($_REQUEST['FirstName']) &&
isset($_REQUEST['tel']) //&&
//isset($_REQUEST['cost']) &&
//isset($_REQUEST['weight'])
)
{
/* ПРОВЕРКА ДАННЫХ */
global $cookie;
$cart = $this->context->cart;
$_REQUEST['cost'] = $cart->getOrderTotal();
$NP = new NP();
$Sender = NP::addCounterparty('Ирина','Николаевна', 'Деньгина' , '0675234133', 'db5c88f0-391c-11dd-90d9-001a92567626', 'Sender');
$NP->Sender = $Sender['CounterpartyRef'];
$NP->ContactSender = $Sender['ContactRef'];
$Recipient = NP::addCounterparty($_REQUEST['FirstName'], $_REQUEST['MiddleName'], $_REQUEST['LastName'], $_REQUEST['tel'], $_REQUEST['city'], 'Recipient');
$NP->Recipient = $Recipient['CounterpartyRef'];
$NP->ContactRecipient = $Recipient['ContactRef'];
$NP->RecipientAddress = NP::saveAddress($NP->Recipient, $_REQUEST['streets'], $_REQUEST['HomeNumber'], $_REQUEST['Flat']);
$NP->SenderAddress = NP::saveAddress($NP->Sender, 'e57e14fe-d532-11de-8cc8-000c2965ae0e', 3,4);
$data = array(
'PayerType' => 'Sender',
'PaymentMethod' => 'Cash',
'DateTime' => date('d.m.Y', time() + 86400),
'CargoType' => 'Cargo',
'VolumeGeneral' => '0.15',// Объём м. куб
'Weight' => $_REQUEST['weight'],
'ServiceType' => 'WarehouseWarehouse',
'SeatsAmount' => 1 ,//кол-во мест
'Description' => 'Аксессуары к одежде',
'Cost' => $_REQUEST['cost'],
'CitySender' => NP::$citySender,
'SendersPhone' => '+380675234133',
'CityRecipient' => $_REQUEST['city'],
'RecipientsPhone' => $_REQUEST['tel'],
'Warehouse' => $_REQUEST['warehouses']
);
$NP->saveInternetDocument($data);
//$payment = new MyPayment();
$state = OrderState::getOrderStates($cookie->id_lang);
$cart = $_REQUEST['id_cart'];
$p = $this->module->validateOrder((int)$cart, $state[0]['id_order_state'] ,(int) $_REQUEST['cost'], 'payment', NULL, array(), null, FALSE, Context::getContext()->customer->secure_key);
}
    $this->setTemplate('order.tpl');
}