Как перенести выбор варианта оплаты на первую страницу оформления заказа simpla

Как перенести выбор варианта оплаты на первую страницу оформления заказа simpla

В simpla довольно интересная логика по поводу оформления заказа. На первом этапе посетителю предлагается информация о заказе, выбор способа доставки и ввод данных о покупателе. После этого оформление переходит на шаг 2, но пишет, что Ваш заказ принят. И он действительно принят, только вот вариант оплаты и возможность оплаты (если это электронные деньги) появляется только на шаге 2. А многие посетители вообще уходят с шага 2 не выполнив его, считая, что уже все заказано.

Поэтому сейчас мы перенесем выбор способа оплаты на первую страницу. Поехали:

Идем в ftp по пути: view/CartView.php. И после:

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

Примерно 46 строка, после нее добавляем:

$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);

Добавляем:

// Варианты оплаты
        $payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
        $this->design->assign('payment_methods', $payment_methods);

Теперь идем в админку, шаблон 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}&nbsp;{$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
            <div class="description">
            {$payment_method->description}
            </div>
        </li>
    {/foreach}
</ul>
{/if}

Вот и все. В следующей статье мы разберем случай, когда для разных способов доставки имеются разные способы оплаты (задача изменять способы оплаты в зависимости от выбранного варианта доставки без перезагрузки страницы - на jquery). Но об этом в следующий раз.

27.03.17
Для просмотра сайта обновите браузер.