Задать вопрос

Как правильно добавить метод к классу orderItem?

Кто знает как правильно добавить метода к классу OrderItem. Файл находится по пути /classes/modules/emarket/classes/orders/orderItem.php
Хочу добавить вместе с товаром некий параметр.
Создаю два метода:
/**
			* Получить значение автомобиля, которое добавлено к заказу
			* @param Integer $auto новое значение автомобиля в заказе
		*/
		public function getAuto() {
			return $this->auto;
		}
		
		/**
			* Изменить значение автомобиля в заказе
			* @param Integer $auto новое значение автомобиля в заказе
		*/
		public function setAuto($auto) {
			$this->auto = (int) $auto;
		}

Так же в методах добавляю значения:
/**
			* Применить внесенные изменения
		*/
		public function commit() {
			$object = $this->object;
			
			$object->item_price = $this->price;
			$object->item_total_original_price = $this->totalOriginalPrice;
			$object->item_total_price = $this->totalActualPrice;
			$object->item_amount = $this->amount;
			$object->item_auto = $this->auto;
			$object->item_discount_id = ($this->discount ? $this->discount->getId() : false);
			$object->item_link = $this->itemElement;
			
			parent::commit();
		}		
		/**
			* Конструктор класса. Косвенно вызывается через orderItem::get() и orderItem::create()
			* @param umiObject $object объект наименования (для работы с ним мы наследуем umiObjectProxy)
		*/
		protected function __construct(umiObject $object) {
			parent::__construct($object);

			$this->price = (float) $object->item_price;
			$this->totalOriginalPrice = (float) $object->item_total_original_price;
			$this->totalActualPrice = (float) $object->item_total_price;
			$this->amount = (float) $object->item_amount;
			$this->auto = (int) $object->item_auto;
			$this->discount = itemDiscount::get($object->item_discount_id);
			$this->itemElement = $object->item_link;
		}

При всё при этом когда я добавляю товар в корзину передаю свойство avto. Я его получаю и записываю. Когда добавляю второй товар то у первого данное свойство становится 0, а у второго отображается нужное. Это можно видеть на картинке, также когда перехожу в корзину то параметр который должен быть у всех товаров свой, но он везде почему-то равен 0.
7985e7a9d70b47578045658f06360bbf.jpg
Так же прикрепляю ссылку на два файла где происходило редактирование
emarket скачать
Может кто добавлял методы, даст совет как правильно, может что я упустил
  • Вопрос задан
  • 457 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Добавленные в orderItem.php методы могут быть затёрты при обновлении системы, поэтому лучше в исходниках не делать правок, если обновления системы потом будут нужны.

Для решения Вашей задачи я бы предложил найти в админке справочник "Наименование в заказе" и добавить в него поле auto и далее вести все операции с этим полем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
neverovski
@neverovski Автор вопроса
Справочник:
50fc37e9380c40d68b2b368b33e19e6e.png6da6ef7f419241ae846576bf2a4c91bb.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы