Skocz do zawartości
nvu

Problem z prestą. Szukam mastera

Polecane posty

Witajcie, uborykam się z problemem sklepu internetowego opartego na PrestaShop.

Wiele osób próbowało pomóc jednak żadne metody nie pomogły.

Zaktualizowaliśmy skrypt, wgraliśmy od nowa produkty, przebudowaliśmy indeks, naprawiliśmy i zoptymalizowaliśmy tabele. Dosłownie wszystko i cały czas, zapętla się jedno zapytanie mysql które się klonuje i katuje maszyne a mianowicie:

 

Unicestwij	21831	baza_bxx	localhost	baza_xxa	Query	4649	Sending data	SELECT SQL_CALC_FOUND_ROWS p . * , pl.`description_short` , pl.`available_now` , pl.`available_later` , pl

 

Czy jest jakiś master, który potrafi to naprawić ? zapytanie, które się wywołuje znajduję się w pliku search.php czyli tak jakby dotyczyło szukajki.

zrzutekranu4.jpg

 

Uploaded with ImageShack.us

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Być może jakiś gigantyczny JOIN tam siedzi ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Crazyluki masz na screenie.. to wygląda na całe zapytanie.

Wkleje jeszcze źródło search.php z tym odwołaniem.

 

SELECT SQL_CALC_FOUND_ROWS p.*, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
		t.`rate`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name '.$score.',
		DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
	FROM '._DB_PREFIX_.'product p
	INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).')
	LEFT JOIN `'._DB_PREFIX_.'tax` t ON p.`id_tax` = t.`id_tax`
	LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
	LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
	LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).')
	WHERE p.`id_product` '.$productPool.'
	'.($orderBy ? 'ORDER BY  '.$orderBy : '').($orderWay ? ' '.$orderWay : '').'
	LIMIT '.intval(($pageNumber - 1) * $pageSize).','.intval($pageSize);

	$result = $db->ExecuteS($queryResults);
	$total = $db->getValue('SELECT FOUND_ROWS()');

	Module::hookExec('search', array('expr' => $expr, 'total' => $total));

	return array('total' => $total,'result' => Product::getProductsProperties($id_lang, $result));
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wklej jeszcze ze dwie linie wyżej...

 

Spróbuj tak:

zakomentuj : $result = $db->ExecuteS($queryResults);

i daj zamiast tego

echo $queryResults;

exit(); break;

wtedy powinieneś (chyba) dostać całe zapytanie jakie jest wtedy generowane. Dodaj przed nim explain i wykonaj je w phpmyadmin.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kod wcześniej

if (!$result = $db->ExecuteS('
			SELECT DISTINCT p.id_product, pl.name as pname, cl.name AS cname,
				cl.link_rewrite as crewrite, pl.link_rewrite as prewrite '.$score.'
			FROM '._DB_PREFIX_.'product p
			INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).')
			INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.intval($id_lang).')
			WHERE p.`id_product` '.$productPool.'
			ORDER BY position DESC LIMIT 10
		'))
			return false;
		foreach ($result AS &$row)
			$row['cname'] = Category::hideCategoryPosition($row['cname']);
		return $result;
	}

	$queryResults = '

 

 

Zapytanie:

 

SELECT SQL_CALC_FOUND_ROWS p.*, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`, t.`rate`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name ,( SELECT SUM(weight) FROM ps_search_word sw LEFT JOIN ps_search_index si ON sw.id_word = si.id_word WHERE sw.id_lang = 3 AND si.id_product = p.id_product AND (sw.word LIKE 'dębica%') ) as position, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL 14 DAY)) > 0 AS new FROM ps_product p INNER JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 3) LEFT JOIN `ps_tax` t ON p.`id_tax` = t.`id_tax` LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` LEFT JOIN `ps_image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `ps_image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = 3) WHERE p.`id_product` IN (18075,18045,18023,17987,17961,17937,17898,17894,17878,17857,17836,17825,17818,17807,17797,17787,18847,18423,18338,18285,18242,18111,16022,16543,15615,15612,15120,15119,15068,15066,14962,14922,14920,14917,14810,14719,14716,14715,14712,14635,14633,14631,14564,14525,14523,14521,14468,14465,14463,14424,14422,14365,14346,14295,14294,14291,14256,14254,14216,14215,14213,14193,14191,14172,14170,14134,14133,14131,14104,14102,14081,14079,14070,14068,14050,14030,14016,14013,13997,13981,13979,13970,13969,13967) ORDER BY position desc LIMIT 0,10

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Napisz z problemem do producenta. Na pewno zrobi to na przysługującej Ci gwarancji!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niekoniecznie z oferty PFF ;)

