Jump to content


Photo
- - - - -

Разные цены для разных покупателей


Best Answer xatberg , 17 April 2014 - 11:41

Получилось но правильный вариант будет такой





// Получаем  группу текущего пользователя 
$user = JFactory::getUser();
$user_group = $user->groups;

if (in_array('2', $user->groups))  {
//   Для группы 1
    $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
}  if (in_array('12', $user->groups)) {
//   Для группы 2
    $mimimalPrice = 10000;
} else {
// по умолчанию
   $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
}

if ($mimimalPrice > 0 && $mimimalPrice > $totalPrice) {
$this->app->jbnotify->warning(JString::str_ireplace('%S', $mimimalPrice, JText::_('JBZOO_CART_MINIMAL_PRICE_ERROR')));
$error = true;
}

единственное смущает вот

 

 

пустая ошибка как ее убрать ?

 

или еще лучше заполнить текстом типа

 

"Докупить товара со ссылкой  вернутся назад"

 

 

                                                              пожелание на будующие

 

ну и в самом елементе priceadvance где есть возможность указывать кол во по умолчанию, и множитель добавить функцию

сделать так чтобы покупатель  не смог его изменять ни в карточке товара ни в корзине 

что то вроде :

продажа товара по 5шт не меньше

тут без js не обойтись наверно.. но все же мало ли, может в будующую версию запланируете

Go to the full post


  • This topic is locked This topic is locked
5 replies to this topic

#1 xatberg

xatberg
  • JBZoo User (rus)
  • User rate: 2.4
  • posts: 187
  • topics: 12

Posted 09 April 2014 - 09:57

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

нужно что бы все посетители видели обе цены 

мысли в слух..

к примеру есть 1 товар на сумму 100р

для оптовика будет цена 70р

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

можно создать в (joomla) группу для оптовиков и использовать еще один элемент price advance уже с учетом скидки

или как сделать так чтобы заказ был на минимальную сумму скажем 10000руб для оптовиков

для розничных покупателей от 100руб

 

подскажите кто как реализовывал буду благодарен

возможно где то вопрос подымался не нашел на форуме

 

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


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 11 April 2014 - 17:29

можно создать в (joomla) группу для оптовиков и использовать еще один элемент price advance уже с учетом скидки

ДА так можно сделать и с помощью условий выводить нужную цену

или как сделать так чтобы заказ был на минимальную сумму скажем 10000руб для оптовиков

Придется так же разделить пользователей на 2 группы. Далее в контроллере корзины, она расположена тут

сайт\media\zoo\applications\jbuniversal\framework\controllers\basket.php 

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

if ($order) {
	$totalPrice   = $order->getTotalPrice();
	$mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);

	if ($mimimalPrice > 0 && $mimimalPrice > $totalPrice) {
		$this->app->jbnotify->warning(JString::str_ireplace('%S', $mimimalPrice, JText::_('JBZOO_CART_MINIMAL_PRICE_ERROR')));
		$error = true;
	}
}
 

а вторую минимальную цену заказа указывайте уже в коде. Далее делайте соответствующие проверки на группу пользователей и в зависимости от группы подставляйте нужную минимальную сумму. 

Принцип действия примерно такой...


  • 1
Изображение
 

#3 xatberg

xatberg
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.4
  • posts: 187
  • topics: 12

Posted 14 April 2014 - 17:13

сейчас сделал так 

 

У обоих элементов уровень доступа как опубликованный

 

То есть тизере видно обе цены (для всех пользователей)

 

В фулл позиции разделил условиями на 2 группы

 

То есть не авторизованный юзер не видит(в фулле) вообще ни чего ,как только авторизовался видит розничную цену и может добавить в корзину 

 

Оптовый покупатель (если входит в группу оптовиков) как авторизовался видит только свою оптовую цену

 

не знаю как на сколько этот вариант будет правильный, или как сделать лучше?

сайт\media\zoo\applications\jbuniversal\framework\controllers\basket.php 

