Вывод Характеристики Товара В Checkout

Добрый день.

У меня вопрос: как в файле, который отвечет за выбор типа оплаты при чекауте (/dddm/templates/views/checkout/components/steps/step_three.tpl)

можно вывести характеристику товара.

Нужно сделать, чтобы в зависимости от товара юзеру предлагался определенны тип оплаты(не все можно оплатить наличными, например).

Например, если создать характеристику, в котором указать тип оплаты и вывести его {$product.product_features.83.value}, то ничего не выходит

Пробовал в файле checkout.php в функции fn_gather_additional_products_data

добавить 'get_features' => true, не помогло.

Попробуйте такой код:

{$_features = $product|fn_get_product_features_list:'C'}
{$_features|fn_print_r}

Вот такое выводится

Array
(
)

Вот такое выводится

Array
(
)

Попробуйте

'C'

на

'A'

поменять

К сожалению то же самое.

А что должно по идее выводиться?

И какой php-файл передает туда данные?

К сожалению то же самое.

А что должно по идее выводиться?

И какой php-файл передает туда данные?

Должен быть получен список характеристик у данного продукта.

Функция находится в файле app/functions/fn.catalog.php

Спасибо за совет, посмотрел файл app/functions/fn.catalog.php

там есть переменная и у нее параметры. Выглядят они так:

            $_params = array(
                'category_ids' => $path,
                'product_id' => $product_id,
                'product_company_id' => !empty($product_data['company_id']) ? $product_data['company_id'] : 0,
                'statuses' => AREA == 'C' ? array('A') : array('A', 'H'),
                'variants' => true,
                'plain' => false,
                'display_on' => AREA == 'A' ? '' : 'product',
                'existent_only' => (AREA != 'A'),
                'variants_selected_only' => $feature_variants_selected_only
            );

Может туда что добавить? До этого я искал в файле fn.cart.php. Получается, что загвоздка тут fn.catalog.php?

Как вы думаете, из-за чего может выводиться пустой массив (вывожу в файле step_four.tpl) что-то не передается?

{$cart | fn_print_r} не выводит информацию о характеристиках тоже

Удалось в step_three.tpl показать характеристики. Используемый код:

{foreach from=$cart.products item=product}
{$_features = $product|fn_get_product_features_list:'A'}
{$_features|fn_print_r}
{/foreach}

Отлично работает, спасибо!

Это позволит очень круто допилить чекаут, в зависимости от характеристик товара выводить доставку и оплату.

И еще вопрос, можно ли при оформлении заказа менять его статус в зависимости от выбранных юзером параметров в чекауте?

Например, если товар с определенной характеристикой, то у него будет один статус, а если другой, то соответственно другой?

Если не сложно, подскажите пожалуйста, в какую сторону копать.

И еще вопрос, можно ли при оформлении заказа менять его статус в зависимости от выбранных юзером параметров в чекауте?

Например, если товар с определенной характеристикой, то у него будет один статус, а если другой, то соответственно другой?

Если не сложно, подскажите пожалуйста, в какую сторону копать.

А метод оплаты какой - оффлайновый или онлайновый?

Онлайновый

Онлайновый

Тогда это уже изучать надо, как он интегрирован. Статусы проставляются в скрипте платежной системы. Там и надо проверять товары в заказе

Спасибо за ответы.

Получается сложно сделать, чтобы в статусах выводился например, оплата наличными, или оплата безналичными?

Где вообще можно поковырять работу со статусами, не подскажете?

Условно говоря наличные и робокасса какая-нибудь?

Для Робокассы есть возможность указать статус для успешного платежа в настройках:

http://prntscr.com/b022m9

Если этого мало, скрипт робокассы находится тут:

app/addons/rus_payments/payments/robokassa.php

Строчка, отвечающая за статус успешного платежа:

$pp_response['order_status'] = $processor_data['processor_params']['statuses']['paid'];

Интересно, спасибо.

Тут смысл именно исходя из характеристики товара выводить статус.

Так можно сделать в robokassa.php ?

Например, если, как характеристику сделать возможность предзаказа, или сумма, оплаченная за товар является предоплатой.

Интересно, спасибо.

Тут смысл именно исходя из характеристики товара выводить статус.

Так можно сделать в robokassa.php ?

Например, если, как характеристику сделать возможность предзаказа, или сумма, оплаченная за товар является предоплатой.

Да, можно. Начните со следующего кода

$order_info = fn_get_order_info($order_id);
fn_print_r($order_info['products']);

Затем нужно пробежать по продуктам, получить значения характеристики, и выставить статус. Единственное только, что может вам помешать - данные изменения происходят при получении ответа от робокассы. Поэтому дебажить трудно

Огромное спасибо за советы! Буду копаться дальше