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

Модуль, який додає поле sku в таблицю order_product


Recommended Posts

Вітаю. Потрібен модуль або рішення, яке додає в таблицю order_product. В мене є сайт на якому це реалізовано, але я так і не знайшом яким саме способом, бо було це років 5 тому

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

Створити поле

catalog\model\checkout\order.php

public function addOrder($data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'");


Ось це потрібно

                $order_product_id = $this->db->getLastId();

$this->db->query("UPDATE " . DB_PREFIX . "order_product  op
SET  sku = SELECT sku FROM " . DB_PREFIX . "product  WHERE product_id = '" . (int)$product['product_id'] . "'

WHERE order_product_id = " . (int) $order_product_id . " AND order_id = '" . (int)$order_id . "'

 

 

Как-то так

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

Импортировать в БД (как бэкап) запрос типа 

ALTER TABLE table_name
ADD column_name ;

ALTER TABLE `table_name`
  MODIFY `column_name` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Ну параметры свои int(10) UNSIGNED NOT NULL AUTO_INCREMENT

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

Или так

ALTER TABLE `table_name`
  ADD `column_name` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

 

М-да немного не понял вопрос.

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

@esculapra Дякую, це трохи не те, мені потрібно було додавати SKU товарів під час оформлення замовлення. Просто думав є готове рішенні, вірніше воно, є, але яке не знайшов. Довелося модифікатором модель order змінювати. Рішення доволі просте:

 <file path="catalog/model/checkout/order.php">
			<operation error="skip">
					<search><![CDATA[foreach ($data['products'] as $product) {]]></search>
						<add position="after"><![CDATA[
			$skuquery = $this->db->query("SELECT * FROM `" . DB_PREFIX . "product` WHERE product_id = '" . (int)$product['product_id'] . "'");
			if ($skuquery->num_rows) {
				$sku = $skuquery->row['sku'];
			} else {
				$sku = '';
			}

			if (isset($product['sku'])) {
				$sku = $product['sku'];
			}
						]]></add>
			</operation>
			<operation>
					<search><![CDATA[model = '" . $this->db->escape($product['model']) . "']]></search>
						<add position="replace"><![CDATA[model = '" . $this->db->escape($product['model']) . "', sku = '" . $this->db->escape($sku) . "']]></add>
			</operation>
			
	</file>

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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