Jump to content

Desaparecidos todos los articulos, socorroooooo!


syrcalderas

Recommended Posts

Hola de nuevo foreros.

Al hacer la actualización del modulo de PayPal me han desaparecido todos los artículos del frontoffice.

Me explico: entro en la tienda, voy a una de las categorías y me pone que no tiene artículos

Es como si no tuviera productos, sin embargo en el BackOffice están. Es la versión 1.5. Creo que tiene que ver con Parámetros avanzados>Rendimiento>Smarty, por que anduve tocando por ahí siguiendo algunas indicaciones de otros foreros para actualizar el módulo de PayPal.

¿Alguien sabe qué ha podido pasar y como solucionarlo?

Gracias de antemano por la ayuda.

Link to comment
Share on other sites

¿Si habilitas el debug de errores: http://www.prestashop.com/forums/topic/232476-%C2%BFqu%C3%A9-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/  te sale algun error descriptivo en esa pantalla?

 

¿Puedo ojear tu web?

 

Si comentas que esto te ha pasado a partir de actualizar el modulo de paypal, prueba eliminar o renombrar momentaneamente el directorio paypal que tienes en el directorio modules (o cargar una version anterior) para ver si el error proviene de la actualización... y asi ir descatando cosas)

  • Like 1
Link to comment
Share on other sites

Hola Nadie, gracias por responder tan rápido.

Ayer todavía se podía entrar en la tienda, hoy nada pantalla en blanco.

Dime que hago para que puedas ver la tienda.

Saludos.

¿Pero incluso habiliando el debug: http://www.prestashop.com/forums/topic/232476-%C2%BFqu%C3%A9-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/ te sale una pantalla en blanco y no un error descriptivo?

  • Like 1
Link to comment
Share on other sites

Hola de nuevo. Muchas gracias por contestar tan rápido. Perdona si no soy tan rápido, es que estoy trabajando y lo miro cuando puedo.

He hecho lo del debug, aunque debo reconocer que de programción no tengo ni idea, y me sale esto:

 

Strict Standards: Declaration of Dispatcher::loadRoutes() should be compatible with that of DispatcherCore::loadRoutes() in /home/syrc/public_html/override/classes/Dispatcher.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in/home/syrc/public_html/classes/controller/FrontController.php on line 639

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in/home/syrc/public_html/classes/controller/FrontController.php on line 640

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in /home/syrc/public_html/classes/Tools.php on line 130

 

Para mi es chino, espero que a ti te ayude con la solución.

Gracias de nuevo

Link to comment
Share on other sites

Hola de nuevo. Muchas gracias por contestar tan rápido. Perdona si no soy tan rápido, es que estoy trabajando y lo miro cuando puedo.

He hecho lo del debug, aunque debo reconocer que de programción no tengo ni idea, y me sale esto:

 

Strict Standards: Declaration of Dispatcher::loadRoutes() should be compatible with that of DispatcherCore::loadRoutes() in /home/syrc/public_html/override/classes/Dispatcher.php on line 16

 

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in/home/syrc/public_html/classes/controller/FrontController.php on line 639

 

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in/home/syrc/public_html/classes/controller/FrontController.php on line 640

 

Warning: Cannot modify header information - headers already sent by (output started at /home/syrc/public_html/override/classes/Dispatcher.php:16) in /home/syrc/public_html/classes/Tools.php on line 130

 

Para mi es chino, espero que a ti te ayude con la solución.

Gracias de nuevo

El problema parece que te lo esta dando este override:

 

/override/classes/Dispatcher.php 
Prueba renombrarlo a:

 

Dispatcher.php_old
y dime si te aparecen ya bien los productos o no...

 

Y ya que estamos dime el contenido del fichero, para ver si ese override procede de algún modulo u de otra cosa..

 

Saludos,

  • Like 1
Link to comment
Share on other sites

Hola otra vez.

Gracias por la ayuda.

Desgraciadamente he renombrado el archivo y sigo en blanco.

Te cuento como lo he hecho a ver si esta bien:

He bajado el archivo con filezila. He renombrado el archivo añadiendo _old, me dice que el archivo podía quedar inservible pero así todo lo he hecho. Lo he subido con filezila. En el BackOffice le doy a ver mi tienda y pantalla en blanco.

Voy a añadirte el contenido de Dispatcher.php:

 

<?php

class Dispatcher extends  DispatcherCore

{

 protected function loadRoutes()

        {

  parent::loadRoutes();

  $orderby = (isset($_REQUEST['orderby']) && $_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'position' ;

  $orderway= (isset($_REQUEST['orderway']) && $_REQUEST['orderway']) ? $_REQUEST['orderway'] : 'asc' ;

  $results = Db::getInstance()->executeS('

                        SELECT s.id_searchterm, s.term,s.url,s.title,s.description

                        FROM '._DB_PREFIX_.'searchterm s ');

  foreach($results as $result)

   foreach (Language::getLanguages() as $lang)

    $this->addRoute('search_'.$result['id_searchterm'],$result['url'],'search',$lang['id_lang'],array(), array('search_query' =>$result['term'], 'orderby' => $orderby, 'orderway' => $orderway));

 }

}

A ver si ves algo.

Gracias otra vez.

Link to comment
Share on other sites

Me da a mi que la Paypal no tiene mucho que ver con el fallo ...

 

El fichero Dispatcher hay pocos módulos que lo tocan, suelen ser los de pretty urls o similares. Parece que es un módulo que trata añadir una pretty url a los resultados de búsqueda

 

En principio si cambias el loadRoutes por

 

<?php

class Dispatcher extends  DispatcherCore

{

 protected function loadRoutes($id_shop = null)

        {

  parent::loadRoutes($id_shop);

  $orderby = (isset($_REQUEST['orderby']) && $_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'position' ;

  $orderway= (isset($_REQUEST['orderway']) && $_REQUEST['orderway']) ? $_REQUEST['orderway'] : 'asc' ;

  $results = Db::getInstance()->executeS('

                        SELECT s.id_searchterm, s.term,s.url,s.title,s.description

                        FROM '._DB_PREFIX_.'searchterm s ');

  foreach($results as $result)

   foreach (Language::getLanguages() as $lang)

    $this->addRoute('search_'.$result['id_searchterm'],$result['url'],'search',$lang['id_lang'],array(), array('search_query' =>$result['term'], 'orderby' => $orderby, 'orderway' => $orderway));

 }

}

 

el error debería desaparecer

 

pero también es cierto que al borrar al renombrar el fichero te debería desaparecer también. Acuérdate de borrar el class_index.php que se encuentra en la carpeta cache para que prestashop busque las clases correctamente.

 

Saludos

Link to comment
Share on other sites

Se trata de el fichero /override/classes/Dispatcher.php  de modificarlo con lo marcado en rojo.

 

Pero si quieres mejor borra el fichero /cache/class_index.php (se regenera sólo si esta borrado) ya que ahora lo tienes renombrado a Dispatcher.php_old. La idea es que cargue el normal y no el override

Link to comment
Share on other sites

Gracias por la ayuda Enrique, pero sigo igual.

He hecho lo siguiente:

He borrado /cache/class_index.php.

He subido con Filezila el Dispatcher.php modificado.

Lo que no se es si en el BackOffice, en el parte Rendimiento/Smarty, debo hacer Forzar compilación o no.

Gracias por contestar tan rápido

Link to comment
Share on other sites

Gracias por la ayuda Enrique, pero sigo igual.

He hecho lo siguiente:

He borrado /cache/class_index.php.

He subido con Filezila el Dispatcher.php modificado.

Lo que no se es si en el BackOffice, en el parte Rendimiento/Smarty, debo hacer Forzar compilación o no.

Gracias por contestar tan rápido

 

¿Pero te salta el mismo error que comentastes al principio al habilitar el debug o te salta otro error?

 

Es que si renombrastes el fichero como te indique al principio o lo has borrado, no tendria que salirte el mismo error..

  • Like 1
Link to comment
Share on other sites

Hola Enrique he hecho el debug y me sale esto:

 

[PrestaShopDatabaseException]

MySQL server has gone away
 

                SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
                FROM `ps_category` c
                 INNER JOIN ps_category_shop category_shop
        ON (category_shop.id_category = c.id_category AND category_shop.id_shop = 1)
                LEFT JOIN `ps_category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = 2 AND cl.id_shop = 1 )
                LEFT JOIN `ps_category_group` cg ON (cg.`id_category` = c.`id_category`)
                WHERE (c.`active` = 1 OR c.`id_category` = 1)
                 AND `level_depth` <= 4
                AND cg.`id_group` IN (3, 5)
                ORDER BY `level_depth` ASC, category_shop.`position` ASC

at line 613 in file classes/db/Db.php

 

607.             WebserviceRequest::getInstance()->setError(500, '
 '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
608.         }
609.         else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
610.         {
611.             if ($sql)
612.                 throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
613.             throw new PrestaShopDatabaseException($this->getMsgError());
614.         }
615.     }
616.
617.     /**

 

A ver si ves la luz. Gracias por la paciencia.

Link to comment
Share on other sites

 

He intentado acceder a un producto de la tienda vía URL y me sale:

[PrestaShopDatabaseException]

MySQL server has gone away

 

SELECT id_shop					FROM `ps_category_shop`					WHERE `id_category` = 14						AND id_shop = 1 LIMIT 1

at line 613 in file classes/db/Db.php

 

607. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);608. 		}609. 		else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))610. 		{611. 			if ($sql)612. 				throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');613. 			throw new PrestaShopDatabaseException($this->getMsgError());614. 		}615. 	}616. 617. 	/**
  • DbCore->displayError - [line 313 - classes/db/Db.php] - [1 Arguments]
    307. 		if ($sql instanceof DbQuery)308. 			$sql = $sql->build();309. 310. 		$this->result = $this->_query($sql);311. 		if (_PS_DEBUG_SQL_)312. 			$this->displayError($sql);313. 		return $this->result;314. 	}315. 316. 	/**317. 	 * Execute an INSERT query
    Argument [0]SELECT id_shop					FROM `ps_category_shop`					WHERE `id_category` = 14						AND id_shop = 1 LIMIT 1
  • DbCore->query - [line 526 - classes/db/Db.php] - [1 Arguments]
    520. 		if ($use_cache && $this->is_cache_enabled && ($result = Cache::getInstance()->get(md5($sql))))521. 		{522. 			$this->last_cached = true;523. 			return $result;524. 		}525. 		$this->result = $this->query($sql);526. 		if (!$this->result)527. 			return false;528. 		$this->last_cached = false;529. 		$result = $this->nextRow($this->result);530. 		if (is_null($result))
    Argument [0]SELECT id_shop					FROM `ps_category_shop`					WHERE `id_category` = 14						AND id_shop = 1 LIMIT 1
  • DbCore->getRow - [line 550 - classes/db/Db.php] - [2 Arguments]
    544. 	public function getValue($sql, $use_cache = true)545. 	{546. 		if ($sql instanceof DbQuery)547. 			$sql = $sql->build();548. 549. 		if (!$result = $this->getRow($sql, $use_cache))550. 			return false;551. 		return array_shift($result);552. 	}553. 554. 	/**
    Argument [0]SELECT id_shop					FROM `ps_category_shop`					WHERE `id_category` = 14						AND id_shop = 1Argument [1]1
  • DbCore->getValue - [line 1244 - classes/ObjectModel.php] - [1 Arguments]
    1238. 		{1239. 			$sql = 'SELECT id_shop1240. 					FROM `'.pSQL(_DB_PREFIX_.$this->def['table']).'_shop`1241. 					WHERE `'.$this->def['primary'].'` = '.(int)$this->id.'1242. 						AND id_shop = '.(int)$id_shop;1243. 			Cache::store($cache_id, (bool)Db::getInstance()->getValue($sql));1244. 		}1245. 		return Cache::retrieve($cache_id);1246. 	}1247. 1248. 	/**
    Argument [0]SELECT id_shop					FROM `ps_category_shop`					WHERE `id_category` = 14						AND id_shop = 1
  • ObjectModelCore->isAssociatedToShop - [line 536 - controllers/front/ProductController.php] - [0 Argument]
    530. 	 * Assign template vars related to category531. 	 */532. 	protected function assignCategory()533. 	{534. 		// Assign category to the template535. 		if ($this->category !== false && Validate::isLoadedObject($this->category) && $this->category->inShop() && $this->category->isAssociatedToShop())536. 			$path = Tools::getPath($this->category->id, $this->product->name, true);537. 		elseif (Category::inShopStatic($this->product->id_category_default, $this->context->shop))538. 		{539. 			$this->category = new Category((int)$this->product->id_category_default);540. 			if (Validate::isLoadedObject( $this->category) &&  $this->category->active &&  $this->category->isAssociatedToShop())
  • ProductControllerCore->assignCategory - [line 231 - controllers/front/ProductController.php] - [0 Argument]
    225. 			$this->context->smarty->assign(array(226. 				'pictures' => $pictures,227. 				'textFields' => $text_fields));228. 229. 			// Assign template vars related to the category + execute hooks related to the category230. 			$this->assignCategory();231. 			// Assign template vars related to the price and tax232. 			$this->assignPriceAndTax();233. 234. 			// Assign template vars related to the images235. 			$this->assignImages();
  • ProductControllerCore->initContent - [line 167 - classes/controller/Controller.php] - [0 Argument]
    161. 162. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))163. 				$this->initHeader();164. 165. 			if ($this->viewAccess())166. 				$this->initContent();167. 			else168. 				$this->errors[] = Tools::displayError('Access denied.');169. 170. 			if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className)))171. 				$this->initFooter();
  • ControllerCore->run - [line 348 - classes/Dispatcher.php] - [0 Argument]
    342. 			// Execute hook dispatcher343. 			if (isset($params_hook_action_dispatcher))344. 				Hook::exec('actionDispatcher', $params_hook_action_dispatcher);345. 346. 			// Running controller347. 			$controller->run();348. 		}349. 		catch (PrestaShopException $e)350. 		{351. 			$e->displayMessage();352. 		}
Link to comment
Share on other sites

Gracias a todos por la ayuda.

 

Comentaros un par de cosas:

 

Todo ha ido mal a raíz de la actualización del módulo de PayPal. 

Después de actualizarlo me llamó un cliente que una vez aceptado el carrito no le pasaba a la pagina de PayPal. Lo comprobé y efectivamente así era.

 

Intenté volver a instalar el módulo viejo de Paypal, pero ya fue imposible que apareciera la tienda, siempre hoja en blanco.

 

Ahora viene lo mejor: ¿Cómo se pasa la tienda a local? Como veis estoy mas verde que una lechuga.

 

Gracias de nuevo.

Link to comment
Share on other sites

Gracias a todos por la ayuda.

 

Comentaros un par de cosas:

 

Todo ha ido mal a raíz de la actualización del módulo de PayPal. 

Después de actualizarlo me llamó un cliente que una vez aceptado el carrito no le pasaba a la pagina de PayPal. Lo comprobé y efectivamente así era.

 

Intenté volver a instalar el módulo viejo de Paypal, pero ya fue imposible que apareciera la tienda, siempre hoja en blanco.

 

Ahora viene lo mejor: ¿Cómo se pasa la tienda a local? Como veis estoy mas verde que una lechuga.

 

Gracias de nuevo.

Lo de la tienda a local, puedes instalarte http://www.wampserver.com/en/ en tu pc y copiar los ficheros, base de datos, etc... en local, cambiar datos settings.inc.php, cambiar datos url tienda en ps_shop_url, etc.. (por google y youtube tienes guias de como hacerlo)

 

---

 

De todos modos, esto es solo para comprobar.

 

Pero vamos, pierdes menos tiempos en contactar con tu hosting y comentarles lo que te pasa... ¿O es que tu hosting no te atiende xD?

Link to comment
Share on other sites

Hola de nuevo foreros.

Al final contacté con el Hosting, le comenté el problema y lo que ha hecho ha sido restaurar la tienda al día en el que estaba estable.

Ahora funciona perfectamente y la versión del modulo PayPal pone que es Versión: 3.8.1, con lo que salvo me digáis algo en contra podemos dar el tema por solucionado.

Muchas gracias por la ayuda, Nadie, Enrique y Galindogadea.

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...