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


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

Трекинг номер посылки в личном кабинете

трекинг номер simpla

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

#1 yodaexolon

yodaexolon
  • Пользователь
  • 144 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Kharkiv, Ukraine

Опубликовано 13.03.2015 - 20:05

1. Создаем в базе данных в таблице s_orders поле delivery_number у меня уже было изначально

 

2. Открываем /api/Orders.php и находим

 

$query = $this->db->placehold("SELECT  o.id, o.delivery_id, o.delivery_price, o.separate_delivery,
										o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_code, o.coupon_discount,
										o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status,
										o.url, o.total_price, o.note
										FROM __orders o $where LIMIT 1");

заменяем на

$query = $this->db->placehold("SELECT  o.id, o.delivery_id, o.delivery_price, o.separate_delivery,
										o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_code, o.coupon_discount,
										o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status,
										o.url, o.total_price, o.note, o.delivery_number
										FROM __orders o $where LIMIT 1");

далее в этом же файле

// Выбираем заказы
		$query = $this->db->placehold("SELECT o.id, o.delivery_id, o.delivery_price, o.separate_delivery,
										o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_code, o.coupon_discount,
										o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status,
										o.url, o.total_price, o.note

меняем на 

// Выбираем заказы
		$query = $this->db->placehold("SELECT o.id, o.delivery_id, o.delivery_price, o.separate_delivery,
										o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_code, o.coupon_discount,
										o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status,
										o.url, o.total_price, o.note, o.delivery_number

3. /simpla/OrderAdmin.php находим строку:

$order->separate_delivery = $this->request->post('separate_delivery', 'integer');

после нее вставляем:

$order->delivery_number = $this->request->post('delivery_number');

4. Открываем /simpla/design/html/order.tpl в нужном месте (я поставил в блоке доставки) ставим

<li>
<label class=delivery_number>Трекинг номер</label>
<textarea name="delivery_number">{$order->delivery_number|escape}</textarea>
</li>

5. /design/ваша тема/html/user.tpl

после строки

{if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if}

добавляем

{if $order->delivery_number}<h4>трекинг номер:</h4> {$order->delivery_number|escape}{/if}<hr>

6. /simpla/design/css/style.css

добавим стили

 .block li {
	clear: left;
	display: block;
	overflow: hidden;
	margin-top: 7px;
	width: 500px;
}

.block label.delivery_number {
	display: block;
  	float: left;
  	width: 132px;
  	clear: left;
  	padding-top: 2px;
  	overflow: hidden;
  	font-size: 18px;
}

.block li textarea {
	width: 210px;
	height: 60px;

 

0e4388a9deae.jpg

 

daf4101fc232.jpg

 

СПАСИБО yr4ik ЗА ПОДСКАЗКУ


Изменено: yodaexolon, 13.03.2015 - 20:14


#2 drakulitkas

drakulitkas
  • Пользователь
  • 218 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Орехово-Зуево

Опубликовано 14.03.2015 - 23:56

Для России не подойдет?



#3 yodaexolon

yodaexolon
  • Пользователь
  • 144 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Kharkiv, Ukraine

Опубликовано 15.03.2015 - 18:50

Для России не подойдет?

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


Изменено: yodaexolon, 15.03.2015 - 18:53


#4 keks

keks
  • Пользователь
  • 69 сообщений
  • Версия CMS:2.x
  • Откуда:Русь матушка

Опубликовано 16.03.2015 - 16:40

Спасибо за данное решение! Очень удобно :-)

 

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


Изменено: keks, 16.03.2015 - 17:05


#5 den_k2

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

Опубликовано 17.03.2015 - 10:51

Можно проще

{if $order->delivery_number == ""} {else}Трекинг номер: {$order->delivery_number|escape}{/if}

 

Т.е. если поле не заполнено, то нет трекинга, и наоборот соответственно



#6 Kors

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

Опубликовано 17.03.2015 - 12:18

Еще проще:

{if $order->delivery_number}Трекинг номер: {$order->delivery_number|escape}{/if}

В первом посте подобное встречается.



#7 yodaexolon

yodaexolon
  • Пользователь
  • 144 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Kharkiv, Ukraine

Опубликовано 17.03.2015 - 12:21

Я сделал чтоб и на почту отправлялось письмо с трек кодом



#8 keks

keks
  • Пользователь
  • 69 сообщений
  • Версия CMS:2.x
  • Откуда:Русь матушка

Опубликовано 17.03.2015 - 12:23

Я сделал чтоб и на почту отправлялось письмо с трек кодом

 

аналогично, вчера все украсил...здорово все получилось ;)



#9 larenso

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

Опубликовано 26.04.2015 - 17:31

Я сделал чтоб и на почту отправлялось письмо с трек кодом

 Подскажите пожалуйста способ отправки трека на почту )



#10 tsybart

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

Опубликовано 26.04.2015 - 22:45

можно ли его передать смс уведомлением?



#11 minoxidilppua

minoxidilppua
  • Пользователь
  • 5 сообщений
  • Дизайн
  • Откуда:Украина Киев

Опубликовано 27.05.2015 - 21:20

Все сделал как написано, но покупателю не приходит трекинг в заказе, куда копать?



#12 Gandalf

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

Опубликовано 27.05.2015 - 21:23

Все сделал как написано, но покупателю не приходит трекинг в заказе, куда копать?

email_order.tpl

{if $order->delivery_id}
	<tr>
		<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
			Доставка
		</td>
		<td style="padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
			{$delivery->name|escape}
		</td>
	</tr>
	{/if}
{if $order->delivery_number}
	<tr>
		<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
			Трекинг номер
		</td>

Изменено: Gandalf, 27.05.2015 - 21:24


#13 esistema1

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

Опубликовано 01.10.2018 - 19:29

Подскажите пожалуйста, добавил еще форму ввода трека на странице заказов (simpla/design/html/orders.tpl). Но сохранение в базу не происходит, что необходимо добавить в orders.php чтобы заработало сохранение со страницы заказов?



#14 esistema1

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

Опубликовано 01.10.2018 - 20:05

Пробую добавить 

case 'set_track':
				{
					foreach($ids as $id)
					{
						if(!$this->orders->close(intval($id)))
							$this->design->assign('message_error', 'error_closing');
						else
							$this->orders->update_order($id, array('track', 'integer'));
							
								
					}
					break;
				}

 

Но этот код не срабатывает.



#15 phukortsin

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

Опубликовано 01.10.2018 - 20:44

Этот код прекрасно срабатывает и выполняет именно те действия, которые в нем прописаны.

Если он делает не то, что Вы ожидаете, то код не виноват в том, что Вы пишете явную бессмыслицу.

Пробуйте добавлять другие варианты кода. Их миллиарды и даже больше...



#16 esistema1

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

Опубликовано 01.10.2018 - 20:46

Код который указан в начале темы работает бесспорно!! Спасибо автору! Поле для трека появляется на странице заказа, в него можно добавить трек и т.д..

 

Но я хочу немного дополнить его и добавить такое же поле на странице со списком заказов (ordrers.tpl), поэтому и прошу помощи...



#17 esistema1

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

Опубликовано 01.10.2018 - 20:48

Цель этой доработки: оператор со сканером штрих кодов будет добавлять треки к заказам, непосредственно со страницы заказов (не входя в каждый заказ отдельно).



#18 phukortsin

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

Опубликовано 02.10.2018 - 09:21

Цель этой доработки: оператор со сканером штрих кодов будет добавлять треки к заказам, непосредственно со страницы заказов (не входя в каждый заказ отдельно).

 

Тогда и код надо писать соответственно целям, а не всякую белиберду...

Надо смотреть, как работают аналогичные поля в списке заказов, и по аналогии добавлять свое, но желательно не абы как, а с понятием...



#19 esistema1

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

Опубликовано 02.10.2018 - 09:25

Это я понимаю, только вот там нет аналогичных полей... Там из вариантов изменений заказа - это статусы заказов и метки..

 

Статусы заказов там меняются таким кодом:

 

switch($this->request->post('action'))
...........
.........

case 'set_status_0':
{
foreach($ids as $id)
{
if($this->orders->open(intval($id)))
$this->orders->update_order($id, array('status'=>0));

}
break;
}


#20 phukortsin

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

Опубликовано 02.10.2018 - 09:31

Да, Вы правы, нет там аналогичных полей.

Тогда сложнее. Надо брать аналогию со страницы товаров в админке. Хот я и там не совсем то, там поля от вариантов...






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

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