Какие правки там вводить не как не сообразить мне ))

 

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

 

как теперь группе оптовиков задать минимальную цену 10000р ?


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 14 April 2014 - 18:51

Какие правки там вводить не как не сообразить мне ))   допустим я в админке задал минимальную цену 100р   как теперь группе оптовиков задать минимальную цену 10000р ?

Добавьте переменную в коде, например

$minPriceForOptovik = 10000;

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

Можно сделать примерно следующим образом(как пример). Получите группу в какую то переменную и делайте проверки

if($userGroup == 1) {
//   Для группы 1
    $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
} elseif ($userFroup == 2) {
//   Для группы 2
    $mimimalPrice = 10000;
} else {
// по умолчанию
   $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
}
if ($mimimalPrice > 0 && $mimimalPrice > $totalPrice) {
    $this->app->jbnotify->warning(JString::str_ireplace('%S', $mimimalPrice, JText::_('JBZOO_CART_MINIMAL_PRICE_ERROR')));
    $error = true;
}

Edited by Cheren-dow, 14 April 2014 - 18:52.

  • 1
Изображение
 

#5 xatberg

xatberg
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.4
  • posts: 187
  • topics: 12

Posted 17 April 2014 - 11:41   Best Answer

Получилось но правильный вариант будет такой





// Получаем  группу текущего пользователя 
$user = JFactory::getUser();
$user_group = $user->groups;

if (in_array('2', $user->groups))  {
//   Для группы 1
    $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
}  if (in_array('12', $user->groups)) {
//   Для группы 2
    $mimimalPrice = 10000;
} else {
// по умолчанию
   $mimimalPrice = (float)$appParams->get('global.jbzoo_cart_config.minimal-summa', 0);
}

if ($mimimalPrice > 0 && $mimimalPrice > $totalPrice) {
$this->app->jbnotify->warning(JString::str_ireplace('%S', $mimimalPrice, JText::_('JBZOO_CART_MINIMAL_PRICE_ERROR')));
$error = true;
}

единственное смущает вот

 

32.jpg

 

пустая ошибка как ее убрать ?

 

или еще лучше заполнить текстом типа

 

"Докупить товара со ссылкой  вернутся назад"

 

 

                                                              пожелание на будующие

 

ну и в самом елементе priceadvance где есть возможность указывать кол во по умолчанию, и множитель добавить функцию

сделать так чтобы покупатель  не смог его изменять ни в карточке товара ни в корзине 

что то вроде :

продажа товара по 5шт не меньше

777jpg.jpg

тут без js не обойтись наверно.. но все же мало ли, может в будующую версию запланируете


Edited by xatberg, 17 April 2014 - 14:19.

  • 0

#6 xatberg

xatberg
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.4
  • posts: 187
  • topics: 12

Posted 19 April 2014 - 16:45

ошибку пустую я исправил так

в этом месте сделал вывод константы





$error = true;
$this->app->jbnotify->warning(JText::_('There was an error saving your submission, please try again later.'));
$this->app->jbnotify->warning((string)JText::_($e));
}


$this->setRedirect(JRoute::_($this->app->jbrouter->basket($Itemid, $appId), false), $msg);
}

вот так





$error = true;
$this->app->jbnotify->warning(JText::_('There was an error saving your submission, please try again later.'));
$this->app->jbnotify->warning((string)JText::_($e));
}

$msg = JText::_('JBZOO_CART_SUCCESS_MESSAGE2');
$this->setRedirect(JRoute::_($this->app->jbrouter->basket($Itemid, $appId), false), $msg);
}

ну и там дописал типа





JBZOO_CART_SUCCESS_MESSAGE2                      = "Спокойствие Добавьте еще товар или увеличите кол-во до минимальной суммы :)"

получилось

 

ый.jpg

 

не знаю только при каких условиях это может выйти боком))


Edited by xatberg, 19 April 2014 - 16:49.

  • 0




Click to return to top of page in style!