rhhotelsupply Posted September 30 Share Posted September 30 hola a todos, ¿algún programador? para solventar este error recurrente, un saludo Link to comment Share on other sites More sharing options...
aixos Posted September 30 Share Posted September 30 Aquí tienes una lista de información que puede ser útil: Tipo de instalación (nueva/actualización): Versión PrestaShop: Tema (predeterminado/personalizado): Código (original/modificado): Alojamiento: Versión PHP: Versión MySQL: Navegador(es) afectado(s): Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted September 30 Share Posted September 30 Busca ese archivo y linea donde te marca el error y donde dice: foreach ($product->getAttributesResume($this->language->getId()) as $combination) cámbialo por: if (!$combinations_list = $product->getAttributesResume($this->language->getId())) { return false; } foreach ($combinations_list as $combination) { Suerte. Link to comment Share on other sites More sharing options...
rhhotelsupply Posted September 30 Author Share Posted September 30 hace 4 horas, ExpertoPrestaShop dijo: Busca ese archivo y linea donde te marca el error y donde dice: foreach ($product->getAttributesResume($this->language->getId()) as $combination) cámbialo por: if (!$combinations_list = $product->getAttributesResume($this->language->getId())) { return false; } foreach ($combinations_list as $combination) { Suerte. hola, gracias por el consejo, la línea 636 empieza como indicas con "foreach" y el código total con el cierre es como el siguiente: foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if ($combination['quantity'] > 0) { return false; } } } elseif ($product['quantity'] > 0) { // Displayed only if the product stock is <= 0 return false; } return true; } He probado poner el código que me indicas sólo sobreescribiendo "foreach ($product->getAttributesResume($this->language->getId()) as $combination)", Ha dado error, Luego he probado sobreescribiendo " foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if ($combination['quantity'] > 0) { return false; }" También ha dado error, Creo que al insertar, estoy haciendo mal, ¿Me lo puede indicar por favor? Link to comment Share on other sites More sharing options...
Manuel_GT Posted October 2 Share Posted October 2 (edited) Hola @ExpertoPrestaShop y @rhhotelsupply Por desgracia mi versión de Prestashop (8.1.7) debe ser distinta de la tuya porque en la posición 636 no tengo ese código.....yo lo tengo en 660 if ($product['id_product_attribute']) { // Displayed only if all combinations are out of stock (stock is <= 0) $product = new Product((int) $product['id_product']); if (empty($product->id)) { return false; } foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if ($combination['quantity'] > 0) { return false; } } } elseif ($product['quantity'] > 0) { // Displayed only if the product stock is <= 0 return false; } Es raro que la sugerencia de @ExpertoPrestaShop no funcione. if ($product['id_product_attribute']) { // Displayed only if all combinations are out of stock (stock is <= 0) $product = new Product((int) $product['id_product']); if (empty($product->id)) { return false; } //foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if (!$combinations_list = $product->getAttributesResume($this->language->getId())) { return false; } foreach ($combinations_list as $combination) { if ($combination['quantity'] > 0) { return false; } } } elseif ($product['quantity'] > 0) { // Displayed only if the product stock is <= 0 return false; } A ver si hay suerte! Ten en cuenta que los cambios en estos ficheros se pierden con cada actualización que hagas de Prestashop. Edited October 2 by Manuel_GT (see edit history) Link to comment Share on other sites More sharing options...
Nickz Posted October 2 Share Posted October 2 9 minutes ago, Manuel_GT said: Por desgracia mi versión de Prestashop (8.1.7) viste esto https://www.w3docs.com/snippets/php/how-to-fix-the-invalid-argument-supplied-for-foreach-php-error.html O este https://github.com/PrestaShop/PrestaShop/issues/16896 o este: https://stackoverflow.com/questions/62870330/prestashop-how-to-get-a-productlistinglazyarray-out-of-my-products Link to comment Share on other sites More sharing options...
rhhotelsupply Posted October 3 Author Share Posted October 3 hace 16 horas, Manuel_GT dijo: Hola @ExpertoPrestaShop y @rhhotelsupply Por desgracia mi versión de Prestashop (8.1.7) debe ser distinta de la tuya porque en la posición 636 no tengo ese código.....yo lo tengo en 660 if ($product['id_product_attribute']) { // Displayed only if all combinations are out of stock (stock is <= 0) $product = new Product((int) $product['id_product']); if (empty($product->id)) { return false; } foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if ($combination['quantity'] > 0) { return false; } } } elseif ($product['quantity'] > 0) { // Displayed only if the product stock is <= 0 return false; } Es raro que la sugerencia de @ExpertoPrestaShop no funcione. if ($product['id_product_attribute']) { // Displayed only if all combinations are out of stock (stock is <= 0) $product = new Product((int) $product['id_product']); if (empty($product->id)) { return false; } //foreach ($product->getAttributesResume($this->language->getId()) as $combination) { if (!$combinations_list = $product->getAttributesResume($this->language->getId())) { return false; } foreach ($combinations_list as $combination) { if ($combination['quantity'] > 0) { return false; } } } elseif ($product['quantity'] > 0) { // Displayed only if the product stock is <= 0 return false; } A ver si hay suerte! Ten en cuenta que los cambios en estos ficheros se pierden con cada actualización que hagas de Prestashop. buenos días, he reemplazado el código como tal, la web no da error, y de aquí a mañana, miro el log de errores, a ver qué dice, gracias 1 Link to comment Share on other sites More sharing options...
rhhotelsupply Posted October 4 Author Share Posted October 4 Genial, Con esa modificación, el error ha desaparecido, Por lo tanto, sigue habiendo otro error siguiente: [04-Oct-2024 09:05:58 Europe/Madrid] PHP Notice: Undefined variable: category in /home/u931065366/domains/example.com/public_html/controllers/front/listing/CategoryController.php on line 250 [04-Oct-2024 09:05:58 Europe/Madrid] PHP Notice: Trying to get property 'active' of non-object in /home/u931065366/domains/example.com/public_html/controllers/front/listing/CategoryController.php on line 250 Y tenemos el código siguiente en CategoryController.php, public function getBreadcrumbLinks() { $breadcrumb = parent::getBreadcrumbLinks(); foreach ($this->category->getAllParents() as $category) { if ($category->id_parent != 0 && !$category->is_root_category && $category->active) { $breadcrumb['links'][] = [ 'title' => $category->name, 'url' => $this->context->link->getCategoryLink($category), ]; } } if ($this->category->id_parent != 0 && !$this->category->is_root_category && $category->active) { $breadcrumb['links'][] = [ 'title' => $this->category->name, 'url' => $this->context->link->getCategoryLink($this->category), ]; } return $breadcrumb; } La línea 250 corresponde a if ($this->category->id_parent != 0 && !$this->category->is_root_category && $category->active) {, Espero vuestra ayuda, Gracias Link to comment Share on other sites More sharing options...
Manuel_GT Posted October 8 Share Posted October 8 Hola @rhhotelsupply ¿Que versión tienes de Prestashop y PHP? Los errores que muestras, me da la sensación de que podrían ser más por los datos de tu tienda que por la aplicación en si. Yo tengo Prestashop 8.1.7 lleno de categorías y productos y no me aparecen esos errores.... ¿Cómo cargaste los datos? ¿Tienes identificado si el error te pasa en una categoría determinada o en todas? Lo cierto es que los "NOTICE" que muestras no son errores del desarrollo sino inconsistencias en los datos. Link to comment Share on other sites More sharing options...
rhhotelsupply Posted October 8 Author Share Posted October 8 hace 26 minutos, Manuel_GT dijo: Hola @rhhotelsupply ¿Que versión tienes de Prestashop y PHP? Los errores que muestras, me da la sensación de que podrían ser más por los datos de tu tienda que por la aplicación en si. Yo tengo Prestashop 8.1.7 lleno de categorías y productos y no me aparecen esos errores.... ¿Cómo cargaste los datos? ¿Tienes identificado si el error te pasa en una categoría determinada o en todas? Lo cierto es que los "NOTICE" que muestras no son errores del desarrollo sino inconsistencias en los datos. Hola @Manuel_GT PS 1.7.8.11 PHP 7.4 Errores son así: [08-Oct-2024 10:19:18 Europe/Madrid] PHP Notice: Trying to get property 'active' of non-object in /home/u931065366/domains/rhhotelamenities.com/public_html/controllers/front/listing/CategoryController.php on line 250 [08-Oct-2024 12:35:51 Europe/Madrid] PHP Notice: Undefined variable: category in /home/u931065366/domains/rhhotelamenities.com/public_html/controllers/front/listing/CategoryController.php on line 250 [08-Oct-2024 12:35:51 Europe/Madrid] PHP Notice: Trying to get property 'active' of non-object in /home/u931065366/domains/rhhotelamenities.com/public_html/controllers/front/listing/CategoryController.php on line 250 ¿Puede que? la configuración de las categorías está mal en Backoffice, i.e. BBDD. Link to comment Share on other sites More sharing options...
aixos Posted October 8 Share Posted October 8 Te ha costado decir los datos primordiales PS + PHP El segundo post del 30 de septiembre ponía Aquí tienes una lista de información que puede ser útil: Tipo de instalación (nueva/actualización): Versión PrestaShop: Tema (predeterminado/personalizado): Código (original/modificado): Alojamiento: Versión PHP: Versión MySQL: Navegador(es) afectado(s): 1 Link to comment Share on other sites More sharing options...
rhhotelsupply Posted October 8 Author Share Posted October 8 hace 11 minutos, aixos dijo: Te ha costado decir los datos primordiales PS + PHP El segundo post del 30 de septiembre ponía Aquí tienes una lista de información que puede ser útil: Tipo de instalación (nueva/actualización): Versión PrestaShop: Tema (predeterminado/personalizado): Código (original/modificado): Alojamiento: Versión PHP: Versión MySQL: Navegador(es) afectado(s): Tipo de instalación (nueva/actualización): PS 1.6, con actualizaciones hasta 1.7.8.11 Versión PrestaShop: 1.7.8.11 Tema (predeterminado/personalizado): Personalizado Warehouse Código (original/modificado): Original Alojamiento: Cloud Versión PHP: 7.4 Versión MySQL: NO SÉ CÓMO VERIFICARLO Navegador(es) afectado(s): NO SÉ DETECTARLOS. ESTOS ERRORES LOS VEO EN el archivo de log errores. ¡Gracias! Link to comment Share on other sites More sharing options...
Nickz Posted October 8 Share Posted October 8 58 minutes ago, rhhotelsupply said: Tipo de instalación (nueva/actualización): PS 1.6, con actualizaciones hasta 1.7.8.11 la instalación fue realizada paso a paso? 1.6.1.18 a 1.6.1.19 y por ahí cada paso hasta 1.7.8.xx? Link to comment Share on other sites More sharing options...
rhhotelsupply Posted October 8 Author Share Posted October 8 No me acuerdo, la verdad. Me acuerdo que las actualizaciones hasta PS 1.7 se habían realizado en el propio PrestaShop, luego a PS 1.7 en el servidor, y tampoco no me acuerdo bien el momento exacto del cambio de theme de uno anterior a warehouse. ¿Por qué? son tan importante las la secuencia de las actualizaciones. ¿No podemos sustituir? simplemente el archivo CategoryController.php o ¿Mirar? si la estructura de categorías está bien o mal configurado, lo cual me da más duda como fuente de este error. Si eso, comparto luego la estructura de Categorías de BBDD. Gracias hace 2 horas, aixos dijo: Te ha costado decir los datos primordiales PS + PHP El segundo post del 30 de septiembre ponía Aquí tienes una lista de información que puede ser útil: Tipo de instalación (nueva/actualización): Versión PrestaShop: Tema (predeterminado/personalizado): Código (original/modificado): Alojamiento: Versión PHP: Versión MySQL: Navegador(es) afectado(s): Tipo de instalación (nueva/actualización): PS 1.6, con actualizaciones hasta 1.7.8.11 Versión PrestaShop: 1.7.8.11 Tema (predeterminado/personalizado): Personalizado Warehouse Código (original/modificado): Original Alojamiento: Cloud Versión PHP: 7.4 Versión MySQL: NO SÉ CÓMO VERIFICARLO Navegador(es) afectado(s): NO SÉ DETECTARLOS. ESTOS ERRORES LOS VEO EN el archivo de log errores. ¡Gracias! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now