OpenCart: создание пользовательской формы заказа продукта

Я помогаю подруге настроить ее интернет-магазин. Мы используем тему ThingsForCuties и версию 1.5.6.4 OpenCart. У меня есть некоторый предыдущий опыт разработки веб-приложений на HTML, CSS, PHP, JS, а также много Wordpress, если это имеет значение, однако я действительно не понимаю паттерн MVC (если я прав, OpenCart написан в среде MVC - поправьте меня если нет).

Некоторая информация о ее магазине и о том, что она собирается продавать: в основном предметы для спальни для детей, такие как простыни, подушки, наборы для ставок и тому подобное. У нее есть несколько готовых и фирменных товаров на складе, но самое главное, что покупатель может заказать индивидуальный заказ, то есть он / она определяет размеры, цвет, материал (ы) и т. Д.

Мы хотели бы добавить пользовательскую страницу на сайт, где пользователь может разместить пользовательский заказ. Эта пользовательская страница будет иметь несколько элементов формы, таких как переключатели, флажки, текстовые области (для комментариев к заказу) и т.п. Там будет калькулятор цен (который, если для этого нет плагина, я могу написать на JS/PHP), который будет рассчитывать цену в зависимости от размеров / материалов и т. Д. Так что после того, как пользователь выбрал все, пользовательский заказ имеет появиться в корзине с деталями заказа, а также должен быть способ изменить заказ, если он / она передумает.

Я понятия не имею, хотя, с чего начать. Может ли кто-нибудь помочь мне с этим вопросом?

2 ответа

Конечно. Я думаю, что лучшим подходом было бы сделать выделенный модуль страницы. Первое, что я хотел бы сделать, это сделать резервную копию или войти в мою среду разработки.

редактировать header.tpl (зависит, поскольку я не знаю тему ThingsForCuties)

В основном добавьте ссылку на них, например, после того, как свяжитесь с нами

/index.php?route=page/calc (вы можете переписать с помощью.htaccess позже)

OpenCart - это MVC, поэтому работайте с моделью, с видом на контроллер.

Сделайте следующие файлы.

/catalog/view/theme/{cuties}/template/calc.tpl

<?php echo $header; ?>
<div class="category_header">
    <header>
        <h1>Baby Form</h1>
        <p>My, JS, HTML5 and a little PHP can go here..</p>
    </header>
</div>
<div class="content_stylist">

<?php echo $footer; ?>

/catalog/controller/calc.php

<?php

class ControllerCalc extends Controller{ 
    public function index(){
        $this->language->load('information/information');
        $this->load->model('catalog/information');

        $this->template = 'default/template/calc.tpl';

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . 'default/template/calc.tpl')) {
            $this->template = $this->config->get('config_template') . 'default/template/calc.tpl';
        } else {
            $this->template = 'default/template/calc.tpl';
        }

        $this->children = array(
            'common/header',
            'common/footer'
        );

        $this->response->setOutput($this->render());
    }

     function calc(){

        // place functions within the class if need

    }

}

function external_sample(){

    // you can have external php too outside the OC framework

}
?>

Смотрите мой пост на пользовательской странице администратора, которая является той же самой и включает проблемы с разрешениями. Как я уже упоминал ранее, теперь вы можете посетить index.php? Route = page / calc, попробовать свой код и увидеть, как он встроен.

Здесь размещены обширные учебники.

Пользовательские страницы

opencart php custom page без использования функции "информация"

http://forum.opencart.com/viewtopic.php?t=59542

http://www.kvcodes.com/2013/10/create-custom-admin-page-open-cart/

Страница администратора тут

Как создать пользовательскую страницу администратора в opencart?

Другой способ (с гораздо меньшим количеством программирования) - использовать то, что всегда под рукой. В OpenCart это продукт и варианты продукта.

Вы можете установить для продукта столько опций продукта, сколько пожелаете, и со всеми возможными элементами формы (некоторые из них, такие как средство выбора файлов или средство выбора даты и / или времени) уже поставляются с функциональностью jQuery. Нет ничего страшного в том, чтобы создать фиктивный продукт с каким-то дизайнерским имиджем и всеми необходимыми вам опциями. Допустим, вам нужно, чтобы покупатель подобрал материал, установил размеры и, при желании, загрузил изображение желаемого отпечатка и добавил заметку. Просто зайдите в администрацию, каталог -> параметры и создайте эти новые параметры (если у вас их нет):

  • Материал, выбор типа, обязательный, включен, порядок сортировки 1
    • в качестве значений задайте все возможные материалы (да, даже если у вас их сотни:-))
  • Длина, тип ввода текста, обязательный, включен, порядок сортировки 2
  • Ширина, тип ввода текста, обязательный, включен, порядок сортировки 3
  • Высота, тип ввода текста, обязательный, включен, порядок сортировки 4
  • Изображение, тип файла, не обязательно, включено, порядок сортировки 5
  • Примечания, введите textarea, не обязательно, включено, порядок сортировки 6

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

Вы можете продлить интерфейс product.tpl включить некоторый калькулятор в JS в зависимости от существующих элементов управления.

Это может быть достигнуто с меньшими усилиями по программированию (хотя требуется немного больше администрирования).

Другие вопросы по тегам