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

Модернизация поиска AJAX


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

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

+data.price+ надо как-то перемножить с курсом перед выводом...но непонятно как.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 79
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Изображения в теме

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

Если вопрос про "живой" поиск, то там несколько посложнее.

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

1. изменить запрос, чтобы получать цены.
2. пересчитать в другую валюту.
3. И, наконец, сделать вывод.

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

Можно поинтересоваться для какой цели знак подчеркивания в категориях?

demo.energodom.com.ua/_bytovaya-tehnika

Для seo модуля?

Пишите в скайп, поговорим ; )

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Пишите в скайп, поговорим ; )

cernos, подскажите, как закрепить поиск так, чтобы он не смещался, в моем случае, влево? 

А то когда нажимаешь поиск, вводишь данные он "вылезает" и всё нормально отображается, стоит переключиться на другое окно или вкладку, как поиск съезжает и пока не перезагрузишь окно, он не становится на место. 

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

cernos, подскажите, как закрепить поиск так, чтобы он не смещался, в моем случае, влево? 

А то когда нажимаешь поиск, вводишь данные он "вылезает" и всё нормально отображается, стоит переключиться на другое окно или вкладку, как поиск съезжает и пока не перезагрузишь окно, он не становится на место. 

Я мало понял о вашей проблеме. Нужно смотреть и желательно на реальном примере. URL желательно в л.с.

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

Я мало понял о вашей проблеме. Нужно смотреть и желательно на реальном примере. URL желательно в л.с.

Отписался в ЛС. 

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

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

Если вопрос про "живой" поиск, то там несколько посложнее.

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

1. изменить запрос, чтобы получать цены.

2. пересчитать в другую валюту.

3. И, наконец, сделать вывод.

 

Наброски можете показать? Как вообще возможно реализовать в коде? А то у меня совсем мысли запутались по этому поводу.

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

Наброски можете показать?

Конечно, могу. Посидеть часок-другой, набросать. А потом надо будет еще отвечать на десятки вопросов типа - как набросок 5 превратить в работающий код...

Если готовы оплачивать, обращайтесь.

Как вообще возможно реализовать в коде?

Вообще можно реализовать тысячами способов. Ожидаете, что кто-то Вам напишет хотя бы десяток? Сомневаюсь...

А то у меня совсем мысли запутались по этому поводу.

Попробуйте расписать свои мысли в деталях. Какая мысль 1, какая мысль 2, что и за что запуталось...

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

На Simpla Версия 2.1.5 - работает

Но есть одно но, не отображаются картинки заглушки

 

 

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


  • Для категории: /files/categories/noimage_category.jpg
  • Для товара: /files/products/noproductimage.jpg

 

В файле ajax/search_products.php нужно указать полный путь к картинкам, то есть

к картинке noimage_category.jpg добавить /files/categories/ - /files/categories/noimage_category.jpg

к картинке noproductimage.jpg добавить /files/products/ - /files/products/noproductimage.jpg

В коде выделено красным

