Изменение номера заказа на его id

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.1

Иногда необходимо сделать так, чтобы номер заказа соответствовал его id. Как правило, подобная необходимость возникает из-за того, что менеджеры путаются в заказах - т.е., к примеру, в мойсклад уходит id, а на сайте виден номер заказа, то же самое с оплатой, на сайт платежа уходит id а менеджеры видят только номер заказа. Можно сделать так, чтобы номер заказа и был id этого заказа, в таком случае дальнейшей путаницы можно избежать. Для этого необходимо добавить новый файл в classes/modules/emarket/classes/orders/number/ , назовем файл id.php.

В этот файл необходимо вставить следующий код:

<?php
	class idOrderNumber implements iOrderNumber {
		protected $order;
		
		public function __construct(order $order) {
			$this->order = $order;
		}
		
		public function number() {
			$sel = new selector('objects');
			$sel->types('object-type')->name('emarket', 'order');
			$sel->order('number')->desc();
			$sel->limit(0, 1);
			$number = $sel->first ? ($sel->first->number + 1) : 1;
			
			$order = $this->order;
			$name_id = $order->id;
			$order->name = getLabel('order-name-prefix', 'emarket', $name_id);
			$order->number = $number;
			$order->commit();
			
			return $number;
		}
	};
?>

Теперь в файле config.ini в блоке [modules] необходимо строку

emarket.numbers = "default"

заменить на следующую:

emarket.numbers = "id"

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

Nomer-id.jpg