Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

нужно, чтобы изменялясь цена


Recommended Posts

передо мной стал вопрос как сделать изменение цены в зависимости от введенного числа.

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

Опциями можно сделать, но очень долгий выпадающий список получится, например от 50 до 20 000 см. задать опциями каждый сантиматр нереально и не практично.. нужно, чтобы пользователь сам ввел длинну, и ему просчиталась цена.

 

 

вопрос наверное не совсем стандартный, но был бы благодарен хоть за какую то помощь)

спасибо.

Link to post
Share on other sites

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

 

Для начала, нужно в контроллере product.php получить стоимость товара без обработки класса currency, тобишь int

 

Потом написать небольшой скрипт, который будет получать значение из поля quantity и множить его на "чистую" цену.

 

Что-то вроде

 

$(document).on('ready',function(){
	$('input[name=quantity]').on('change',function(){
		var quantity = $(this).val();
		var total = quantity * $('input[name=clear_price]').val();
		// Ajax функция которая вернет цену в нужной валюте и нужном форматировании
		getFormatedPrice(total);
	})
})

getFormatedPrice()

 

function getFormatedPrice(data) {
$.ajax({
    url: 'index.php?route=product/product/getFormatedPrice',
    type: 'post',
    data: 'new_cost=' + data,
    success: function(data) {
     $('.price').text(data);
    }
});
}

 

А в product.php в конце перед }

добавляем что-то вроде

 

public function getFormatedPrice() {
		if (!$this->request->post['new_cost']) {
			return false;
		}

// Правда не помню, без учета налогов как верно, так:
		$new_cost = $this->currency->format($this->tax->calculate($this->request->post['new_cost'], 0, $this->config->get('config_tax')));
// Или так:
$new_cost = $this->currency->format($this->request->post['new_cost']);

		return $new_cost;
	}

 

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

 

ПС. В админке указываете цену за 1 единицу.

  • +1 1
Link to post
Share on other sites

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

Создаём товар "Ткань полосатая, за 1 см". Покупатель в поле "количество" вводит, как ни странно, количество нужных ему сантиметров. Вуаля.

Какие опции?

Link to post
Share on other sites

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

Создаём товар "Ткань полосатая, за 1 см". Покупатель в поле "количество" вводит, как ни странно, количество нужных ему сантиметров. Вуаля.

Какие опции?

такая реализация мне бы подошла, но удобнее если бы

1) покупатель вводил цену в метрах, тоесть 2м,5м, 7,8м, 15,25м

и

2) чтобы цена изменялась сразу при вводе значения..

хотябы одно с двух реализовать - было бы супер)

лучьше конечно второе..

Link to post
Share on other sites

1) Ну вы начали с сантиметров, я их и привел в качестве примера - может у вас ткани с позолотой и её сантиметрами отмеряют.

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

2) Цена за метр у вас не меняется. А в корзине покупатель увидит и общую сумму, и отредактирует метраж при необходимости. Или я не понял, что конкретно требуется.

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

Link to post
Share on other sites

  • 1 month later...

1) Ну вы начали с сантиметров, я их и привел в качестве примера - может у вас ткани с позолотой и её сантиметрами отмеряют.

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

2) Цена за метр у вас не меняется. А в корзине покупатель увидит и общую сумму, и отредактирует метраж при необходимости. Или я не понял, что конкретно требуется.

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

 

Такой метод http://loco.ru/materials/205-opencart-auto-update-price-option-selection можно перенести на изменение цены в зависимости от выбранного количества товара ? Если да, то откуда начинать?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.