Перейти к содержанию
Официальный форум поддержки Simpla

Две цены для зарегистрированных и обычных клиентов


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

Привет друзья!

Решил сделать очередной метод "две цены", то есть 1-ю цену розничную видит просто зашедший клиент, в 2-ю опт цену видит зарегистрированный.

 

добавим в Variants.php в ф-ции get_variants и get_variant 

 v.price_2

в БД также сделаем price_2

 

далее в api/Cart.php после

$cart->purchases[] = $purchase;

добавим:

if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))
{
   $cart->total_price += $item->variant->price_2*$item->amount;
}
else
{
   $cart->total_price += $item->variant->price*$item->amount;
}

в Orders.php в ф-цию update_total_price делаем по аналогии 

 

в шаблоне дизайна где цены добавим

		{if $user}
			{$purchase->variant->price_2|convert} {$currency->sign|escape}
		{else}
			{$purchase->variant->price|convert} {$currency->sign|escape}
		{/if}

Готово! Цена выводится, заказ принимается.

 

 

P.S.

Подскажите пожалуйста, если создать группу "ОПТ" id которой - id2

Что нужно в api/Cart.php 

вместо 

if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))

чтобы вывести группу ИД которой 2 ?

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

 

я видел эти темы, но в них нет того что я спрашивал.

как вывести в шаблоне {if $user->group_id == 2} это я знаю

а мне нужно:

 

Что нужно в api/Cart.php 

вместо 

if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))

чтобы вывести группу ИД которой 2 ?

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

подскажите пожалуйста куда это вставить?

Смотря для чего Вам это нужно.

Ну вот я сообщу Вам куда вставить и что дальше то?

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

Смотря для чего Вам это нужно.

Ну вот я сообщу Вам куда вставить и что дальше то?

 

форум для того чтобы делиться и помогать.

я начал реализацию, но появились трудности в одной строке, я попросил помощи на форуме, вы сказали А своим кодом, но Б нужно вытягивать чтоли?

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

форум для того чтобы делиться и помогать.

я начал реализацию, но появились трудности в одной строке, я попросил помощи на форуме, вы сказали А своим кодом, но Б нужно вытягивать чтоли?

Вам лучше не стоит делать что-то дальше, Вы ведь даже не понимаете что делаете.
Ссылка на сообщение
Поделиться на другие сайты

Друзья, есть кто знает что нужно прописать?

if(isset($_SESSION['user_id']) && $group = $this->users->get_group(intval(2)))

выводит цену для пользователей которые залогинены :angry:

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

ЧТО ЗА ИДИОТИЗМ??????????

 

чтобы вывести группу ИД которой 2 ?

Куда вывести?

В каком виде?

Какое отношение ГРУППА имеет к цене????

Полный бред...

Если напишете, ЧТО именно надо - получите ответ.

А подобным говном не надо форум засорять))



И api/Cart.php цену НИКУДА НЕ ВЫВОДИТ

В этой функции вообще нет вывода

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

Вам дали ссылку на РАБОЧЕЕ решение, неоднократно проверенное

Но нет, надо группу выводить...

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

ЧТО ЗА ИДИОТИЗМ??????????

Куда вывести?

В каком виде?

Какое отношение ГРУППА имеет к цене????

Полный бред...

Если напишете, ЧТО именно надо - получите ответ.

А подобным говном не надо форум засорять))

 

И api/Cart.php цену НИКУДА НЕ ВЫВОДИТ

В этой функции вообще нет вывода

 

еще раз повторюсь:

для того чтобы вывести в шаблоне нужно:

{if $user->group_id == 2}
  цена партнера
{else}
  цена розница
{/if}

тут вопросов нет.

 

в api/Cart.php уже есть (с мелким изменением):

				foreach($items as $variant_id=>$item)
				{	
					$purchase = null;
					if(!empty($products[$item->variant->product_id]))
					{
						$purchase = new stdClass();
						$purchase->product = $products[$item->variant->product_id];						
						$purchase->variant = $item->variant;
						$purchase->amount = $item->amount;

						$cart->purchases[] = $purchase;

						if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))
						{
							$cart->total_price += $item->variant->price_2*$item->amount;
						}
						else
						{
							$cart->total_price += $item->variant->price*$item->amount;
						}
						
						$cart->total_products += $item->amount;
						
					}
				}

