Перейти к содержимому


Фото
* * * * * 1 голосов

Добавление полей в корзине

Поля

  • Чтобы отвечать, сперва войдите на форум
17 ответов в теме

#1 hools1488

hools1488
  • Пользователь
  • 4 сообщений

Опубликовано 24.07.2012 - 09:13

Подскажите как добавить поле, допустим "Индекс", в корзине при оформлении заказа?

Получилось только визуально, на сайте и в админке прописать. Значение полей не отображается...



#2 filth

filth
  • Пользователь
  • 345 сообщений
  • Пользователь

Опубликовано 24.07.2012 - 09:40

http://forum.simplac...telefon#Item_31



#3 hools1488

hools1488
  • Пользователь
  • 4 сообщений

Опубликовано 24.07.2012 - 11:03

Ну не понимаю что тут надо добавить, тыкните носом.



#4 filth

filth
  • Пользователь
  • 345 сообщений
  • Пользователь

Опубликовано 24.07.2012 - 12:04

Начиная с пятого поста в вышеприведённой теме по образу и подобию.
Логика такая. что данные с вашего поля, должны записываться в БД. Для этого эти данные должны обрабатываться в Api/ View/ и возможно Simpla/ (если данные должны обрабатываться в админке) в соответствующих файлах. Ну и вызываться в шаблонах (что Вы уже сделали).



#5 hools1488

hools1488
  • Пользователь
  • 4 сообщений

Опубликовано 25.07.2012 - 03:17

Эх, всёравно покопался и не нашёл :(



#6 popovag

popovag
  • Пользователь
  • 4 сообщений
  • Версия CMS:2.x

Опубликовано 26.05.2013 - 15:03

можек кому и пригодится!
дополнительное поле почтовый индекс

1.PNG

2.PNG


в папке simpla - OrderAdmin.php
после
$order->address = $this->request->post('address');
вставить
$order->inaddress = $this->request->post('inaddress');

папка view - CartView.php
после

// Если нажали оформить заказ
if(isset($_POST['checkout']))
{

    $order->delivery_id = $this->request->post('delivery_id', 'integer');
    $order->name = $this->request->post('name');
    $order->email = $this->request->post('email');
вставить
$order->address = $this->request->post('address');

 

после

 

// Данные пользователя
        if($this->user)
        {
            $last_order = reset($this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)));
            if($last_order)
            {
                $this->design->assign('name', $last_order->name);
                $this->design->assign('email', $last_order->email);
                $this->design->assign('phone', $last_order->phone);

вставить

$this->design->assign('address', $last_order->address);

 

в шаблоне design/ваш шаблон/html - order.tpl

 

после

 

{if $order->address}
    <tr>
        <td>
            Адрес доставки
        </td>
        <td>
            {$order->address|escape}
        </td>
    </tr>
    {/if}

 

вставить

 

{if $order->inaddress}
    <tr>
        <td>
            Почтовый индекс
        </td>
        <td>
            {$order->inaddress|escape}
        </td>
    </tr>
    {/if}

В Базе данных

добавляете в s_orders новое поле  "inaddress"

 

все!!!!



#7 popovag

popovag
  • Пользователь
  • 4 сообщений
  • Версия CMS:2.x

Опубликовано 26.05.2013 - 15:14

в шаблоне design/ваш шаблон/html - cart.tpl

после

 

<label>Адрес доставки</label>
    <input name="address" type="text" value="{$address|escape}"/>

вставить

 

<label>Почтовый индекс</label>
    <input name="inaddress" type="text" value="{$inaddress|escape}" />



#8 chubr

chubr
  • Пользователь
  • 73 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Псков

Опубликовано 28.05.2013 - 21:00

не удалось отыскать файл, ответственный за письмо клиенту с заказом чтобы добавить туда новые поля. Можете подсказать?



#9 notuser

notuser
  • Пользователь
  • 78 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 18.07.2013 - 13:04

А еще надо подправить файл api\Orders.php и в выборку 

$query = $this->db->placehold("SELECT id, delivery_id, delivery_price, separate_delivery, payment_method_id, paid, payment_date, closed, discount, date,
									user_id, name, inaddress, address, phone, email, comment, status, url, total_price, note
									FROM __orders AS o 
									WHERE 1
									$id_filter $status_filter $user_filter $keyword_filter $modified_from_filter ORDER BY status, id DESC $sql_limit", "%Y-%m-%d");

вставить название своего поля которое вы создавали, если как делал автор то это поле inaddress



#10 win23rus

win23rus
  • Пользователь
  • 7 сообщений
  • Дизайн, Программирование
  • Версия CMS:2.x

Опубликовано 03.04.2014 - 08:12

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



#11 vensu

vensu
  • Пользователь
  • 11 сообщений

Опубликовано 18.04.2014 - 10:16

Сделал все так, но при оформлении заказа пишет страница не найдена /orders/



#12 m-31

m-31
  • Пользователь
  • 74 сообщений
  • Дизайн
  • Версия CMS:2.x

Опубликовано 29.12.2015 - 17:23

Всех с наступающим !

 

В Базе данных

добавляете в s_orders новое поле  "inaddress"

 

Ребят как сделать правильный запрос в БД ? 


 



#13 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 29.12.2015 - 18:51

alter table s_orders add inaddress varchar(255);



#14 m-31

m-31
  • Пользователь
  • 74 сообщений
  • Дизайн
  • Версия CMS:2.x

Опубликовано 30.12.2015 - 13:39

Kors, спасибо !

Дополнительные поля еще нужно добавить в simpla/design/html в order.
У автора ошибка в 
вставить

$order->address = $this->request->post('address');
address  заменить на inaddress

папка view - CartView.php
после

// Если нажали оформить заказ
if(isset($_POST['checkout']))
{

    $order->delivery_id = $this->request->post('delivery_id', 'integer');
    $order->name = $this->request->post('name');
    $order->email = $this->request->post('email');
вставить
$order->address = $this->request->post('address');

 

после

 

// Данные пользователя
        if($this->user)
        {
            $last_order = reset($this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)));
            if($last_order)
            {
                $this->design->assign('name', $last_order->name);
                $this->design->assign('email', $last_order->email);
                $this->design->assign('phone', $last_order->phone);

вставить

$this->design->assign('address', $last_order->address);

 


Что бы не делал не выходит  :( 
Видимо в базу данные не передаются 

Изменено: m-31, 30.12.2015 - 13:43


#15 Кокос

Кокос
  • Пользователь
  • 1 сообщений
  • Пользователь

Опубликовано 14.01.2016 - 15:29

а в админке и на почте не отображается это поле, как это исправить?



#16 viktornaymayer

viktornaymayer
  • Пользователь
  • 2 сообщений
  • Дизайн, Программирование, Верстка, SEO, Пользователь
  • Версия CMS:2.x
  • Откуда:Татарстан

Опубликовано 12.03.2017 - 13:27

написал пошаговое руководство по этой теме на хабре



#17 viktornaymayer

viktornaymayer
  • Пользователь
  • 2 сообщений
  • Дизайн, Программирование, Верстка, SEO, Пользователь
  • Версия CMS:2.x
  • Откуда:Татарстан

Опубликовано 12.03.2017 - 13:30

а в админке и на почте не отображается это поле, как это исправить?

для отображения на почте дополни файл: design\имя_шаблона\html\email_order.tpl

для админки: simpla\design\html\order.tpl



#18 vova

vova
  • Пользователь
  • 1 сообщений
  • Дизайн, Верстка, SEO
  • Откуда:киев

Опубликовано 02.04.2017 - 00:29

помогите добавить дополнительное поле, например, индекс при выборе конкретного вида доставки, например почты россии?







Также с меткой «Поля»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых