Перейти к содержанию
Официальный форум поддержки Simpla

Оформление заказа и выбор оплаты на одной странице


Перейти к решению Решено yaskin,

Рекомендуемые сообщения

1. views/Cart.php - добавить формирование списка оплаты и отправка в шаблон (аналогично скрипту views/Order.php)
2. design/[папка шаблона]/html/cart.tpl - Выводите в шаблоне корзины (аналогично выводу в design/[папка шаблона]/html/order.tpl)
3. views/Cart.php - отправляете переменную payment_method_id в базу с заказом.

Ссылка на сообщение
Поделиться на другие сайты
А в чем тут аяксовость?

Артем протри глаза и поклацай все. Без обид но задавать такой глупый вопрос по крайней мере странно с твоей стороны.
Ссылка на сообщение
Поделиться на другие сайты
Кстати, рядом (http://masky.com.ua/, кнопка Подробнее), сделано именно так. А можно было бы и к этому действию AJAX прикрутить...

Ну это уже не я делал и это не оговаривалось с заказчиком.
Все заказчики довольны всем нравится.
Вы такие все уникумы, профессионалы... Я с радостью оценю и прокомментирую ваш вариант.
Ссылка на сообщение
Поделиться на другие сайты

К чему обиды? Если не рассматривать задачу как запрос на коммерческое предложение. То реализовать функционал можно тем способом, что я описал.
Насчет вариант - я бы показал и код выложил, но не могу найти ссылку - делал проект год назад, сорри. Сейчас нет времени на повторное воспроизведение - может чуть позже.

Ссылка на сообщение
Поделиться на другие сайты

Март к каждому способу доставки свой способ оплаты, а твое решение так работать не будет, можно будет выбрать способ доставки и способ оплаты который не закреплен к этому способу доставки. Ферштейн?

Ссылка на сообщение
Поделиться на другие сайты

Я уловил твою мысль в той доработке, но и это решается обычным яваскриптом. Вопрос-то звучал "Оформление заказа и выбор оплаты на одной странице" и это можно сделать обычными средствами Симплы, без написания дополнительных модулей (в твоем случае обработчика AJAX).
P.S. Не надо указывать на мое место проживания в подобном контексте.

Ссылка на сообщение
Поделиться на другие сайты
и это можно сделать обычными средствами Симплы, без написания дополнительных модулей

Но все-равно дорабатывать CartView.php нужно как не крути.
Что твоя идея что моя реализация решает вопрос ТС, я не спорю.
P.S. Артём а я что-то про твое место проживания указывал?
Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

Ну есть какое-то адекватное и оптимальное решение? Не хочется за такую мелочь 35 долларов платить.

Вообще разработчик восхищает и поражает одновременно. Как можно сделать такой офигенно быстрый, просто-функциональный движок, с таким огромным фронтом работы, такую корзину - и все так засрать прямо перед самой конверсией?

Реально дамочки не втыкают как выбрать способ оплаты - и не оплачивают.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...
  • Решение

в файле view/CartView.php ищем

    if(isset($_POST['checkout']))
    {
    
    	$order->delivery_id = $this->request->post('delivery_id', 'integer');

и заменяем на

    if(isset($_POST['checkout']))
    {
    
    	$order->delivery_id = $this->request->post('delivery_id', 'integer');
	$order->payment_method_id = $this->request->post('payment_method_id', 'integer');

там же ищем

	//////////////////////////////////////////
	// Основная функция
	//////////////////////////////////////////
	function fetch()
	{  
		// Способы доставки
		$deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
		$this->design->assign('deliveries', $deliveries);

заменяем на

	//////////////////////////////////////////
	// Основная функция
	//////////////////////////////////////////
	function fetch()
	{  
		// Способы доставки
		$deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
		$this->design->assign('deliveries', $deliveries);
		// Варианты оплаты
                $payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
                $this->design->assign('payment_methods', $payment_methods);	

Теперь открываем design/ваша_тема/html/cart.tpl и в нужное место вставляем вывод выбора варианта оплаты

{* Выбор способа оплаты *}
{if $payment_methods && !$payment_method}
<h2>Выберите способ оплаты</h2>
<ul id="deliveries">
    {foreach $payment_methods as $payment_method}
        <li>
            <div class="checkbox">
                <input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
            </div>            
            <h3><label for=payment_{$payment_method->id}>    {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
            <div class="description">
            {$payment_method->description}
            </div>
        </li>
    {/foreach}
</ul>
{/if}
Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Все равно происходит переход на шаблон ORDER.

Как вообще убрать этот переход ?

 

 

 

в файле view/CartView.php ищем

    if(isset($_POST['checkout']))
    {
    
    	$order->delivery_id = $this->request->post('delivery_id', 'integer');

и заменяем на

    if(isset($_POST['checkout']))
    {
    
    	$order->delivery_id = $this->request->post('delivery_id', 'integer');
	$order->payment_method_id = $this->request->post('payment_method_id', 'integer');

там же ищем

	//////////////////////////////////////////
	// Основная функция
	//////////////////////////////////////////
	function fetch()
	{  
		// Способы доставки
		$deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
		$this->design->assign('deliveries', $deliveries);

заменяем на

	//////////////////////////////////////////
	// Основная функция
	//////////////////////////////////////////
	function fetch()
	{  
		// Способы доставки
		$deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
		$this->design->assign('deliveries', $deliveries);
		// Варианты оплаты
                $payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
                $this->design->assign('payment_methods', $payment_methods);	

Теперь открываем design/ваша_тема/html/cart.tpl и в нужное место вставляем вывод выбора варианта оплаты

{* Выбор способа оплаты *}
{if $payment_methods && !$payment_method}
<h2>Выберите способ оплаты</h2>
<ul id="deliveries">
    {foreach $payment_methods as $payment_method}
        <li>
            <div class="checkbox">
                <input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
            </div>            
            <h3><label for=payment_{$payment_method->id}>    {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
            <div class="description">
            {$payment_method->description}
            </div>
        </li>
    {/foreach}
</ul>
{/if}
Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...
  • 2 года спустя...
  • 9 месяцев спустя...

Можно сделать быстрый заказ, индивидуальная доработка.

 

Очень полезный ответ для того, кто спрашивал в 2015 году.

Ссылка на сообщение
Поделиться на другие сайты

Очень полезный ответ для того, кто спрашивал в 2015 году.

Если хоть иногда пользоваться мозгами, то можно догадаться что ошибся ответив не на то сообщение.

тоже интересует этот вопрос

Можно сделать быстрый заказ, индивидуальная доработка.
Ссылка на сообщение
Поделиться на другие сайты

Если хоть иногда пользоваться мозгами, то можно догадаться что ошибся ответив не на то сообщение.Можно сделать быстрый заказ, индивидуальная доработка.

 

А если пользоваться мозгами не иногда, а почаще, то можно легко установить, что посетитель n1c задал вопрос в январе.

С момента появления вопроса прошел почти год, он уж небось надежду потерял, а тут такая радость....

Ссылка на сообщение
Поделиться на другие сайты

А если пользоваться мозгами не иногда, а почаще, то можно легко установить, что посетитель n1c задал вопрос в январе.

С момента появления вопроса прошел почти год, он уж небось надежду потерял, а тут такая радость....

Корс скажи мне ты долбоёб от природы или это на старости появилось от безделья?

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

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...