Jednak dobrze wiesz, że darmowe skrypty nie mają gwarancji i zostaje jedynie społeczność, która tworzy skrypt.

A pytałeś na ich forum?

Założyłeś indeks na kolumne word?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pytałem na forum... ale tam jakoś nie ma speców. Nie założyłem jeszcze indeksów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po założeniu indeksów 2 dni spokoju, dzisiaj klient złożył zamówienie, nie dotarło całe. Znowu zaczęły się te same procesy i zawalają serwer. Help.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak zajmujesz się takimi sprawami to powinieneś wiedzieć o co chodzi, jak nie wiesz to przeproś klienta i odeślij do firmy która się tym zajmuje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A podzielisz się co było przyczyną?

Sam korzystam z prestashopu i chciałbym wiedzieć jak się zachować, gdyby taki problem pojawił się i u mnie :(

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zainstalowałem skrypt na nowo, import z plików xml ustawienie itp..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Albo uprzednio wymienić skrypt na komercyjny i spać spokojnie :)

 

@nvu: Myślę, że tematu naszej "współpracy" (w zasadzie 1 rozmowy telefonicznej) nie warto publicznie opisywać. Ale jak już bardzo chcesz, to sprostuję, że nie robimy sklepów/sprzedajemy oprogramowania po cenach innych aniżeli są przedstawione na stronie. ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sprawa rozwiązana, problemem okazał się skrypt Zawannsowanej wyszukiwarki napisany przez firme zewnętrzną - prestahelp.com.

@PFF nie publikuje nic, jak zauważyłeś, jak mam za coś płacić to chcę za coś konkretnego.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sugerujesz, że to co oferuję to śmieć, czy też po prostu masz budżet, który pozwala Ci na zatrudnianie gimnazjalistów, ew. ich nauczycieli?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sugeruję, że prezentujemy dwie różne grupy. Ty kierujesz swoją ofertę dla firm którzy chcą mieć wszystko zrobione na "kluczyk" a jak coś będzie nie tak to Ty bekniesz. Dla mnie wystarczy sama licencja, bo reszte sam sobię zrobię.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Będziesz rozgrzebywał autorski skrypt, który pewnie działa na jakiejś tam licencji tej firmy, i sam go modyfikował? Wtedy zostanie ci to samo co w PrestaShop.. sama licencja i 0 gwarancji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@nvu:

Zaskoczę Cię, ale ogromna większość naszych Klientów to ludzie podobni do Ciebie.

 

Podobni - bo nie próbują na siłę zrobić czegoś sami, tylko wolą zlecić to komuś kto wykona to od A do Z i udzieli na to gwarancji. Nasze usługi nie są jakieś przeraźliwie drogie (wszakże 2700zł netto za sklep internetowy z indywidualnym, profesjonalnym projektem graficznym to raczej niewielkie pieniądze). A masz pewność, że nie musisz przeinstalowywać skryptów co 2 tygodnie. A jak chcesz dorobić jakiś dodatkowy moduł do sklepu to telefon/email pozostaje ten sam, a po modyfikacji sklep dalej działa w 100% prawidłowo i dalej masz na niego gwarancję.

 

Konkludując - jest to rozwiązanie dla ludzi, którzy cenią sobie spokój i bezpieczeństwo. A nade wszystko - tworzą sklep internetowy by sprzedawać, a nie by się zastanawiać czy działa prawidłowo, czy już wymaga kolejnego przeinstalowania.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@up

Tak, jak najbardziej się z Tobą zgadzam. Mieliśmy plan, żeby sprawdzić czy ten biznes ma sens a potem zainwestować w skrypt i dobrze że tak zrobiliśmy. Bo gdybyśmy kupili skrypt za 1000 zł to własnie byśmy byli w plecy, sklep poszedł na sprzedaż z takich powodów że na rynku brakuje opon i edycja cen, pilnowanie tego plus prowadzenie wulkanizacji mija się z celem.

koniec OT, problem rozwiązany.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A propos - orientujesz się czy jest jakaś hurtownia, która udostępnia XML z bazą opon (oczywiście cen i ich dostępności też)? Jeśli tak - to bądź tak uprzejmy i podeślij mi jej nazwę na PW. Przygotujemy moduł importujący dane i aktualizujący ofertę z tej hurtowni. Myślę, że mając coś takiego do dyspozycji wrócisz do branży i chętnie wydasz kilka tysięcy na sklep, który będzie działał bez marnowania Twojego czasu na przepisywanie kolumn.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

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

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×