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

19 Январь 2015, 15:12:55
Ответ #15
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет, это integer. Это не объект.
19 Январь 2015, 15:22:15
Ответ #16
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
* @param integer $id_cart
Вот смотрите, это написано в описании к функции. Это не объект, это int.
19 Январь 2015, 16:50:00
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Заказ в админке создают так:
<?php
class MyPayment extends PaymentModule
{
}

$context Context::getContext();
if (!
Validate::isLoadedObject($context->cart))
$errors[] = 'Cart not found';
/* инициализвция клента */
$customer = new Customer();
....
$customer->add();

/* инициализвция адреса */
$address = new Address();
....
$address->save();
...
$cart->update();
$total $cart->getOrderTotal(trueCart::BOTH);
$order = new MyPayment();
$order->validateOrder((int)$cart->idConfiguration::get('PS_OS_MYPAYMENT'), $total'MyPayment'null, array(), nullfalse, ($cart->secure_key $cart->secure_key false));
19 Январь 2015, 17:14:17
Ответ #18
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В метод validateOrder передается id cart. Сам объект инициализируется в этом методе
<?php
/**
 * Validate an order in database
 * Function called from a payment module
 *
 * @param integer $id_cart
 * @param integer $id_order_state
 * @param float   $amount_paid    Amount really paid by customer (in the default currency)
 * @param string  $payment_method Payment method (eg. 'Credit card')
 * @param null    $message        Message to attach to order
 * @param array   $extra_vars
 * @param null    $currency_special
 * @param bool    $dont_touch_amount
 * @param bool    $secure_key
 * @param Shop    $shop
 *
 * @return bool
 * @throws PrestaShopException
 */
