Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 теперь идем в редактор группы и добавляем тип ценоткрываемapi/Users.phpsimpla/GroupAdmin.phpsimpla/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.phpfunction 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) Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 Теперь надо вывести цены для каждой категории покупателей свои,при этом не показывая остальные.А на главной без регистрации просто розницу Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 не совсем понял в какую часть кода api/Users.php добавлять параметры страницы Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 как не понятно - function get_groups() Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 Не то имел ввиду, шаблон обновлять на сайте? Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 simpla/design/html/group.tpl Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 ага спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 сделал Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 что дальше делать? Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 Пока покупателю показывается только розничная цена, даже при перенесении его в определенную группу,но в группах уже можно выбрать цену которая бы показывалась покупателю Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 а тут много вариантов. один из них вот такой вот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; }проверяйте в другом браузере, не в том где вы залогинены как админДалее включайте свою фантазию. Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 И еще при переходе в myphpadmin с любой таблицы на таблицу s_groups выкидывает из системы Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 ничего не поменялось Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 УРА!!!Заработало!!!Ключевая фраза "проверяйте в другом браузере, не в том где вы залогинены как админ" Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 Спасибо огромное!Буду тестить! Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 ничего не поменялосьзайдите с другого браузера или выйдете с админкиполучилось вот так вот Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 10 марта, 2013 Автор Жалоба Поделиться Опубликовано 10 марта, 2013 Wizard - вам памятник при жизни нужно ставить!Спасибо за терпение!Я думаю вся эта дискуссия поможет многим юзверям Simpla Цитата Ссылка на сообщение Поделиться на другие сайты
Rash Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 да уж... Wizard чета раздобрился))) Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 10 марта, 2013 Жалоба Поделиться Опубликовано 10 марта, 2013 Настроение хорошее))) Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 11 марта, 2013 Автор Жалоба Поделиться Опубликовано 11 марта, 2013 Цены можно выставлять только в двух вариантах, добавляешь третий вариант -цвет или размер, подтягиваются только розничная и старая цена,Wizard подскажи плз где надо подправить код. Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 11 марта, 2013 Жалоба Поделиться Опубликовано 11 марта, 2013 ниже листинга вариантов есть new_variant, вот там тоже добавьте поля для цен. Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 11 марта, 2013 Автор Жалоба Поделиться Опубликовано 11 марта, 2013 Ага нашел спасибо, в файле simpla/design/html/product.tplтам где new_variant надо добавить<li class="variant_price"><input name="variants[price][]" type="" value="" /></li><li class="variant_price"><input name="variants[price_1][]" type="" value="" /></li><li class="variant_price"><input name="variants[price_2][]" type="" value="" /></li><li class="variant_price"><input name="variants[price_3][]" type="" value="" /></li> Цитата Ссылка на сообщение Поделиться на другие сайты
Danya Опубликовано 15 марта, 2013 Жалоба Поделиться Опубликовано 15 марта, 2013 Wizard Спасибо Вам большое за помощь в реализации данного дополнения.Я проделал все шаги, указанные в этой теме.В шаблоне сайта какую конструкцию вывести, чтобы при смене цены в группе пользователя, цена менялась на сайте? Цитата Ссылка на сообщение Поделиться на другие сайты
anton_from_ip Опубликовано 19 марта, 2013 Автор Жалоба Поделиться Опубликовано 19 марта, 2013 А цена что не меняется что-ли? Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 19 марта, 2013 Жалоба Поделиться Опубликовано 19 марта, 2013 очень даже меняется Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.