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

Добавить товар с обязательными опциями из каталога товаров


Recommended Posts

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

 

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

 

Как можно это обойти? чтобы при клике в каталоге на купить товар в любом случае добавлялся в корзину, а вот этого редиректа https://prnt.sc/FtRbJwhCwN7K чтобы не было

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


В 21.09.2023 в 03:42, AlexMax13 сказав:

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

 

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

 

Как можно это обойти? чтобы при клике в каталоге на купить товар в любом случае добавлялся в корзину, а вот этого редиректа https://prnt.sc/FtRbJwhCwN7K чтобы не было

підредагувати метод add (створити модифікатор дуже просто), в catalog/controller/checkout/cart.php , вказавши якщо опції не вибрані але обов’язкові, додай ці опції (наприклад - першу з них). Зверніть тут увагу.

 

image.thumb.png.ad7ce90d76d8cae31f821f4fbf3490fa.png

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

21.09.2023 в 11:57, Eldaeron сказал:

підредагувати метод add (створити модифікатор дуже просто), в catalog/controller/checkout/cart.php , вказавши якщо опції не вибрані але обов’язкові, додай ці опції (наприклад - першу з них). Зверніть тут увагу.

 

image.thumb.png.ad7ce90d76d8cae31f821f4fbf3490fa.png

Добрий день! підкажіть як зробити щоб опція в товарі була вибрана за замовчування? у мене в кожному товарі буде тільки 1 опція. зараз виходить що клієнт повинен завжди вибирати

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


В 21.09.2023 в 14:40, Vetlucky777 сказав:

Добрий день! підкажіть як зробити щоб опція в товарі була вибрана за замовчування? у мене в кожному товарі буде тільки 1 опція. зараз виходить що клієнт повинен завжди вибирати

Наприклад додати jquery код внизу product.tpl [twig]

 

let options = $('[id^="input-option"]');

options.each(function(){
    $(this).find('input:first').attr('checked', true);
});

 

 

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

В 21.09.2023 в 11:57, Eldaeron сказав:

підредагувати метод add (створити модифікатор дуже просто), в catalog/controller/checkout/cart.php , вказавши якщо опції не вибрані але обов’язкові, додай ці опції (наприклад - першу з них). Зверніть тут увагу.

 

image.thumb.png.ad7ce90d76d8cae31f821f4fbf3490fa.png

 

спасибо, но в таком случае необязятельными будут сразу и опции на странице товара. А мне нужно, чтобы необязательными они были только в каталоге или стандартных модулях по типу рекомендуемых.

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


В 22.09.2023 в 00:55, AlexMax13 сказав:

 

спасибо, но в таком случае необязятельными будут сразу и опции на странице товара. А мне нужно, чтобы необязательными они были только в каталоге или стандартных модулях по типу рекомендуемых.

 

а хто мішає взяти шлях звідки прийшли дані?)

 

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

В 23.09.2023 в 00:16, AlexMax13 сказав:

 

можете привести приклад?) якщо не важко

 

Ну наприклад такий костиль:


		$from = $this->request->server['HTTP_REFERER'];
		$parts = explode('/', $from);
		$parts = array_reverse($parts, true);

		foreach ($parts as $part) {
			$_query = $this->db->query("SELECT query FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape(trim($part)) . "' LIMIT 1");
			if ($_query->row['query']) {
				$query = explode('=', $_query->row['query']);
				$controller = $query[0];
				break;
			}
		}

		if ($controller == 'category_id') {
			// товар додано із сторінки категорії
		}

		if ($controller == 'product_id') {
			// товар додано із сторінки продукта
		}

 

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

@Eldaeron спасибо за идею)) Смотрите. я просто закомментировал появление ошибки https://prnt.sc/ILfjFJwFQpdF

Все работает как надо. Вопрос, то что я закоментировал действует только для страницы категорий, но не для страницы самого товара. Все верно?)

Мне просто нужно чтобы везде небыло этого редиректа кроме страницы товара, ну тоесть чтобы она никак не пострадала

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


В 29.09.2023 в 00:26, AlexMax13 сказав:

@Eldaeron спасибо за идею)) Смотрите. я просто закомментировал появление ошибки https://prnt.sc/ILfjFJwFQpdF

Все работает как надо. Вопрос, то что я закоментировал действует только для страницы категорий, но не для страницы самого товара. Все верно?)

Мне просто нужно чтобы везде небыло этого редиректа кроме страницы товара, ну тоесть чтобы она никак не пострадала

Для всього сайту (і категорії, і сторінка товару).

 

Як варіант перепишіть в шаблоні виводу теми catalog/view/ВАША_ТЕМА/template/product/product.tpl:

 

Замінити з:

url: 'index.php?route=checkout/cart/add',

На:

url: 'index.php?route=checkout/cart/addWithOptions',

 

Дальше в catalog/controller/checkout/cart.php, замінити:

public function add() {

 

На цей код:

public function addWithOptions() {
	$this->add(true);
}

public function add($check = false) {

 

Дальше замінити:

				foreach ($product_options as $product_option) {
					if ($product_option['required'] && empty($option[$product_option['product_option_id']])) {
						$json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
					}
				}

 

На цей код:

			if ($check === true) {
				foreach ($product_options as $product_option) {
					if ($product_option['required'] && empty($option[$product_option['product_option_id']])) {
						$json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
					}
				}
			}

 

В такому вигляді, по всьому сайті, окрім товару із сторінки product - буде попадати в корзину без перевірки опцій, а на самій сторінці опції будуть обов’язкові.

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

@Eldaeron Дуже дякую, попробую тоді, коли припече) тобто якщо щось піде не так. Наразі ніби опції обов'язкові на сторінці товару, але у всіх інших місцях ні)

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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