Перейти к содержимому


Фото
* * * * * 2 голосов

Разбивка по ценам и категориям покупателям


  • Чтобы отвечать, сперва войдите на форум
90 ответов в теме

#21 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 04:15

через phpmyadmin



#22 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 04:17

да это я понял,я уже тут,как добавить и куда именно? В таблицу s_variants?



#23 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 04:24

через окно запроса sql?



#24 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 04:26

Структура -> добавить после -> кнопка ок -> тип flot - 14,2 -> кнопка сохранить



#25 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 04:32

все сделал



#26 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 04:42

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

открываем

api/Users.php
simpla/GroupAdmin.php
simpla/design/html/group.tpl

обновляем шаблон

<!-- Параметры страницы -->
<div class="block">
<ul>
<li><label class=property>Цена</label>
<select name="price" size="1">
<option {if $group->price=='price'}selected{/if} value="price">Цена 1</option>
<option {if $group->price=='price_1'}selected{/if} value="price_1">Цена 2</option>
<option {if $group->price=='price_2'}selected{/if} value="price_2">Цена 3</option>
<option {if $group->price=='price_3'}selected{/if} value="price_3">Цена 4</option>
</select>
</li>
<li><label class=property>Скидка</label><input name="discount" class="simpla_inp" type="text" value="{$group->discount|escape}" />%</li>
</ul>
</div>
<!-- Параметры страницы (The End)-->


Обновляем GroupAdmin.php

$group->id = $this->request->post('id', 'integer');
$group->name = $this->request->post('name');
$group->discount = $this->request->post('discount');
$group->price = $this->request->post('price');


Обновляем Users.php

function get_groups()
	{
		// Выбираем группы
		$query = $this->db->placehold("SELECT g.id, g.name, g.discount, g.price FROM __groups AS g ORDER BY g.discount");
		$this->db->query($query);
		return $this->db->results();
	}


скачем в phpmyadmin и добавляем в таблицу s_groups значение price -> varchar(255)



#27 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 04:43

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



#28 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 04:48

не совсем понял в какую часть кода api/Users.php добавлять параметры страницы



#29 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 04:51

как не понятно - function get_groups()



#30 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:00

Не то имел ввиду, шаблон обновлять на сайте?



#31 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 05:01

simpla/design/html/group.tpl



#32 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:02

ага спасибо



#33 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:11

сделал



#34 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:11

что дальше делать?



#35 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:17

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



#36 Wizard

Wizard
  • Фрилансер
  • 692 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

Опубликовано 10.03.2013 - 05:26

а тут много вариантов. один из них вот такой вот

api/Variasnts.php обновляем функции

public function get_variants($filter = array())
	{		
		$product_id_filter = '';
		$variant_id_filter = '';
		$instock_filter = '';
		
		if(!empty($filter['product_id']))
			$product_id_filter = $this->db->placehold('AND v.product_id in(?@)', (array)$filter['product_id']);
		
		if(!empty($filter['id']))
			$variant_id_filter = $this->db->placehold('AND v.id in(?@)', (array)$filter['id']);

		if(!empty($filter['in_stock']) && $filter['in_stock'])
			$variant_id_filter = $this->db->placehold('AND (v.stock>0 OR v.stock IS NULL)');

		if(!$product_id_filter && !$variant_id_filter)
			return array();

		$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.price_1, v.price_2, v.price_3, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment, v.position
					FROM __variants AS v
					WHERE
					1
					$product_id_filter
					$variant_id_filter
					ORDER BY v.position
					", $this->settings->max_order_amount);

        $this->db->query($query);
        $result = $this->db->results();

        $user = array();
        $group = array();
		// Пользователь, если залогинен
		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);
			}
		}

		if(!empty($group) && $group->price){
           $price = $group->price;
		   $variants = array();
           foreach($result as $variant){
              $variant->price = $variant->$price > 0 ? $variant->$price : $variant->price;
              $variants[] = $variant;
           }
           return $variants;
		}else{
           return $result;
		}

	}

	
	public function get_variant($id)
	{	
		if(empty($id))
			return false;
			
		$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.price_1, v.price_2, v.price_3, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment
					FROM __variants v WHERE id=?
					LIMIT 1", $this->settings->max_order_amount, $id);
		
		$this->db->query($query);	
		$variant = $this->db->result();

        $user = array();
        $group = array();
		// Пользователь, если залогинен
		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);
			}
		}

		if(!empty($group) && $group->price){
           $price = $group->price;
           $variant->price = $variant->$price > 0 ? $variant->$price : $variant->price;
        }

		return $variant;
	}


проверяйте в другом браузере, не в том где вы залогинены как админ

Далее включайте свою фантазию.



#37 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:27

И еще при переходе в myphpadmin с любой таблицы на таблицу s_groups выкидывает из системы



#38 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:32

ничего не поменялось



#39 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:36

УРА!!!Заработало!!!Ключевая фраза "проверяйте в другом браузере, не в том где вы залогинены как админ"



#40 anton_from_ip

anton_from_ip
  • Пользователь
  • 66 сообщений

Опубликовано 10.03.2013 - 05:37

Спасибо огромное!Буду тестить!






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых