sobwoofer

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

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

sobwoofer    36

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

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

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

 

 

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

спасибо.

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


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

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

 

Для начала, нужно в контроллере 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 единицу.

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


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

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

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

Какие опции?

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


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

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

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

Какие опции?

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

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

и

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

 

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

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


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

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

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

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

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

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

Войти

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

Войти


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

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