OpenCart — упрощенное оформление заказа, оформление заказа на одной странице 2016-06-10

Модуль Checkout simple (one page checkout) изменяет оформление заказа в магазине на движке OpenCart

  1. admin
    Одна из наиболее популярных тем, касающихся интернет-магазина на OpenCart, это оформление заказа, точнее упрощенное, быстрое оформление заказа. Покупателям хочется быстрее оформлять свои заказы и совершать покупки, а владельцам магазинов, соответственно, хочется всеми силами обеспечить максимально удобное оформление заказа для покупателей, чтобы их не «спугнуть» рутинным заполнением полей и прохождением массы шагов. Для этого кто-то правит код, кто-то использует модули. В данном посте мы рассмотрим один из модулей.

    Модуль Checkout simple (one page checkout) изменяет оформление заказа в магазине на движке OpenCart с пошагового на одностраничное — все оформление заказа будет находиться на одной странице, без наличия стандартных шагов.

    opencart-one-page-checkout.jpg

    Скачать модуль Checkout simple (one page checkout).

    Модуль подходит для версий 1.5.6, 1.5.6.1, 1.5.6.2, 1.5.6.3, 1.5.6.4. Но ниже рассмотрим вариант использования модуля и для 1.5.5.1.2.

    Установка и настройка модуля.

    1. Перед установкой модуля сделайте бекап файлов сайта (или, по крайней мере, сохраните те файлы, которые использует модуль).

    2. В скачанном архиве, в папке catalog, есть две папки — view и controller. Содержимое controller загружаем в catalog/controller своего магазина. Файл checkout.tpl, находящийся в глубине папки view, загружаем в catalog/view/theme/default (ваша тема)/template/checkout с заменой файла. Будьте внимательны при загрузке файлов в магазин — не перепутайте пути.

    3. Для версий 1.5.6, 1.5.6.1, 1.5.6.2, 1.5.6.3, 1.5.6.4 данных действий достаточно — модуль начнет свою работу. Если же Вы используете другую версию, то модуль корректно не установится.

    4. «Допилим» модуль для версии 1.5.5.1.2 (тестировала модуль именно на этой версии, так что правка осуществлялась под эту версию, но, думаю, что изменения подойдут для 1.5.5.x):

    а). Открываем файл catalog\controller\checkout\checkout.php и комментируем следующие строки (привожу уже закомментированный код)

    152-173

    Код:
    /*if ($product['recurring']) {
    $frequencies = array(
    'day' => $this->language->get('text_day'),
    'week' => $this->language->get('text_week'),
    'semi_month' => $this->language->get('text_semi_month'),
    'month' => $this->language->get('text_month'),
    'year' => $this->language->get('text_year'),
    );
    
    if ($product['recurring_trial']) {
    $recurring_price = $this->currency->format($this->tax->calculate($product['recurring_trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')));
    $profile_description = sprintf($this->language->get('text_trial_description'), $recurring_price, $product['recurring_trial_cycle'], $frequencies[$product['recurring_trial_frequency']], $product['recurring_trial_duration']) . ' ';
    }
    
    $recurring_price = $this->currency->format($this->tax->calculate($product['recurring_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')));
    
    if ($product['recurring_duration']) {
    $profile_description .= sprintf($this->language->get('text_payment_description'), $recurring_price, $product['recurring_cycle'], $frequencies[$product['recurring_frequency']], $product['recurring_duration']);
    } else {
    $profile_description .= sprintf($this->language->get('text_payment_until_canceled_description'), $recurring_price, $product['recurring_cycle'], $frequencies[$product['recurring_frequency']], $product['recurring_duration']);
    }
    }*/

    188-189


    Код:
    //'recurring' => $product['recurring'],
    //'profile_name' => $product['profile_name'],

    195


    Код:
    //$this->data['products_recurring'] = array();

    864-874

    Код:
    /*if ($method) {
    if($cart_has_recurring > 0){
    if (method_exists($this->{'model_payment_' . $result['code']},'recurringPayments')) {
    if($this->{'model_payment_' . $result['code']}->recurringPayments() == true){
    $method_data[$result['code']] = $method;
    }
    }
    } else {
    $method_data[$result['code']] = $method;
    }
    }*/

    б). Открываем файл catalog\view\theme\default\template\checkout\checkout.tpl и комментируем следующие строки (привожу уже закомментированный код)

    197-204

    Код:
    <!--<?php//if($product['recurring']): ?>
    <tr>
    <td colspan="6"style="border:none;"><image src="catalog/view/theme/default/image/reorder.png"alt=""title=""style="float:left;"/><span style="float:left;line-height:18px; margin-left:10px;">
    <strong><?php//echo $text_recurring_item ?></strong>
    <?php//echo $product['profile_description'] ?>
    </td>
    </tr>
    <?php//endif; ?>-->

    211-214

    Код:
    <!--<?php//if($product['recurring']): ?>
    <br/>
    <small><?php//echo $text_payment_profile ?>:<?php//echo $product['profile_name'] ?></small>
    <?php//endif; ?>-->

    Сохраняем и получаем упрощенное оформление заказа для 1.5.5.1.2.

    При тестировании модуля проверяла получение письма заказчиком — приходит, появление заказа в админке — появляется и затем успешно, при надобности, редактируется.
    anton_1992, oagopshpor, Diman1990 и 27 другим нравится это.