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

Настройки для продажи цифрового контента


ahtung

Recommended Posts

Добрый день. Подскажите, как правильно настроить магазин для продаж цифрового контента. 

 

Вот что самое главное интересует: как сделать чтобы товар можно было заказать только 1 шт? Где-то на форуме ставили в пример сайт market. =^_^= .ru, но там можно любой модуль добавить в корзину раз 10, а мне нужно только один.

 

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

 

Что посоветуете?

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


Спасибо, все так и сделал, но если кнопку "Купить" нажать два раза, то и в корзину бросит 2 штуки. Вот именно этого мне и не нужно для цифрового контента!

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


Спасибо, все так и сделал, но если кнопку "Купить" нажать два раза, то и в корзину бросит 2 штуки. Вот именно этого мне и не нужно для цифрового контента!

для кнопки пропишите: onClick="this.disabled=true"
Надіслати
Поділитися на інших сайтах


Спасибо, все так и сделал, но если кнопку "Купить" нажать два раза, то и в корзину бросит 2 штуки. Вот именно этого мне и не нужно для цифрового контента!

для кнопки пропишите: onClick="this.disabled=true"

После обновления страницы кнопка "Купить" опять активна. Нет, здесь надо что-то другое...

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


После обновления страницы кнопка "Купить" опять активна. Нет, здесь надо что-то другое...

Мне кажется, все это не нужно. Цифровой товар не стоит запрещать покупать дважды:

1. любой идиот при оформлении покупки увидит, что сумма и кол-во товара удвоены

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

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


В общем, решение нашел. Вот что получилось: в корзину возможно добавить любого товара только 1 шт. При повторном нажатии  "Купить" появляется всплывающее окно с сообщением "Товар ххх уже добавлен в корзину"

Если кому интересно, могу здесь написать что и как делал.

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


1. В файле \system\library\cart.php

код (стр. 261-268)

if ((int)$qty && ((int)$qty > 0)) {
    	if (!isset($this->session->data['cart'][$key])) {
      		$this->session->data['cart'][$key] = (int)$qty;
    	} else {
      		$this->session->data['cart'][$key] += (int)$qty;
    	}
}

заменить на 

if ((int)$qty && ((int)$qty > 0)) {
    	if (!isset($this->session->data['cart'][$key])) {
      		$this->session->data['cart'][$key] = (int)$qty;
		return('ok');
    	} else {
      		//$this->session->data['cart'][$key] += (int)$qty;
		return('no');
    	}
}

 

2. В файле \catalog\controller\checkout\cart.php

код (стр. 543-545)

$this->cart->add($this->request->post['product_id'], $quantity, $option);

$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));

заменить на 

if ($this->cart->add($this->request->post['product_id'], $quantity, $option) == "ok") {
	$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
}

else if ($this->cart->add($this->request->post['product_id'], $quantity, $option) == "no") {
	$json['attention'] = sprintf($this->language->get('text_attention'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
}
3. В файле \catalog\view\theme\default\template\product\product.tpl  
после кода (стр. 362-370)
			if (json['success']) {
				$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
					
				$('.success').fadeIn('slow');
					
				$('#cart-total').html(json['total']);
				
				$('html, body').animate({ scrollTop: 0 }, 'slow'); 
			}

добавить

			if (json['attention']) {
				$('#notification').html('<div class="attention" style="display: none;">' + json['attention'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
				$('.attention').fadeIn('slow');
				$('#cart-total').html(json['total']);
				$('html, body').animate({ scrollTop: 0 }, 'slow'); 
			}

и тоже самое в файле \catalog\view\javascript\common.js

после кода (стр. 128-136)

			if (json['success']) {
				$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
				
				$('.success').fadeIn('slow');
				
				$('#cart-total').html(json['total']);
				
				$('html, body').animate({ scrollTop: 0 }, 'slow'); 
			} 

 

добавить код 

			if (json['attention']) {
				$('#notification').html('<div class="attention" style="display: none;">' + json['attention'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
				$('.attention').fadeIn('slow');
				$('#cart-total').html(json['total']);
				$('html, body').animate({ scrollTop: 0 }, 'slow'); 
			}

4. "Из шаблона товара и корзины выпилить - убрать поле кол-ва, сделать его hidden с кол-вом 1 шт." как писал templater

 

Говорю сразу - я не программист и опен картом занимаюсь впервые. Делал под себя. Не пинать!

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


можно проще

1. В файле \system\library\cart.php

код (стр. 261-268)

 

if ((int)$qty && ((int)$qty > 0)) {
    if (!isset($this->session->data['cart'][$key])) {
        $this->session->data['cart'][$key] = (int)$qty;
    } else {
        $this->session->data['cart'][$key] += (int)$qty;
    }
}

 

заменить на 

 

if ((int)$qty && ((int)$qty > 0)) {
    $this->session->data['cart'][$key] = 1; 
}
Надіслати
Поділитися на інших сайтах

  • 3 weeks later...

4. "Из шаблона товара и корзины выпилить - убрать поле кол-ва, сделать его hidden с кол-вом 1 шт." как писал templater

 

Говорю сразу - я не программист и опен картом занимаюсь впервые. Делал под себя. Не пинать!

 

а можете пожалуйста, кто то поподробней описать этот пункт? так, как описаны 1,2,3 пункты в сообщении ahtung-а. я просто далеко не программист и впервые с опенкарт связался. спасибо

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


  • 1 year later...

Здрасте, очень благодарен за такое крутяковское решение=)

 

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

Вместо полей количества - поставил "1" и сообщение "Этот товар уже есть в корзине"

У меня модуль simple стоит (упрощённая форма заказа\регистрации), для него тоже файлик приложен.

Кароч закинул и всё=))

 

Папка backup - это backup=)

Папка Контент - её можно закачивать

Kontent.zip

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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