Перейти к содержанию
Форум поддержки пользователей VamShop

настройка отображения скидок


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

Выставлена скидка на группу.

Можно ли сделать так, чтобы в карточке товара писалось:

Розничная цена 1.999,00 руб.

Ваша цена 1.939,03 руб.

Ваша скидка 3%

а в листинге категории только цифры цены со скидкой (1.939,03 руб)

заранее спасибо

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

кода там много, разбираться с ним долго (с моим уровнем знаний  :) )

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

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

Странный ответ, если Вы сами не хотите правит, то конечно не сможете.

Нужно тогда искать того кто исправит Вам код, например напишите в разделе Коммерческие предложения, либо например напишите пользователю mosquito , я думаю, что это не очень сложная проблема и её можно решить не за дорого.

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

возможно я нечетко формулирую вопрос

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

"Розничная цена 1.999,00 руб.

Ваша цена 1.939,03 руб.

Ваша скидка 3%"

а в списке товаров только цена цифры цены со скидкой (в данном случае "1.939,03 руб.")

с правкой кода или без правки кода, я буду делать, или сторонний человек, бесплатно или за деньги - не важно

просто ответ да/нет/не знаю

спасибо большое

Ссылка на сообщение
Поделиться на другие сайты
  • 5 years later...
В 26.05.2010, 15:09:05, kimer сказал:

Выставлена скидка на группу.

 

Можно ли сделать так, чтобы в карточке товара писалось:

Розничная цена 1.999,00 руб.

Ваша цена 1.939,03 руб.

Ваша скидка 3%

 

а в листинге категории только цифры цены со скидкой (1.939,03 руб)

 

заранее спасибо

Аналогичная ситуация. Хочу, чтобы в карточке товаров отображалась детальная информация по скидкам, а в листинге - только цена клиента. Файл vam_price.php посмотрела, но не допетрила, как его подкорректировать. Может, есть готовое решение?

Точнее даже, может я чего-то не понимаю, но разве править не в шаблонах нужно? Важно, чтобы скидка считалась, но чтобы просто в листинге товаров не отображалась фраза "Ваша скидка ...", т.к. она и места много занимает, да и не нужна в каждом поле.

Безымянный.png

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

Текст Ваша скидка можно заменить на /lang/russian/russian.php

т.е. поменять просто 'Ваша скидка' на ''

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

Этот файл я смотрела, но при предложенном решении возникает 2 проблемы:

1) В листинге товаров остаётся отображение процента, а мне вообще этого не нужно, т.к. оно мешает

2) В карточке товара исчезает надпись "Ваша скидка", остаётся только процент, что тоже не устраивает

А хотелось бы, чтобы в карточке товаров оставалось всё как есть, т.е. чтобы была фраза "Ваша скидка ...%", а в листинге товаров чтобы эта фраза отсутствовала целиком. По логике вещей, я должна откорректировать в шаблонах файл product_listing_columns.html , ведь именно он отвечает за то, как выглядит список товаров. Но в этом файле вроде как нет блока вывода скидки.

Вот поэтому я в замешательстве...

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

Ну тогда правьте /includes/classes/vam_price.php, удаляйте всё лишнее и оставляйте что нужно.

Правите в методе FormatSpecialDiscount

Там удаляйте, там видно например %, удаляйте его или вообще только число оставляйте.

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

Подкорректировала метод  FormatSpecialDiscount  - действительно в нём можно убрать полностью фразу о скидке. Но опять же остаётся проблема, что т.к. мы правим php, а не шаблон, если убрать эту фразу, то она удаляется и в листинге товаров, и в карточке конкретного товара.

Можно ли в эту функцию добавить условие типа "если текущая страница = product_info.php, то $price=один формат, иначе $price=другой формат"? С форматами я легко определюсь, но не знаю, как поставить ограничение по текущей странице

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

Может как-то так:

	function FormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus = 0, $message_old_price, $message_price, $message_discount) {
		$sPrice = $pPrice - ($pPrice / 100) * $discount;
		if ($format) {
		if ($pPrice > 0)
			if (isset($_GET['products_id']) && strstr($PHP_SELF, FILENAME_PRODUCT_INFO)) {
			$price = $message_old_price.$this->Format($pPrice, $format);
			} else {
			$price = '<span class="productOldPrice">'.$message_old_price.$this->Format($pPrice, $format).'</span><br />'.$message_price.$this->checkAttributes($pID).$this->Format($sPrice, $format).'<br />'.$message_discount.$discount.'%';
			}
			if ($vpeStatus == 0) {
				return $price;
			} else {
				return array ('formated' => $price, 'plain' => $sPrice);
			}
		} else {
			return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']);
		}
	}

 

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

Так не работает. Посмотрела, что $PHP_SELF всегда возвращает пустую строку, а FILENAME_PRODUCT_INFO всегда возвращает 'product_info.php'. Ну а в пустой строке, понятно, что такое вхождение не ищется...

Заработало вот так:

if (isset($_GET['products_id'])) {
	$price = '<span class="productOldPrice">'.$message_old_price.$this->Format($pPrice, $format).'</span><br />'.$message_price.$this->checkAttributes($pID).$this->Format($sPrice, $format).'<br />'.$message_discount.$discount.'%';
} else {
	$price = '<span class="productOldPrice">'.$message_old_price.$this->Format($pPrice, $format).'</span><br />'.$message_price.$this->checkAttributes($pID).$this->Format($sPrice, $format);
}

Т.е. просто убрала лишнее не отрабатывающее условие и проверяю, что в параметрах указан конкретный id товара.

Спасибо за наводку! :)

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

Может так:

	function FormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus = 0, $message_old_price, $message_price, $message_discount) {
		$sPrice = $pPrice - ($pPrice / 100) * $discount;
		if ($format) {
		if ($pPrice > 0)
			if ($_SERVER['REDIRECT_URL'] == '/product_info.php') {
			$price = $message_old_price.$this->Format($pPrice, $format);
			} else {
			$price = '<span class="productOldPrice">'.$message_old_price.$this->Format($pPrice, $format).'</span><br />'.$message_price.$this->checkAttributes($pID).$this->Format($sPrice, $format).'<br />'.$message_discount.$discount.'%';
			}
			if ($vpeStatus == 0) {
				return $price;
			} else {
				return array ('formated' => $price, 'plain' => $sPrice);
			}
		} else {
			return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']);
		}
	}

 

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

Если нужна ТОЛЬКО карточка товара, то лучше наверное как я написал, хотя и вариант Ваш вариант пойдёт, но в адресе сраницы параметр ?products_id=X может быть не только на странице карточки товара.

Но это не принципиально, я так думаю.

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