Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Редактирование суммы заказа в админ панели


Recommended Posts

Первое: я не программист пхп, даже до говнокодера не дотягиваю.

Второе: решение неполное, говняцкое и с ошибкой (некритичной), но рабочее.

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

Четвертое: если кто знает как улучшить, буду только рад так как см пункт два.

 

Собственно само решение:

в admin\view\template\sale\order_form.tpl после <h1><?php echo $heading_title; ?></h1> добавляем

	 <p>
	Номер заказ  = <?php echo $order_id; ?> </br>
	<form method="POST" action="">
	Новя сумма заказа = <input name="tsumnew" type="text" placeholder="<?php foreach ($tsum as $tsums) { echo $tsums['total'];} ?>"/>
		<input type="submit" value="Изменить"/>
	</form></br>
	 </p>

в docs/admin/controller/sale/order.php после public function getForm() {  добавляем


	$order_id = $this->request->get['order_id'];
	$data['tsum'] = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$order_id . "'"); 
	//Отправим данные в лес:
	if (isset($_POST['tsumnew'])){
	//Перенесем с формы
	$tsumnew = $_POST['tsumnew'];
	//Запрос на вставку данных
	$restsum = $this->db->query("UPDATE `oc_order` SET `total`='" . (int)$tsumnew . "' WHERE `order_id`='" . (int)$order_id . "'");
    }

Собственно все.

Спасибо камраду  flai0616 за нужный совет.

Змінено користувачем Granled
Надіслати
Поділитися на інших сайтах


2 minutes ago, d0tb0t said:

Должно быть какое-то обоснование изменения стоимости. Наценка/уценка за что-то. Скидка.

 

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

Надіслати
Поділитися на інших сайтах


Следующий шаг это строчка в Total в виде скидки/наценки.

Сумму в этой строчке можно брать как разницу в текущей и желаемой сумме.

А от знака подставлять называние скидка или наценка.

Надіслати
Поділитися на інших сайтах


В настройках магазина можно включить "модуль" в разделе "Учитывать в заказе".

Который добавляет строчку в заказ например "За ручное оформление".

Как доставка или скидка, ещё одна строка.

По умолчанию = 0;

В редакторе заказа коррекцию производить у этой строки и суммы заказа.

Змінено користувачем d0tb0t
Надіслати
Поділитися на інших сайтах


<p>Номер заказ  = <?php echo $order_id; ?> <br/>
	<form method="POST" action="">
	Новя сумма заказа = <input name="total_new" type="text" value="<?php echo $total; ?>"/>
		<input type="submit" value="Изменить"/>
	</form></p>
$order_id = $this->request->get['order_id'];

$total = $this->db->query("SELECT total FROM " . DB_PREFIX . "order WHERE order_id = '" . (int)$order_id . "'"); 

$data['total'] = $total;

if (isset($this->request->post['total_new'])){
	$total_new = $this->request->post['total_new'];
	
	$handling_total = $total_new - $total;
	//Запрос на вставку данных
	$this->db->query("UPDATE " . DB_PREFIX . "order SET total = '" . (float)$total_new. "' WHERE order_id = '" . (int)$order_id . "'");
	$this->db->query("UPDATE " . DB_PREFIX . "order_total SET value = '" . (float)$total_new . "' WHERE order_id = '" . (int)$order_id . "' AND code = 'total'");
	$this->db->query("UPDATE " . DB_PREFIX . "order_total SET value = value + '" . (float)$handling_total . "' WHERE order_id = '" . (int)$order_id . "' AND code = 'handling'");
}

 

Змінено користувачем d0tb0t
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.