Prestashop - Proble...
 
Avisos
Vaciar todo

Prestashop - Problema con las hojas de proveedores

2 Respuestas
2 Usuarios
0 Reactions
1,280 Visitas
Respuestas: 8
Active Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Hola, buenos días.

He recibido un email de Google webmastertools diciendo que se había producido un incremento de errores en mi servidor web. Siguiendo los enlaces he visto que todos eran problemas de las fichas de los proveedores (ejemplo de uno):

http://www.djstore.es/80_allen-heath

Resulta que tenía activado define('_PS_MODE_DEV_', true); en config/defines.inc.php y cuando cargaba una página de proveedor salía esto:

Unknown column 'product_attribute_shop.id_product_attribute' in 'field list'

SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute
			, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`,
			pl.`meta_title`, pl.`name`, pl.`available_now`, pl.`available_later`, MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` AS manufacturer_name,
				DATEDIFF(
					product_shop.`date_add`,
					DATE_SUB(
						NOW(),
						INTERVAL 20 DAY
					)
				) > 0 AS new FROM `ps_product` p
			 INNER JOIN ps_product_shop product_shop
		ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)
			LEFT JOIN `ps_product_lang` pl
				ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 1 AND pl.id_shop = 1 )
			LEFT JOIN `ps_image` i
				ON (i.`id_product` = p.`id_product`) LEFT JOIN ps_image_shop image_shop
		ON (image_shop.id_image = i.id_image AND image_shop.id_shop = 1 AND image_shop.cover=1)
			LEFT JOIN `ps_image_lang` il
				ON (i.`id_image` = il.`id_image` AND il.`id_lang` = 1)
			LEFT JOIN `ps_manufacturer` m
				ON (m.`id_manufacturer` = p.`id_manufacturer`)
			 LEFT 
			JOIN ps_stock_available stock
			ON (stock.id_product = p.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1  AND stock.id_shop_group = 0  )JOIN `ps_category_product` cp ON (p.id_product = cp.id_product)JOIN `ps_category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1
				WHERE p.`id_manufacturer` = 80
				 AND product_shop.`active` = 1
				 AND product_shop.`visibility` IN ("both", "catalog")
				GROUP BY product_shop.id_product
				ORDER BY product_shop.`price` asc
				LIMIT 0,12


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

641. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
642. 		}
643. 		elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
644. 		{
645. 			if ($sql)
646. 				throw new PrestaShopDatabaseException($this->getMsgError().'

'.$sql.'

');
647. throw new PrestaShopDatabaseException($this->getMsgError());
648. }
649. }
650.
651. /**

DbCore->displayError - [line 340 - classes/db/Db.php] - [1 Arguments]
DbCore->query - [line 516 - classes/db/Db.php] - [1 Arguments]
DbCore->executeS - [line 373 - classes/Manufacturer.php] - [1 Arguments]
ManufacturerCore::getProducts - [line 98 - controllers/front/ManufacturerController.php] - [6 Arguments]
ManufacturerControllerCore->assignOne - [line 79 - controllers/front/ManufacturerController.php]
ManufacturerControllerCore->initContent - [line 180 - classes/controller/Controller.php]
ControllerCore->run - [line 373 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 28 - index.php]

He cambiado PS_MODE_DEV por false y ahora carga la página de proveedor pero indica que no hay artículos de ese proveedor, lo cual no es cierto.

Tengo una copia en local de mi web y en local no tengo este problema. He consultado las tablas ps_product_attribute_shop en local y en el servidor y ambas están vacías. En el código que he puesto antes parece como que no encuentra el prefijo "ps" para añadir a las tablas: ps_product_attribute_shop frente a product_attribute_shop.

¿Me podéis echar una mano a solucionar esto, please?

Gracias por adelantado

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 21/06/2015 1:15 pm
Pablo Velasco
Respuestas: 20382
Illustrious Member
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Hola,

Da la sensación de que PrestaShop tiene un bug en esta consulta contra la base de datos.

Prueba a editar el archivo classes/Manufacturer.php. Previa copia de seguridad del mismo cambio en él la cadena product_attribute_shop (sale en 4 sitios) por la cadena pa y comprueba si así se soluciona el problema.


 
Respondido : 22/06/2015 11:28 am