Автор Тема: Модуль оплаты: как получить список товаров в redirect.php  (Прочитано 1210 раз)

07 Сентябрь 2016, 17:02:40
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, при написании модуля оплаты, для одного из банков, перед редиректом требуется сформировать список товаров корзины. Как я понимаю, нужно это делать через вызов: Order::getOrderByCartId($myCart->id)

и уже по order_number получить этот список?
07 Сентябрь 2016, 17:12:32
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
07 Сентябрь 2016, 17:14:02
Ответ #2
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, его нужно передать банку при редиректе.
07 Сентябрь 2016, 17:15:34
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
07 Сентябрь 2016, 17:21:40
Ответ #4
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, попробую, выходит я не там копал :)
08 Сентябрь 2016, 23:42:42
Ответ #5
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ничего не вышло, при вызове:
$zzz = $this->$context->cart->getProducts(); //$context->cart->getProducts(); // Configuration::get('PS_SHOP_NAME')

$this->context->smarty->assign(array(
            'currency'     => 'RUP',
            'order'        => $order_number.'-'.uniqid(),
            'amount'       => $amount_rup,
            'details'     => "$details",
            'ext_details'  => "$fio",
            'merchant'     => htmlentities(Tools::getValue('apb_id', $this->module->apbonline_merchant_id), ENT_COMPAT, 'UTF-8'),
            'return_url'   => $success_url,
            'server_url'   => $server_url,
            'All_Products' => "0JLQsNGI0Lgg0LfQsNC60LDQt9GL",
            'SignatureValue' =>  $zzz
));

// var_dump($zzz);
$this->setTemplate('redirect.tpl');
...похоже происходит исключение, не понятно как такое отлаживать, что за ошибка, где...  :(
09 Сентябрь 2016, 10:40:47
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
$cart = $this->context->cart;
$this->context->smarty->assign(array(
'nbProducts' => $cart->nbProducts(),
В шаблоне вывести {nbProducts}. Показывает число товаров в корзине?
10 Сентябрь 2016, 11:17:41
Ответ #7
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, количество показывает. Этот обьёкт и есть список товаров, нужно его через foreach перебрать?
10 Сентябрь 2016, 11:49:00
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
nbProducts - число товаров в корзине, которое определяется по количеству.

Массив товаров возвращает getProducts
foreach ($cart->getProducts() as $product)
{
        return $product['id_product'];
}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Сентябрь 2016, 12:05:45
Ответ #9
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, но тут я получаю список идентификаторов товаров, тогда получается, нужно по ним вытаскивать и остальные поля. Я посмотрел исходники ф-ии getProducts, там нет необходимого, вероятно есть ф-ии для получения остальных полей товара?
10 Сентябрь 2016, 12:17:01
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Не только id, там есть и другая информация.
Вывод массива можете сделать, чтобы посмотреть что в нем
{$products|var_dump}Если нужно больше информации, то для каждого товара
new Product($product['id_product'])
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Сентябрь 2016, 12:34:33
Ответ #11
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо большое, то что надо.
А не подскажите, как вытащить наименование текущего магазина?
10 Сентябрь 2016, 12:39:10
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Сентябрь 2016, 12:51:14
Ответ #13
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
И снова спасибо, впервые встречаю такую отзывчивость, самые злые на форуме битриха, самые приятные в общении тут! :)