Добрый день.
У меня вопрос: как в файле, который отвечет за выбор типа оплаты при чекауте (/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}
К сожалению то же самое.
А что должно по идее выводиться?
И какой 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']);
Затем нужно пробежать по продуктам, получить значения характеристики, и выставить статус. Единственное только, что может вам помешать - данные изменения происходят при получении ответа от робокассы. Поэтому дебажить трудно
Огромное спасибо за советы! Буду копаться дальше