public function validateOrder($id_cart$id_order_state$amount_paid$payment_method 'Unknown',
$message null$extra_vars = array(), $currency_special null$dont_touch_amount false,
$secure_key falseShop $shop null)
{
        
$this->context->cart = new Cart($id_cart);
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
22 Январь 2015, 14:26:49
Ответ #19
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не поверишь, точно так же делаю и ничего не добавляет. :-\
22 Январь 2015, 14:33:04
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Включите показ ошибок, должно показать причину отказа.
22 Январь 2015, 14:40:31
Ответ #21
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
22 Январь 2015, 14:43:22
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибки показывает?
В логах что сохранено?
22 Январь 2015, 14:56:44
Ответ #23
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В логах ничего.А выводит вот что:
Array
(
    [0] => Array
        (
            [file] => N:\home\presta2\www\classes\PaymentModule.php
            [line] => 180
            [function] => displayError
            [class] => ToolsCore
            [type] => ::
            [args] => Array
                (
                )

        )

    [1] => Array
        (
            [file] => N:\home\presta2\www\modules\payment\controllers\front\order.php
            [line] => 161
            [function] => validateOrder
            [class] => PaymentModuleCore
            [object] => paymentA Object
                (
                    [currentOrder] =>
                    [currencies] => 1
                    [currencies_mode] => checkbox
                    [id] =>
                    [version] =>
                    [database_version] =>
                    [registered_version] =>
                    [ps_versions_compliancy] => Array
                        (
                            [min] => 1.4.0.0
                            [max] => 1.6.0.9
                        )

                    [dependencies] => Array
                        (
                        )

                    [name] =>
                    [displayName] =>
                    [description] =>
                    [author] =>
                    [module_key] =>
                    [description_full] =>
                    [additional_description] =>
                    [compatibility] =>
                    [nb_rates] =>
                    [avg_rate] =>
                    [badges] =>
                    [need_instance] => 1
                    [tab] =>
                    [active] =>
                    [trusted] =>
                    [warning] =>
                    [enable_device] => 7
                    [limited_countries] => Array
                        (
                        )

                    [controllers] => Array
                        (
                        )

                    [_lang:protected] => Array
                        (
                        )

                    [_path:protected] =>
                    [local_path:protected] =>
                    [_errors:protected] => Array
                        (
                        )

                    [_confirmations:protected] => Array
                        (
                        )

                    [table:protected] => module
                    [identifier:protected] => id_module
                    [context:protected] => Context Object
                        (
                            [cart] => Cart Object
                                (
                                    [id] => 8
                                    [id_shop_group] => 1
                                    [id_shop] => 1
                                    [id_address_delivery] => 0
                                    [id_address_invoice] => 0
                                    [id_currency] => 1
                                    [id_customer] => 2
                                    [id_guest] => 3
                                    [id_lang] => 1
                                    [recyclable] => 0
                                    [gift] => 0
                                    [gift_message] =>
                                    [mobile_theme] => 0
                                    [date_add] => 2015-01-10 17:42:46
                                    [secure_key] => 207fc5032e962943acacad81366aab19
                                    [id_carrier] => 0
                                    [date_upd] => 2015-01-22 13:55:33
                                    [checkedTos] =>
                                    [pictures] =>
                                    [textFields] =>
                                    [delivery_option] =>
                                    [allow_seperated_package] => 0
                                    [_products:protected] =>
                                    [_taxCalculationMethod:protected] => 0
                                    [webserviceParameters:protected] => Array
                                        (
                                            [fields] => Array
                                                (
                                                    [id_address_delivery] => Array
                                                        (
                                                            [xlink_resource] => addresses
                                                        )

                                                    [id_address_invoice] => Array
                                                        (
                                                            [xlink_resource] => addresses
                                                        )

                                                    [id_currency] => Array
                                                        (
                                                            [xlink_resource] => currencies
                                                        )

                                                    [id_customer] => Array
                                                        (
                                                            [xlink_resource] => customers
                                                        )

                                                    [id_guest] => Array
                                                        (
                                                            [xlink_resource] => guests
                                                        )

                                                    [id_lang] => Array
                                                        (
                                                            [xlink_resource] => languages
                                                        )

                                                )

                                            [associations] => Array
                                                (
                                                    [cart_rows] => Array
                                                        (
                                                            [resource] => cart_rows
                                                            [virtual_entity] => 1
                                                            [fields] => Array
                                                                (
                                                                    [id_product] => Array
                                                                        (
                                                                            [required] => 1
                                                                            [xlink_resource] => products
                                                                        )

                                                                    [id_product_attribute] => Array
                                                                        (
                                                                            [required] => 1
                                                                            [xlink_resource] => combinations
                                                                        )

                                                                    [id_address_delivery] => Array
                                                                        (
                                                                            [required] => 1
                                                                            [xlink_resource] => addresses
                                                                        )

                                                                    [quantity] => Array
                                                                        (
                                                                            [required] => 1
                                                                        )

                                                                )

                                                        )

                                                )

                                        )

                                    [id_shop_list] =>
                                    [get_shop_from_context:protected] => 1
                                    [table:protected] => cart
                                    [identifier:protected] => id_cart
                                    [fieldsRequired:protected] => Array
                                        (
                                            [0] => id_currency
                                            [1] => id_lang
                                        )

                                    [fieldsSize:protected] => Array
                                        (
                                            [secure_key] => 32
                                        )

                                    [fieldsValidate:protected] => Array
                                        (
                                            [id_shop_group] => isUnsignedId
                                            [id_shop] => isUnsignedId
                                            [id_address_delivery] => isUnsignedId
                                            [id_address_invoice] => isUnsignedId
                                            [id_carrier] => isUnsignedId
                                            [id_currency] => isUnsignedId
                                            [id_customer] => isUnsignedId
                                            [id_guest] => isUnsignedId
           
..........................
22 Январь 2015, 15:03:46
Ответ #24
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
При включении режима отладки, при создании заказа, в лог записывается иформация и высылается email админу.
public function validateOrder
....
if (self::DEBUG_MODE)
PrestaShopLogger::addLog('PaymentModule::validateOrder - Function called', 1, null, 'Cart', (int)$id_cart, true);
Проверьте лог в админке в Расширенные параметры > Журнал событий.
 
22 Январь 2015, 15:28:11
Ответ #25
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А, нет. Вот нашёл:
PaymentModule::validateOrder - Module is not active
Как его активировать ? Вообще не понимаю почему дочерный класс PaymentModule вообще должен быть как модуль.
22 Январь 2015, 15:31:04
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Скорее всего, это ваш модуль не активирован.
22 Январь 2015, 15:44:36
Ответ #27
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это даже не модуль, а просто класс "MyPayment". Как его активировать ?
22 Январь 2015, 15:56:15
Ответ #28
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
То что вы делаете, называется модуль. Фактически это модуль оплаты. У вас свой класс в модуле. Нужно соблюдать все правила по созданию модулей для prestashop.
Если вам не нужен модуль, то используйте базовые классы и контроллеры, хотя это плохая идея. С модулем лучше.
22 Январь 2015, 16:02:31
Ответ #29
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я всё равно не пойму как его активировать. Я его создаю в файле order.php своего модуля payment. Насколько я знаю, у каждого модуля должна быть директория.