<?php
    chdir('..');
    require_once('api/Simpla.php');
    $simpla = new Simpla();
    $limit = 30;
    
    $keyword = $simpla->request->get('query', 'string');
    $SearchCategory = $simpla->request->get('category', 'string');    
    
    /**ПОИСК КАТЕГОРИЙ**/
    if($SearchCategory == 1)
    {
        $simpla->db->query('SELECT `parent_id`, `name`, `url`, `image` FROM `s_categories` WHERE (`name` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%") AND visible=1 ORDER BY `name` LIMIT 2', $limit);
        $categories = $simpla->db->results();
        
        foreach($categories as $category){
            
            if($category->image == "")$category->image = " /files/categories/noimage_category.jpg";            
            $category->image = "/files/categories/".$category->image;
            
            $products_names[] = $category->name;
            
            getCategoryTreeUrl($category->url,$category->parent_id,Array());
            $category->url = "/catalog/".$category->url;
            
            $category->thiss = "category";
            $products_data[] = $category;
        }
    }
    
    /**ПОИСК ТОВАРОВ**/
    
    $simpla->db->query('SELECT p.id, CONCAT_WS(" ",p.name,v.name) as `name`, p.url, v.price, i.filename as `image` FROM __products p
                        JOIN __variants v ON v.product_id=p.id
                        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?', $limit);
    $products = $simpla->db->results();

    foreach($products as $product)
    {
        if(!empty($product->image))
            {
                $product->image = $simpla->design->resize_modifier($product->image, 35, 35);
                $products_names[] = $product->name;
            }
        else{
            $product->image = "/files/products/noproductimage.jpg";
            $products_names[] = $product->name;    
            }
        $product->url = "/products/".$product->url;
        $products_data[] = $product;
    }

 

Может кому-то пригодиться/поможет.

Спасибо за усовершенствования.

Удачи всем.

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

Столкнулась с такой проблемой, когда выводит в поиске все варианты совпадения то невозможно в списке по клику перейти на сам товар, даже class "selected" не цепляет не выводит в html (
jquery.autocomplete-min.js последний Ajax Autocomplete for jQuery, version 1.2.9

 

Simpla 2.3.7

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

Установка моей версии "Допилинного поиска AJAX"

 

1. Открываем файл: ajax/search_products.php

2. Вместо: 

$keyword = $simpla->request->get('query', 'string'); 

 

Вставляем 

$keyword = $simpla->request->get('query', 'string');
$SearchCategory = $simpla->request->get('category', 'string');    
    
    /**ПОИСК КАТЕГОРИЙ**/
    if($SearchCategory == 1)
    {
        $simpla->db->query('SELECT `parent_id`, `name`, `url`, `image` FROM `s_categories` WHERE (`name` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%") AND visible=1 ORDER BY `name` LIMIT 2', $limit);
        $categories = $simpla->db->results();
        
        foreach($categories as $category){
            
            if($category->image == "")$category->image = "noimage_category.jpg";            
            $category->image = "/files/categories/".$category->image;
            
            $products_names[] = $category->name;
            
            getCategoryTreeUrl($category->url,$category->parent_id,Array());
            $category->url = "/catalog/".$category->url;
            
            $category->thiss = "category";
            $products_data[] = $category;
        }
    } 

 

3. Находим запрос в базу стандартный:

$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
                        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);

Заменяем на .... ВЫБЕРИТЕ НУЖНЫЙ ИЗ ЧЕТЫРЕХ:

   3.1. Стандартный вывод искомых товаров SIMPLA, НО из результатов поиска убираются товары, кол-во которых равно НУЛЮ. За это отвечает условие "AND (v.stock>0 OR v.stock is NULL)" при необходимости можно удалить, чтобы показывались все товары, даже которых нет в наличии.

$simpla->db->query('SELECT p.id, p.name, p.url, v.price, i.filename as `image` FROM s_products p
						JOIN __variants v ON v.product_id=p.id
						LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?', $limit); 

 

   3.2. Запрос: Если у товара несколько вариантов, то выводит так же и имя варианта, напр. IPhone Белый, IPhone Черный

$simpla->db->query('SELECT p.id, CONCAT_WS(" ",p.name,v.name) as `name`, p.url, v.price, i.filename as `image` FROM __products p
						JOIN __variants v ON v.product_id=p.id
						LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?', $limit); 

   3.3. Запрос для дополнения предыдущего, добавляет к ссылке товара ?variant=ID для перехода из поиска сразу к выбранному варианту товара

$simpla->db->query('SELECT p.id, CONCAT_WS(" ",p.name,v.name) as `name`,  REPLACE(CONCAT_WS("?", p.url, CAST(v.position AS CHAR)),"\'","") as `url`, v.price, i.filename as `image` FROM __products p
						JOIN __variants v ON v.product_id=p.id
						LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?',"?variant=", $limit);

   3.4 Запрос, выводит только один товар, первый вариант товара в поиске, даже если их несколько.

$simpla->db->query('SELECT p.id, p.name, p.url, v.price, i.filename as `image` FROM s_products p
						JOIN __variants v ON v.product_id=p.id
						LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) GROUP BY v.product_id ORDER BY p.name LIMIT ?', $limit);

 

4. Находим:

foreach($products as $product)
	{
		if(!empty($product->image))
			{
				$product->image = $simpla->design->resize_modifier($product->image, 35, 35);
				$products_names[] = $product->name;
			}
		else
			$products_names[] = $product->name;	
				
		$products_data[] = $product;
	}

Заменяем на:

foreach($products as $product)
	{
		if(!empty($product->image))
			{
				$product->image = $simpla->design->resize_modifier($product->image, 35, 35);
				$products_names[] = $product->name;
			}
		else{
			$product->image = "noproductimage.jpg";
			$products_names[] = $product->name;	
			}
		$product->url = "/products/".$product->url;
		$products_data[] = $product;
	}

 

 

ЕСЛИ У ВАС СТАНДАРТНЫЙ НЕ ИЗМЕННЫЙ  ФАЙЛ, ТО ВОТ СОДЕРЖИМОЕ ВСЕГО ФАЙЛА:

<?php
	chdir('..');
	require_once('api/Simpla.php');
	$simpla = new Simpla();
	$limit = 30;
	
	$keyword = $simpla->request->get('query', 'string');
	$SearchCategory = $simpla->request->get('category', 'string');	
	
	/**ПОИСК КАТЕГОРИЙ**/
	if($SearchCategory == 1)
	{
		$simpla->db->query('SELECT `parent_id`, `name`, `url`, `image` FROM `s_categories` WHERE (`name` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%" OR `meta_keywords` LIKE "%'.mysql_real_escape_string($keyword).'%") AND visible=1 ORDER BY `name` LIMIT 2', $limit);
		$categories = $simpla->db->results();
		
		foreach($categories as $category){
			
			if($category->image == "")$category->image = "noimage_category.jpg";			
			$category->image = "/files/categories/".$category->image;
			
			$products_names[] = $category->name;
			
			getCategoryTreeUrl($category->url,$category->parent_id,Array());
			$category->url = "/catalog/".$category->url;
			
			$category->thiss = "category";
			$products_data[] = $category;
		}
	}
	
	/**ПОИСК ТОВАРОВ**/
	
	$simpla->db->query('SELECT p.id, CONCAT_WS(" ",p.name,v.name) as `name`, p.url, v.price, i.filename as `image` FROM __products p
                        JOIN __variants v ON v.product_id=p.id
                        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?', $limit);
	$products = $simpla->db->results();

	foreach($products as $product)
	{
		if(!empty($product->image))
			{
				$product->image = $simpla->design->resize_modifier($product->image, 35, 35);
				$products_names[] = $product->name;
			}
		else{
			$product->image = "noproductimage.jpg";
			$products_names[] = $product->name;	
			}
		$product->url = "/products/".$product->url;
		$products_data[] = $product;
	}
	
	
	$res->query = $keyword;
	$res->suggestions = $products_names;
	$res->data = $products_data;
	header("Content-type: application/json; charset=UTF-8");
	header("Cache-Control: must-revalidate");
	header("Pragma: no-cache");
	header("Expires: -1");		
	print json_encode($res);

Файлы JS и CSS.

Удалите существующие в /js/autocomplete/ и замените на файлы из архива.

attachicon.gifautocomplete.zip

Подключать, так:

      <link href="/js/autocomplete/autocomplete/auto.complete.css" rel="stylesheet" type="text/css" />
      <script src="/js/autocomplete/autocomplete/jquery.autocomplete-min.js" type="text/javascript"></script>
      <script src="/js/autocomplete/autocomplete/auto.complete.js" type="text/javascript"></script>

 

Чтобы настроить ширину всплывающих подсказок, откройте файл auto.complete.js и измените значение width

 

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

  • Для категории: /files/categories/noimage_category.jpg
  • Для товара: /files/products/noproductimage.jpg

Вроде бы все. И вроде ничего не упустил, пробуйте, менял код кое где на ходу, потому что генерация URL товаров и категорий у меня измененная!

 

Сообщено обновлено 15.03.2014 - изменены запросы к БД с различными условиями вывода и компановки результатов поиска! Пункт 3

Пытался поставить, 2.3.3 версия, не работает, поиск выводит теперь один и тот же столбец с одинаковыми товарами, всё сделал по инструкции

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

Дело в том, что в новых версиях поиск немного поменялся.

Могу прикрепить файл своего поиска, как здесЬ: http:// glavteplo . com (в ссылке убери пробелы).

 

Посмотришь, если чо поменяешь на свой лад.

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

СОДЕРЖИМОЕ МОЕГО ФАЙЛА: (попробуй сделать копипаст)

<?php
	require_once('../api/Simpla.php');
	$simpla = new Simpla();
	$suggestions = Array();
	$limit = 30;
	
	$keyword = $simpla->db->escape($simpla->request->get('query', 'string'));
	$SearchCategory = $simpla->request->get('category', 'string');
	
	/**ПОИСК КАТЕГОРИЙ**/
	if($SearchCategory == 1)
	{
		$simpla->db->query('SELECT `parent_id`, `name`, `url`, `image` FROM `s_categories` WHERE (`name` LIKE "%'.$keyword.'%" OR `meta_keywords` LIKE "%'.$keyword.'%" OR `meta_keywords` LIKE "%'.$keyword.'%") AND visible=1 ORDER BY `name` LIMIT 2', $limit);
		$categories = $simpla->db->results();
		
		foreach($categories as $category)
		{
			$suggestion = new stdClass();
			
			if($category->image == "")$category->image = "noimage_category.jpg";			
			$category->image = "/files/categories/".$category->image;
			
			getCategoryTreeUrl($category->url,$category->parent_id,Array());
			$category->url = $categoryPath;
			unset($categoryPath);
			
			$category->thiss = "category";
			
			$suggestion->value = $category->name;
			$suggestion->data = $category;
			$suggestions[] = $suggestion;
		}
	}
	
	function getCategoryTreeUrl($url,$parent_id,$categoryPathArray)
	{	
		global $simpla,$limit,$categoryPath;
		
		$simpla->db->query('SELECT `parent_id`, `url` FROM `s_categories` WHERE `id`="'.$parent_id.'" AND visible=1 LIMIT 1', $limit);
		$result = $simpla->db->results();
		
		$categoryPathArray[] = $result[0]->url;
		
		if((int)$result[0]->parent_id == 0){		
			$i = (count($categoryPathArray)-1);			
			for(;$i>=0;$i--){
				if($categoryPathArray[$i] != "") $categoryPath .= $categoryPathArray[$i]."/";
			}
			$categoryPath = ("/_".$categoryPath.$url."/\n\n");
		}else{
			getCategoryTreeUrl($url,$result[0]->parent_id,$categoryPathArray);
		}
	}
	
	$simpla->db->query('SELECT p.id, CONCAT_WS(" ",p.name,v.name) as `name`, p.url, v.price, i.filename as `image` FROM __products p
						JOIN __variants v ON v.product_id=p.id
						LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.$keyword.'%" AND visible=1 AND (v.stock>0 OR v.stock is NULL) ORDER BY p.name LIMIT ?', $limit);
						
	$products = $simpla->db->results();
	
	foreach($products as $product)
	{
		$suggestion = new stdClass();
		
		if(!empty($product->image))
			$product->image = $simpla->design->resize_modifier($product->image, 35, 35);
		else
			$product->image = "noproductimage.jpg";
		
		$suggestion->value = $product->name;
		$suggestion->data = $product;
		$suggestions[] = $suggestion;
	}
	
	$res = new stdClass;
	$res->query = $keyword;
	$res->suggestions = $suggestions;
	
	header("Content-type: application/json; charset=UTF-8");
	header("Cache-Control: must-revalidate");
	header("Pragma: no-cache");
	header("Expires: -1");		
	print json_encode($res);

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

Люди добрые, подскажите, у меня как только в выборке из базы появляются p.name, p.views

 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)

То перестает работать живой поиск на сайте (нет выпадашки с предложениями)..

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

Люди добрые, подскажите, у меня как только в выборке из базы появляются p.name, p.views

 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)

То перестает работать живой поиск на сайте (нет выпадашки с предложениями)..

 

в симпла в базе нет поля p.views, от этого ошибка в запросе удалите его, а p.name оставьте. видимо у ТС был модуль количества просмотров товара. отсюда и поле.

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

в симпла в базе нет поля p.views, от этого ошибка в запросе удалите его, а p.name оставьте. видимо у ТС был модуль количества просмотров товара. отсюда и поле.

mishanya, извиняюсь, неправильно скопировал, не "p.name, p.views", а p.views, v.price. Я убирал p.views, но с v.price тоже не работает.. Походу я так просто не отделаюсь)

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

 

При поиске можно вывести ещё и цену очень удобно. не надо заходить и смотреть 
 
Стиль
.header-search-suggest-uah{color:#329a1c;line-height:1em;font-weight:bold;}
JAVA SCRIPT
 

 

<script>
    $(function() {
        //  Автозаполнитель поиска
        $(".input_search").autocomplete({
            serviceUrl:'ajax/search_products.php',
            minChars:1,
            noCache: false, 
            onSelect:
                function(value, data){
                     $(".input_search").closest('form').submit();
                },
            fnFormatResult:
                function(value, data, currentValue){
                    var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
                    var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
                      return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')+(data.price?"</br>Цена:<div class='header-search-suggest-uah'>"+data.price+"</div>":'');
                }    
        });
    });
    </script>
         
    {/literal}
В  папке AJAX
ajax/search_products.php
<?php
    chdir('..');
    require_once('api/Simpla.php');
    $simpla = new Simpla();
    $limit = 30;
    
    $keyword = $simpla->request->get('query', 'string');   
был
$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
                        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
меняем на это запрос 
 $simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
    $products = $simpla->db->results();


    foreach($products as $product)
    {
        if(!empty($product->image))
            {
                $product->image = $simpla->design->resize_modifier($product->image, 35, 35);
                $products_names[] = $product->name;
                $products_views[] = $product->views;
после добавляем строчку
 $products_price[] = $product->price;
                
                
            }
        else
            $products_names[] = $product->name;    
            $products_views[] = $product->views;
после добавляем строчку
            $products_price[] = $product->price;


        $products_data[] = $product;
    }


    $res->query = $keyword;
    $res->suggestions = $products_names;
    $res->data = $products_data;
    header("Content-type: application/json; charset=UTF-8");
    header("Cache-Control: must-revalidate");
    header("Pragma: no-cache");
    header("Expires: -1");        
    print json_encode($res);
Ну а сам вывод стандартный
<div id="search">
                <form action="products">
                    <input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск товара"/>
                    <input class="button_search" value="" type="submit" />
                </form>
            </div>

 

Добрый вечер.

 

Подскажите пожалуйста, если валюта по умолчанию доллар, как можно конвертировать цену доллара в другую валюту?

В файле search_products.php прописано:

$products_price[] = $product->price;

И при поиске товара цена выводится в долларах, а нужно в рублях.

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

в запросе есть v.price

$simpla->db->query('SELECT p.id, p.name,p.views, v.price, i.filename as image FROM __products p JOIN __variants v ON v.product_id=p.id  LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id AND v.product_id=p.id  LIMIT 1)
                        WHERE p.name LIKE "%'.mysql_real_escape_string($keyword).'%" AND visible=1 ORDER BY p.name LIMIT ?', $limit);
    $products = $simpla->db->results();

Выдаёт цену товара в долларах, т.к. основная валюта в админке доллар, но в магазине цена в рублях.

 

Как сделать вывод цены в поиске в рублях?

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

Добрый вечер.

 

Подскажите пожалуйста, если валюта по умолчанию доллар, как можно конвертировать цену доллара в другую валюту?

В файле search_products.php прописано:

$products_price[] = $product->price;

И при поиске товара цена выводится в долларах, а нужно в рублях.

 

попробуйте

$products_price[] = $simpla->money->convert($product->price, 2);

где 2 это айди алюты в которую нужно конвертировать

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

попробуйте

$products_price[] = $simpla->money->convert($product->price, 2);

где 2 это айди алюты в которую нужно конвертировать

 

 

Мишаня, спасибо вам огромное! Очень помогли. Правда заработало у меня так:

 

$product->price = $simpla->money->convert($product->price, 2);
Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Народ, а подскажите, как добавить наличие вариантов в живой поиск? Есть такая строчка, вот сюда бы вывести

return '<div class="suggest-box">'+(data.image?"<div class='suggest-image'><img src='"+data.image+"' alt=''></div>":'') +'<a href="'+data.url+'" title="">'+ linkValue +'</a>'+(data.product_code?"<div class='suggest-code'>Код: "+data.product_code.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')+"</div>":'')+(data.price?"<div class='suggest-price'>"+data.price+" руб.</div>":'')+(data.thiss?"<div class='suggest-category'>Перейти в категорию</div>":'')+'</div>';

Сейчас у нас в поиске выводятся все варианты одного товара, даже если некоторых вариантов нет в наличии. Хочу добавить: есть в наличии / нет в наличии

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

Парни, помогите пожалуйста! Какой код нужно добавить,чтобы помимо картинки и названия товара (при поиске) была и кнопка "купить"?

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

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

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

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

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

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

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

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

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

Загрузка...

×
×
  • Создать...