вот я и спрашиваю на что нужно заменить if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) чтобы в шаблоне корзины total_price считал цену для пользователей которые входят во вторую группу

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

Может, Вам надо совсем не то, что Вы пишете, а чтобы в api/Cart.php для покупателей группы ID=2 считалось на основе цены price_2, а в прочих случаях на основе стандартной цены price ?

 

Если так, то пробуйте
if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2)

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

Может, Вам надо совсем не то, что Вы пишете, а чтобы в api/Cart.php для покупателей группы ID=2 считалось на основе цены price_2, а в прочих случаях на основе стандартной цены price ?

 

Если так, то пробуйте

if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2)

 

да именно так и надо) в коде ведь это видно)

попробовал ваше решение, но увы....цена выводится стандартная для всех( :(

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

да именно так и надо) в коде ведь это видно)

попробовал ваше решение, но увы....цена выводится стандартная для всех( :(

 

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

 

Пока что с Вами ситуация в виде "они сами не знают, что они хочут"...

 

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

http://forum.simplacms.ru/topic/8602-%D0%B2%D0%B2%D0%BE%D0%B4-%D1%86%D0%B5%D0%BD-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%B5%D0%BF%D0%BE%D1%81%D1%82%D0%B0/

там решается сравнительно несложная задача, и то там разработчик проводил серьезные переделки раз 5, и, кажется, полностью до конца как следует не довел...

 

И есть очень старая тема

http://forum.simplacms.ru/topic/4153-%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D1%86%D0%B5%D0%BD%D0%B0%D0%BC-%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC/

Там довольно хорошо детально расписывается решение очень близкой задачи. А Вы велосипед изобретаете...

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

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

 

Пока что с Вами ситуация в виде "они сами не знают, что они хочут"...

 

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

http://forum.simplacms.ru/topic/8602-%D0%B2%D0%B2%D0%BE%D0%B4-%D1%86%D0%B5%D0%BD-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%B5%D0%BF%D0%BE%D1%81%D1%82%D0%B0/

там решается сравнительно несложная задача, и то там разработчик проводил серьезные переделки раз 5, и, кажется, полностью до конца как следует не довел...

 

И есть очень старая тема

http://forum.simplacms.ru/topic/4153-%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D1%86%D0%B5%D0%BD%D0%B0%D0%BC-%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC/

Там довольно хорошо детально расписывается решение очень близкой задачи. А Вы велосипед изобретаете...

 

 

"цена выводится стандартная для всех"

Имею ввиду что выводится цена как для розничного покупателя (не зависимо входит человек во вторую группу, или нет).

Мое решение выглядит проще чем те что есть (не нужно много файлов править), вот и все :)  + в других решениях не затрагивается TOTAL_PRICE, то есть просто выводит цену, не меняя ее в ИТОГОвой цене корзины и заказа

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

Вот как раз ТВОЯ говноподелка и не учитывает заказа и вывода цены пользователю

А существующее решение учитывает ВСЕ

Если бы ты не сношал людям моск а попробовал ПОСТАВИТЬ и ПРОВЕРИТЬ - ты бы в этом убедился...

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

Вот как раз ТВОЯ говноподелка и не учитывает заказа и вывода цены пользователю

А существующее решение учитывает ВСЕ

Если бы ты не сношал людям моск а попробовал ПОСТАВИТЬ и ПРОВЕРИТЬ - ты бы в этом убедился...

перед тем как писать, что оно не до конца работает я проверил! 

даже если бы я не пробовал другое дополнение, чем плохо, что люди стараются пробовать другие решения???? 

форум на то и форум чтобы спрашивать и пр.

Изменено пользователем n1c
Ссылка на сообщение
Поделиться на другие сайты

Имею ввиду что выводится цена как для розничного покупателя (не зависимо входит человек во вторую группу, или нет).

То, что Вы имеете в виду, надо не утаивать, а сообщать ТОЧНО и ПОНЯТНО. В данном случае неизвестно, ГДЕ, НА КАКОЙ СТРАНИЦЕ, В КАКОМ МЕСТЕ неправильно выводится цена. И это, скорее всего, следствие Вашего изобретения, Вы в одном месте вывод изменили, а в другом - нет...

 

Мое решение выглядит проще чем те что есть (не нужно много файлов править), вот и все :) + в других решениях не затрагивается TOTAL_PRICE, то есть просто выводит цену, не меняя ее в ИТОГОвой цене корзины и заказа

 

