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

Назначение опций всем товарам сразу


Samen

Recommended Posts

12 минут назад, Samen сказал:

Здравствуйте. Необходимо назначить опцию всем товарам сразу. Товары выгружены из 1С и их много. Как можно реализовать?

Здравствуйте.

Можно купить готовый модуль

и через него всё удобно сделать.

Или можно ручками через базу данных MySQL.

Если данная или подобная задача будет время от времени повторяться, то рекомендую всё-таки прикупить модуль.

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


41 минуту назад, Samen сказал:

склоняюсь к варианту через 2 запроса)

 

а я нет

 

						$this->db->query("INSERT INTO " . DB_PREFIX . "product_option SET product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', required = '" . (int)$product_option['required'] . "'");

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

						foreach ($product_option['product_option_value'] as $product_option_value) {
							$this->db->query("INSERT INTO " . DB_PREFIX . "product_option_value SET product_option_id = '" . (int)$product_option_id . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', option_value_id = '" . (int)$product_option_value['option_value_id'] . "', quantity = '" . (int)$product_option_value['quantity'] . "', subtract = '" . (int)$product_option_value['subtract'] . "', price = '" . (float)$product_option_value['price'] . "', price_prefix = '" . $this->db->escape($product_option_value['price_prefix']) . "', points = '" . (int)$product_option_value['points'] . "', points_prefix = '" . $this->db->escape($product_option_value['points_prefix']) . "', weight = '" . (float)$product_option_value['weight'] . "', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) . "'");
						}

Т.е. получи product_option_id
а он разное для всех товаров
а потом ..

 

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

14 часов назад, Samen сказал:

склоняюсь к варианту через базу, пока не знаю как составить запрос правильно

 

Вариант двумя запросами (в примере всем товарам прописывается опция 12)

INSERT INTO `oc_product_option` (`product_id`, `option_id`, `required`)
SELECT `product_id`, o.`option_id`, 1 
FROM `oc_product` p, `oc_option` o, `oc_option_value` ov 
WHERE o.`option_id` = ov.`option_id` AND o.`option_id` = 12;

INSERT INTO `oc_product_option_value` 
(`product_option_id`, `product_id`, `option_id`, `option_value_id`, 
`quantity`, `subtract`, 
`price`, `price_prefix`, 
`points`, `points_prefix`, 
`weight`, `weight_prefix`) 
SELECT 
`product_option_id`, `product_id`, `option_id`, `option_value_id`, 
1 `quantity`,  1  `subtract`, 
0 `price`,    '+' `price_prefix`, 
0 `points`,   '+' `points_prefix`, 
0 `weight`,   '+' `weight_prefix`
FROM `oc_product_option` 
JOIN `oc_option_value` USING (`option_id`)
WHERE `option_id` = 12;

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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