Ventanazos Posted June 7, 2016 Share Posted June 7, 2016 Descripción: Cuando un cliente crea una nueva cuenta de cliente y agrega una dirección, incluso dos direcciones diferentes, todo funciona bien, pero si este mismo cliente realiza cualquier cambio en cualquiera de las direcciones que ha creado antes, el proceso de modificación en su panel de cuenta de cliente funciona bien, la dirección se modifica correctamente, sin embargo, si desea ver la dirección del cliente desde el backoffice la base de datos se corrompe mostrando este error [PrestaShopException]Invalid address #265at line 401 in file classes/Address.php 396. // if an id_address has been specified retrieve the address 397. if ($id_address) { 398. $address = new Address((int)$id_address); 399. 400. if (!Validate::isLoadedObject($address)) { 401. throw new PrestaShopException('Invalid address #'.(int)$id_address); 402. } 403. } elseif ($with_geoloc && isset($context->customer->geoloc_id_country)) { 404. $address = new Address(); 405. $address->id_country = (int)$context->customer->geoloc_id_country; 406. $address->id_state = (int)$context->customer->id_state; Si se intenta ir a los carritoss abandonados se obtendrá el mismo mismo y la misma pantalla aparece. En realidad, en algunos otros foros dijeron que una solución es hacer un trunck a la base de datos de carritoss abandonados, pero por supuesto esto no es una opción ya que vas a perder los cambios a sus direcciones que los clientes hayan hecho antes. No se el origen de este error, pero tengo dos hipótesis: 1- Hay un bug que corrompe o produce el problema de base de datos cuando se realiza una modificación a una dirección del cliente. 2. Cuando el número de carros abandonados en la base de datos alcanza un límite, PS es incapaz de gestionar el límite superado. Gracias por adelantado a cualquier persona con una solución real. Link to comment Share on other sites More sharing options...
buhoplace Posted June 8, 2016 Share Posted June 8, 2016 Entonces el error solo esta en el backoffice, que no puede validar el objeto address? en el controlador desde donde salta el error? Link to comment Share on other sites More sharing options...
Ventanazos Posted June 8, 2016 Author Share Posted June 8, 2016 A ver si me explico mejor, pensé tras el planteamiento anterior, que el siguiente paso lógico sería echar una mirada en la base de datos con Phpmyadmin en la tabla ps_address y para ver si hay algo extraño con el registro con id = 265, en realidad me encontré con que la dirección # 265 no existe, en ps_address hay una 264 y una 266, pero no 265. Así que creo que este es el error, que por alguna razón desconocida (al menos para mí ) rompe la continuidad en el campo clave (id_address) de ps_address, una entrada (o varias) se pierden, antes de que se reanude el conteo consecutivo. Luego fui a ps_customer para ver si esta dirección faltante fue asignada a cualquier cliente, y de hecho, se asignó al último cliente que había hecho un cambio en su dirección desde su cuenta de cliente, exactamente ese cuyo registro no era accesible desde mi backoffice. Así que el siguiente paso era ver que en ps_cart ese carrito se había asignado a esa dirección no válida. Una vez que encontré dicho carro hice un cambio directamente en la BD a través de phpmyadmin para cambiar el id_address, en lugar del 265 lo cambié por 264, que anteriormente había comprobado que era una dirección válida asignada a un mismo cliente. NOTA: tuve que repetir varias veces el proceso con algunos otros clientes, incluyendo un cliente de prueba que creé desde el mismo comienzo de la instalación de mi tienda destinado a ser utilizado para las pruebas y "experimentación", este cliente en realidad tenía 15 o más direcciones no válidas asignadas, que tuve que modificar por una si válida. Esto resuelve los síntomas, pero está lejos de ser una solución completa, porque una vez que cada dirección no válida se convierte en una válida, puedo tener acceso a partir de back office a todas esas páginas, carros abandonados, carros activos, y perfiles de clientes que habían tenido direcciones no válidas.A pesar de eso, el origen del problema no se ha tocado en absoluto, por lo que el problema podría, y estoy seguro que, al parecer, una vez más, en cualquier momento inesperado volverá a aparecer. Tal vez cuando un cliente necesite hacer un cambio o actualización a su dirección o cada vez que el evento que provoca la ruptura del incremento consecutivo del campo clave en ps_address aparezca de nuevo. Así que esto es lo que me preocupa , y no una solución temporal que ya he logrado. 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