От решения еще требуется, чтоб оно правильно функционировало на ВСЕХ страницах. А у Вас, как видно, пока выходит по принципу: одно строим, другое ломаем...

 

А решение от WIZARD устроено так, что подставляет нужную цену всего лишь в одном файле, и все прекрасно работает, и не надо менять ни api/cart.php, ни в шаблонах (с чем Вы сейчас мучаетесь), ни в прочих местах...

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

перед тем как писать, что оно не до конца работает я проверил! 

даже если бы я не пробовал другое дополнение, чем плохо, что люди стараются пробовать другие решения???? 

форум на то и форум чтобы спрашивать и пр.

А ты его под админом проверял? Или нет?

Админу всегда показывается цена обычная))) Сразу видно, что человек код читать не умеет...

Проверять надо в браузере, в котором не залогинен в админку

И тогда все работает на ура. И проверено это все не один десяток раз)))

Ссылка на сообщение
Поделиться на другие сайты
		// Пользователь, если залогинен
		if(isset($_SESSION['user_id']) && !isset($_SESSION['admin']))
		{
		   $u = $this->users->get_user(intval($_SESSION['user_id']));
		   if($u && $u->enabled)
		   {
		      $user = $u;
			  $group = $this->users->get_group($user->group_id);
			}
		}

&& !isset($_SESSION['admin']

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

А ты его под админом проверял? Или нет?

Админу всегда показывается цена обычная))) Сразу видно, что человек код читать не умеет...

Проверять надо в браузере, в котором не залогинен в админку

И тогда все работает на ура. И проверено это все не один десяток раз)))

согласен, мой косяк, не досмотрел код (зашел как админ).

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

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

То, что Вы имеете в виду, надо не утаивать, а сообщать ТОЧНО и ПОНЯТНО. В данном случае неизвестно, ГДЕ, НА КАКОЙ СТРАНИЦЕ, В КАКОМ МЕСТЕ неправильно выводится цена. И это, скорее всего, следствие Вашего изобретения, Вы в одном месте вывод изменили, а в другом - нет...

 

 

От решения еще требуется, чтоб оно правильно функционировало на ВСЕХ страницах. А у Вас, как видно, пока выходит по принципу: одно строим, другое ломаем...

 

А решение от WIZARD устроено так, что подставляет нужную цену всего лишь в одном файле, и все прекрасно работает, и не надо менять ни api/cart.php, ни в шаблонах (с чем Вы сейчас мучаетесь), ни в прочих местах...

 

я не скрываю код, делаю на базовом движке БЕЗ ПРАВОК.

				foreach($items as $variant_id=>$item)
				{	
					$purchase = null;
					if(!empty($products[$item->variant->product_id]))
					{
						$purchase = new stdClass();
						$purchase->product = $products[$item->variant->product_id];						
						$purchase->variant = $item->variant;
						$purchase->amount = $item->amount;

						$cart->purchases[] = $purchase;

						if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2)
						{
							$cart->total_price += $item->variant->price_2*$item->amount;
						}else{
							$cart->total_price += $item->variant->price*$item->amount;
						}
						
						$cart->total_products += $item->amount;
						
					}
				}

по моему мнению проблема в коде if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2)  -- это ваш вариант изменения

 

в шаблоне корзины стоит


		{if $group->id == 2}
			{($purchase->variant->price_2*$purchase->amount)|convert} {$currency->sign|escape}
		{else}
			{($purchase->variant->price*$purchase->amount)|convert} {$currency->sign|escape}
		{/if}
		
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...