Перейти к содержанию
oligarhist

Как создать в магазине категорию услуг

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

Идея в том. чтобы в Open Cart создать витрину услуг или сделать словарь (энциклопедию). Есть товары, у которых есть цена и все остальное.
А есть услуги (или статьи), которые удобно заводить в магазине также как и товары. Но у них не должно быть цены, кнопки купить, сравнить и все остальное.

 

Здесь есть две задачи:

1. Чтобы в категории был список услуг в виде сетки без цен с некими изображениями

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

Я на эту тему нашел два текста.

 

Первый - как вообще из Open Cart убрать цены. Хороший пост на Хабре "Переделываем OpenCart в CMS сайта-визитки, или OpenCart «витрина» style" - http://habrahabr.ru/sandbox/64228/

Второй - как создать новую схему в Open Cart http://s-engineer.ru/dobavlyaem-novuyu-stranicu-sxemu-v-opencart/

 

Я эти два способа скрестил. То есть создал схему A и прописал ее в контроллере и View (файл TPL) по статье номер 1. Для клонирования использовал файлы category - php и tpl

Затем я вырезал из tpl представление цены. 

 

И вот не работает. То есть в категории услуги отображаются с ценой. 

 

Может быть есть модуль. который решает мою задачу или кто-то делал сам это все? Не могу сказать, что разобрался как контроллер PHP обменивается данными с моделью и View. И вероятно решение проблемы именно здесь. 

 

 

 

Поделиться сообщением


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

как вариант - если у вас товары-услуги имеют в качестве главной категории какую-то или какие-то конректно категории - то скройте вот так:

 ниже кусок из vqmod файла

	<!-- МОДЕЛЬ -->
	<file name="catalog/model/catalog/category.php">
		<operation error="log"> 
			<search position="before"><![CDATA[
				public function getCategory($category_id) {
			]]></search>
			<add><![CDATA[
				public function getProductMainCategory($product_id) {
				$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1");
				return (isset($query->row['category_id']) ? $this->getCategory($query->row['category_id']) : false);
				}
			]]></add>
		</operation>
	</file>

	<!-- КОНТРОЛЛЕР -->
	<file path="catalog/controller/product/" name="category.php">
		<operation error="skip">
			<search position="before"><![CDATA[
				$this->data['products'][] = array(
			]]></search>
			<add><![CDATA[
				$main_category_info = $this->model_catalog_category->getProductMainCategory($result['product_id']);
			]]></add>
		</operation>
		<operation error="skip">
			<search position="after"><![CDATA[
				'product_id'  => $result['product_id'],
			]]></search>
			<add><![CDATA[
				'main_category'       => ($main_category_info ? $main_category_info['category_id'] : false), 
			]]></add>
		</operation>
	</file>

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

<?php if (!$product['main_category']=='1') { ?>
 тут код кнопки и цена
<?php }?>

в таваре так
 

	<file path="catalog/controller/product/" name="product.php">
		<operation error="skip" info=""> 
			<search position="before"><![CDATA[
				$this->load->model('tool/image');
			]]></search>
			<add><![CDATA[
				$categories = $this->model_catalog_product->getCategories($product_id);
				if ($categories)
				$categories_info = $this->model_catalog_category->getCategory($categories[0]['category_id']);
				$this->data['main_category_id'] = $categories_info['category_id'];
			]]></add>
		</operation>
	</file>

и во вьюхе товара оберните так
 

<?php if (!$main_category_id=='1') { ?>

<?php }?>

Поделиться сообщением


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

В базе сделайте поле в таблице product и назовите как угодно. В админке в карточку товара прикрутите чекбокс типа да\нет. В карточке товара проверяйте условие, если чекбокс говорит да - выводится товар, если нет - услуга

Поделиться сообщением


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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.