ahtung

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

Рекомендуемые сообщения

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
templater    85

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 402

это не помешает дважды кликнуть по кнопке "Купить".

насколько я знаю из коробки решений нет, нужно искать дополнения/ разработчика

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
templater    85

это не помешает дважды кликнуть по кнопке "Купить".

не подумал. в таком случае - onClick="this.disabled=true" )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ahtung    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
templater    85

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ahtung    0

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
templater    85

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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ahtung    0

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 402

можно проще

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; 
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ahtung    0

Да, но не будет предупреждения что товар уже добавлен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
timotykk    0

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
nikilex    0

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

 

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

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

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

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

 

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

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

Kontent.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу