Skocz do zawartości
basman.pl

Wyszukiwarka Ajax wyświetla ceny netto

Rekomendowane odpowiedzi

Witam,

 

Mam kłopot z wyszukiwaniem Ajax z podpowiedziami produktów, produkty są wyświetlane w cenach netto oraz ze znacznikiem $ zamiast zł, waluty w sklepie są poustawiane prawidłowo, ponieważ po wciśnięciu enter wyniki wyszukiwania są już w prawidłowych cenach i walucie oraz dodaniu do koszyka, na stronie produktu tak samo.

 

Z czego może wynikać problem ?

 

Pozdrawiam

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

masz błąd w module  i bez informacji o tym czy jest to standardowy moduł presty czy dodany przez templetkę ciężko coś więcej powiedzieć

najczęstszą przyczyną tego typu błędu jest błąd w plikach tpl nadpisanych przez templetkę

w sumie bez dostępu do kodu ciężko coś powiedzieć

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Udało mi się wywalić znacznik $ , kod z pliku  blocksearch.js , jednak nie jestem w stanie zmienić cen na brutto, poniżej fragment kodu

	if (typeof ajaxsearch != 'undefined' && ajaxsearch && typeof blocksearch_type !== 'undefined' && blocksearch_type)
		$("#search_query_" + blocksearch_type).autocomplete(
			search_url,
			{
				minChars: 3,
				max: 15,
				width: (width_ac_results > 0 ? width_ac_results : 500),
				selectFirst: false,
				scroll: true,
				dataType: "json",
				formatItem: function(data, i, max, value, term) {
					if(data.image!=null)
								return "<img src=\"" + baseDir + "img/p/" + data.image.split('').join('/')+"/" + data.image + "-small_default.jpg\" alt=\"" + data.pname + "\" />" + "<div class='right-search'>" + value + "</div>";
						else
                                                                return value;},
				parse: function(data) {
					var mytab = new Array();
					for (var i = 0; i < data.length; i++)
						mytab[mytab.length] = { data: data[i], value: '<h5>' + data[i].pname + '</h5>' + ' <span class="price"> ' + Number(data[i].pprice).toFixed(2) + '</span>'}; // data[i].cname + ' > ' +
					return mytab;
				},
				extraParams: {
					ajaxSearch: 1,
					id_lang: id_lang
				}
			}
		)
		.result(function(event, data, formatted) {
			$('#search_query_' + blocksearch_type).val(data.pname);
			document.location.href = data.product_link;
		});
});

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeszcze trochę kodów z modułu blocksearch

 

blocksearch.php

<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

if (!defined('_PS_VERSION_'))
	exit;

class BlockSearch extends Module
{
	public function __construct()
	{
		$this->name = 'blocksearch';
		$this->tab = 'search_filter';
		$this->version = '1.7.0';
		$this->author = 'PrestaShop';
		$this->need_instance = 0;

		parent::__construct();

		$this->displayName = $this->l('Quick search block');
		$this->description = $this->l('Adds a quick search field to your website.');
		$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
	}

	public function install()
	{
		if (!parent::install() || !$this->registerHook('top') || !$this->registerHook('header') || !$this->registerHook('displayMobileTopSiteMap') || !$this->registerHook('displaySearch'))
			return false;
		return true;
	}

	public function hookdisplayMobileTopSiteMap($params)
	{
		$this->smarty->assign(array('hook_mobile' => true, 'instantsearch' => false));
		$params['hook_mobile'] = true;
		return $this->hookTop($params);
	}

	/*
public function hookDisplayMobileHeader($params)
	{
		if (Configuration::get('PS_SEARCH_AJAX'))
			$this->context->controller->addJqueryPlugin('autocomplete');
		$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');
	}
*/

	public function hookHeader($params)
	{
		$this->context->controller->addCSS(($this->_path).'blocksearch.css', 'all');

		if (Configuration::get('PS_SEARCH_AJAX'))
			$this->context->controller->addJqueryPlugin('autocomplete');

		if (Configuration::get('PS_INSTANT_SEARCH'))
			$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');

		if (Configuration::get('PS_SEARCH_AJAX') || Configuration::get('PS_INSTANT_SEARCH'))
		{
			Media::addJsDef(array('search_url' => $this->context->link->getPageLink('search', Tools::usingSecureMode())));
			$this->context->controller->addJS(($this->_path).'blocksearch.js');
		}
	}

	public function hookLeftColumn($params)
	{
		return $this->hookRightColumn($params);
	}

	public function hookRightColumn($params)
	{
		if (Tools::getValue('search_query') || !$this->isCached('blocksearch.tpl', $this->getCacheId()))
		{
			$this->calculHookCommon($params);
			$this->smarty->assign(array(
				'blocksearch_type' => 'block',
				'search_query' => (string)Tools::getValue('search_query')
				)
			);
		}
		Media::addJsDef(array('blocksearch_type' => 'block'));
		return $this->display(__FILE__, 'blocksearch.tpl', Tools::getValue('search_query') ? null : $this->getCacheId());
	}

	public function hookTop($params)
	{
		$key = $this->getCacheId('blocksearch-top'.((!isset($params['hook_mobile']) || !$params['hook_mobile']) ? '' : '-hook_mobile'));
		if (Tools::getValue('search_query') || !$this->isCached('blocksearch-top.tpl', $key))
		{
			$this->calculHookCommon($params);
			$this->smarty->assign(array(
				'blocksearch_type' => 'top',
				'search_query' => (string)Tools::getValue('search_query')
				)
			);
		}
		Media::addJsDef(array('blocksearch_type' => 'top'));
		return $this->display(__FILE__, 'blocksearch-top.tpl', Tools::getValue('search_query') ? null : $key);
	}

	public function hookDisplayNav($params)
	{
		return $this->hookTop($params);
	}

	public function hookDisplaySearch($params)
    {
        return $this->hookRightColumn($params);
    }

	private function calculHookCommon($params)
	{
		$this->smarty->assign(array(
			'ENT_QUOTES' =>		ENT_QUOTES,
			'search_ssl' =>		Tools::usingSecureMode(),
			'ajaxsearch' =>		Configuration::get('PS_SEARCH_AJAX'),
			'instantsearch' =>	Configuration::get('PS_INSTANT_SEARCH'),
			'self' =>			dirname(__FILE__),
		));

		return true;
	}
}


blocksearch.tpl


<!-- Block search module -->
<div id="search_block_left" class="block exclusive">
	<h4 class="title_block">{l s='Search' mod='blocksearch'}</h4>
	<form method="get" action="{$link->getPageLink('search', true)|escape:'html'}" id="searchbox">
		<p class="block_content">
			<label for="search_query_block">{l s='Search products:' mod='blocksearch'}</label>
			<input type="hidden" name="controller" value="search" />
			<input type="hidden" name="orderby" value="position" />
			<input type="hidden" name="orderway" value="desc" />
			<input class="search_query" type="text" id="search_query_block" name="search_query" value="{$search_query|escape:'html':'UTF-8'|stripslashes}" />
			<input type="submit" id="search_button" class="button_mini" value="{l s='Go' mod='blocksearch'}" />
		</p>
	</form>
</div>
{include file="$self/blocksearch-instantsearch.tpl"}
<!-- /Block search module -->

blocksearch-instantsearch.tpl

{if $ajaxsearch}
<script type="text/javascript">
// <![CDATA[
$('document').ready(function() {

	var $input = $("#search_query_{$blocksearch_type}");

	$input.autocomplete(
	'{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}',
	{
		minChars: 3,
		max: 10,
		width: 500,
		selectFirst: false,
		scroll: false,
		dataType: "json",
		formatItem: function(data, i, max, value, term) {
			return value;
		},
		parse: function(data) {
			var mytab = [];
			for (var i = 0; i < data.length; i++)
				mytab[mytab.length] = { data: data[i], value: data[i].cname + ' > ' + data[i].pname };
			return mytab;
		},
		extraParams: {
			ajaxSearch: 1,
			id_lang: {$cookie->id_lang}
		}
	})
	.result(function(event, data, formatted) {
		$input.val(data.pname);
		document.location.href = data.product_link;
	});
});
// ]]>
</script>
{/if}

{if $instantsearch}
<script type="text/javascript">
// <![CDATA[
function tryToCloseInstantSearch()
{
	var $oldCenterColumn = $('#old_center_column');
	if ($oldCenterColumn.length > 0)
	{
		$('#center_column').remove();
		$oldCenterColumn.attr('id', 'center_column').show();
		return false;
	}
}

instantSearchQueries = [];
function stopInstantSearchQueries()
{
	for(var i=0; i<instantSearchQueries.length; i++) {
		instantSearchQueries[i].abort();
	}
	instantSearchQueries = [];
}

$('document').ready(function() {

	var $input = $("#search_query_{$blocksearch_type}");

	$input.on('keyup', function() {
		if ($(this).val().length > 4)
		{
			stopInstantSearchQueries();
			instantSearchQuery = $.ajax({
				url: '{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}',
				data: {
					instantSearch: 1,
					id_lang: {$cookie->id_lang},
					q: $(this).val()
				},
				dataType: 'html',
				type: 'POST',
				headers: { "cache-control": "no-cache" },
				async: true,
				cache: false,
				success: function(data){
					if($input.val().length > 0)
					{
						tryToCloseInstantSearch();
						$('#center_column').attr('id', 'old_center_column');
						$('#old_center_column').after('<div id="center_column" class="' + $('#old_center_column').attr('class') + '">'+data+'</div>').hide();
						// Button override
						ajaxCart.overrideButtonsInThePage();
						$("#instant_search_results a.close").on('click', function() {
							$input.val('');
							return tryToCloseInstantSearch();
						});
						return false;
					}
					else
						tryToCloseInstantSearch();
				}
			});
			instantSearchQueries.push(instantSearchQuery);
		}
		else
			tryToCloseInstantSearch();
	});
});
// ]]>
</script>
{/if}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



  • Podobna zawartość

    • Przez daars_pl
      Witam,
      Czy można w jakiś sposób ustawić sortowanie wyników wyszukiwania po trafności ?
      Aktualnie wyświetla tak samo jak w kategoriach po cenie, chciałbym w kategoriach zostawić bez zmian a wyniki wyszukiwania po trafności.
      Wyszukiwarka standardowa
      Prestashop 1.7
      Pozdrawiam 
    • Przez Marta123
      Witam
      problem dotyczy cen netto i brutto.
      Na pewno nie jest to kwestia tłumaczeń bo zostało to sprawdzone.
      Tak samo jak kwestia doliczania podatku.
      Chodzi o takie ustawienia żeby na karcie produktu pokazywało cenę brutto a w koszyku rozbite na netto + podatek.
      Jak to zrobić? Proszę o pomoc.
    • Przez drobny
      Cześć
      Czy można za pomocą ustawień skonfigurować w taki sposób koszyk aby podatek był naliczany od kwoty netto pomnożonej  o ilość produktów.
      (netto * ilość) + podatek
      Obecnie działa to na zasadzie 
      brutto * ilość
       
      Dlaczego taka zmiana? 
      Jeśli produkt kosztuje 25.90 netto to jego wartość po doliczeniu podatku VAT wynosi 31,86.
      W przypadku kiedy klient kupi 10 takich produktów w koszyku w podsumowaniu linii pojawi się wartość 328,60 - aby zgadała się wartość VAT powinno się pojawić 328,57
       
      25,90 * 10 = 259
      259 + 23% = 318.57
       
       
    • Przez qwer123
      Witam wszystkich.

       

      Po aktualizacji presty na 1.6.1.11 mam problem z wyszukiwarką sklepową. Przed aktualizacją wszystko działało OK.

      Problem polega na tym iż przykładowo wpisując "kot w butach" wyszukiwarka znajduje wszystkie hasła związane z "kot" "w" "butach", a nie jako całość. 

      Mam w ustawione "Minimalna długość słowa (w znakach)" - 1

       

      Kombinowałem z wagami, ale nic kompletnie się nie zmienia dalej dzieli słowa, a chciałbym aby wyszukiwała jako jedno słowo i znajdowało  tylko "kot w butach" jako jedno. Przed aktualizacją wszystko chodziło OK

       

      Proszę o poradę. Pozdrawiam

       

       
    • Przez biuro@biznesownia.pl
      Witam,

      Moja firma poszukuje zaawansowanego programisty Prestashop do rozbudowanych i wymagających wdrożeń e-commerce dla naszych klientów. WYmagamy co najmniej 3 letniego doświadczenia w zaawansowanych projektach. Niezbędny jest stały kontakt w godzinach pracy (9-17) przez skype+telefon. Projekty z którymi mierzymy się codziennie to robienie zaawansowanych przeróbek do Prestashop, integracje z ERP po API (REST, SOAP), rozbudowane kreatory produktowe, dopsowanie Prestashop do PSD i innego typu wyzwania.

      Pozdrawiam,

      Dariusz Tomoń
      biuro@biznesownia.pl
      www.biznesownia.pl
  • Przeglądający

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

  • Statystyki forum

    • Tematów
      7 759
    • Postów
      37 043
×