Hola, Al actualizar a Virtuemart 3.0.14 el precio de todos los envíos ha quedado en cero. La actualización la efectué en un clon, por lo que en la web en producción se sigue conservando bien los envíos. ¿Puedo solucionarlo sin tener que entrar el precio de todos los envíos?
En el clon Utilizo Joomla 3.5.1, Virtuemart 3.0.14 y la plantilla Storebox!3
Saludos y gracias
URL del sitio: Contenido solo visible a usuarios registrados
Hola,
Parece que existen algunos problemas entre Joomla 3.5.1 y Virtuemart 3.0.14. En el siguiente enlace se habla de alguno de ellos:
http://forum.virtuemart.net/index.php?topic=133760.0
Por tanto, no te recomiendo actualizar todavía tu web en producción, en espera de que salga una nueva versión de Virtuemart que pueda corregir estos errores.
Actualmente ya existe una versión de Virtuemart 3.0.16, que indica que es compatible con Joomla 3.5.1, y que puedes encontrar ahí:
http://dev.virtuemart.net/projects/virtuemart/files
Prueba esa versión en el clon, para ver si se resuelven los problemas.
Hola,
Con la actualización a Virtuemart 3.0.16 no se resuelve. El tema de las actualizaciones cada vez es más complejo y da mayor inseguridad. No sé si siempre va a ser así, si vamos a tener que actualizar tan a menudo y con tantos números de tener problemas. Si no actualizas estás en riesgo por una instalación vulnerable o sin soporte oficial y si actualizas te arriesgas a que algo no funcione correctamente y no te percates de ello. Además las extensiones de pago tales como CSVI que necesitas para ciertas tareas si trabajas con un clon y luego debes importar datos, te caduca la suscripción o la que tienes no contempla la última versión, además de que a veces funcionan distinto y hay que volver a aprender como va.... En fin, un auténtico calvario. Al final hay que escoger entre estar en una versión vulnerable (malo) o actualizar sin garantías (malo también). Una muestra es este caso. Temía que hubiera problemas al actualizar a la última versión y comenté en otro post la posibilidad de actualizar no a las últimas versiones si no a versiones más "viejas", pero se me recomendó actualizar a las últimas versiones por seguridad, decisión con la que estoy de acuerdo porqué a algo tenemos que dar la prioridad. Pero luego la actualización da problemas:
Esta fue mi consulta:
Lo de actualizar cada vez me genera mayor inseguridad, no sé si solo me pasa a mi...pero en fin. Para minimizar problemas de compatibilidad me gustaría actualizarme a la versión más baja de cada cosa para estar dentro de la rama activa (con soporte) de Joomla. Es decir, de Joomla 2.5.28 pasar a Joomla 3 en su versión más "vieja" con la versión de virtuemart "más vieja" compatible con la de Joomla 3 a la que actualice...Entonces, entioendo que se tiene que hacer la actualización de Joomla como antes, manualmente, ya que por la vía rápida me instalaría la última dispobible Joomla 3.5.1, con lo cual tengo más números de que haya extensiones no compatibles, etc. Si luego de esto me funciona todo, entonces ya iría actualizando a versiones más recientes...
Esta fue la recomendación (que me parece acertada ya que hay que elegir el mal menor):
No te recomiendo actualizar a versiones viejas de la rama 3 de Joomla, como la 3.4.0, ya que todas ellas son vulnerables. Puestos a actualizarte, es mejor que pases a utilizar directamente las últimas versiones de Joomla y Virtuemart, asegurándote de que el resto de extensiones que hayas añadido a tu Joomla sean compatible con la versión de Joomla.
Supongo que lo mejor será esperar unos meses. Pero no sé qué hacer si volver a hacer todo el proceso de nuevo desde cero: Eliminar el clon actual, hace nuevo Clon de la web en producción, y Actualización de Joomla, Virtuemart y de la plantilla, etc... de manera que tendré los pedidos y usuarios al día. O intentar solucionarlo en el clon actual (pero se habrán generado pedidos, nuevos compradores, etc y me imagino que deberé importar y exportar datos con CSVI...)
Mil gracias por vuestra ayuda y perdonad el rollo, pero lo de las actualizaciones me preocupa :unsure:
Saludos!
Hola,
Es cierto que es bastante común encontrarse con problemas de diversa índole cuando se aplican actualizaciones de Joomla y de sus extensiones, en especial cuando la actualización supone un cambio de rama que puede llevar cambios más o menos profundos en el código.
En el caso de Virtuemart, algunas actualizaciones han sido particularmente problemáticas, introduciendo nuevos errores que anteriormente no existían. Se puede decir que desde la versión 2 de Virtuemart, no han conseguido una buena estabilidad (de poco sirve arreglar un problema con una actualización si introduces uno nuevo).
Antes de volver atrás en versiones, podríamos tratar de resolver el problema con los portes de envío. Prueba a crear un nuevo porte de envío y verifica si para ese nuevo porte también se muestra un importe de 0. De esta forma podremos saber si el problema está en la forma en la que se guardan los portes de envío actuales.
Hola Pablo,
Si creo un porte nuevo funciona bien. Por otro lado, he ido a la tabla #__virtuemart_shipmentmethods y veo que los parametros de coste del envío que están dentro de shipment_params tienen diferencias enntre las etiquetas de nombre de los nuevos métodos de identificación de envíos (que se ejecuta bien) y las id_shipmentmethods existentes (que no funcionan). La diferencia es esta:
En los nuevos, que funciona bien: shipment_cost
En las formas de envío existentes: coste (No funciona)
He cambiado una forma de envío existente de cost a shipment_cost y luego se ejecuta bien.
Qué puedo hacer para resolverlo en todos los metodos de envío existentes?
Nota: en el foro de Virtuemart me sugieren lo siguiente, pero no tengo muy claro como hacerlo:
simply export the table.. in a good text editor do a search and replace of the 'cost' / 'shipment_cost' on the sql file , drop or rename the existing table and import your edited sql file
Gracias y saludos
Hola,
¿Cuántos métodos de envío tienes creados en tu Virtuemart? De no ser muchos, lo más rápido sería que crearas de nuevo los métodos de envío y elimines los que ya tenía.
Modificar la estructura de los datos en la base de datos puede ser algo delicado y generar errores inesperados. En todo caso, si tienes muchos métodos de envío se podría analizar cómo hacer esto. Indícanos el enlace al hilo del foro de Virtuemart donde has visto esto.
Hola, puse la pregunta en el foro de virtuemart y el post mencionado es la respuesta. Aquí teneis el hilo:
http://forum.virtuemart.net/index.php?topic=133905.0
Tengo unos 300 métodos de envío creados. ¿Podría ser una solución más segura ir a la tabla a través de PHPMyAdmin y modificar uno a uno cost por shipment cost? Lo hice con un envío y parece que funcionó. Lo digo porque dentro de lo lento que será, siempre será más rápido que volver a crear los 300 envíos. Además, supongo que si me puedo hacer una copia de la tabla por si acaso fallará algo tras los cambios. (De hecho, ya he bajado una copia de la tabla pero me gustaría hacerlo de nuevo siguiendo vuestras indicaciones por si al descargarlo hay que marcar o desmarcar determinadas opciones).
Saludos y gracias
Hola,
Por lo que veo el problema está en el campo shipment_params de la tabla #_virtuemart_shipmentmethods. La estructura actual es como la siguiente:
shipment_logos=""|countries=["195"]|zip_start="00000"|zip_stop="99999"|weight_start="0"|weight_stop="99999"|weight_unit="KG"|nbproducts_start="0"|nbproducts_stop="99999"|orderamount_start="0"|orderamount_stop="99999"|cost="5"|package_fee=""|tax_id="-1"|free_shipment=""|
y parece que lo correcto para la última versión de Virtuemart debería ser esto:
shipment_logos=""|countries=["195"]|zip_start="00000"|zip_stop="99999"|weight_start="0"|weight_stop="99999"|weight_unit="KG"|nbproducts_start="0"|nbproducts_stop="99999"|orderamount_start="0"|orderamount_stop="99999"|shipment_cost="5"|package_fee=""|tax_id="-1"|free_shipment=""|
Es decir se cambia el parámetro "cost" por "shipment_cost". Esto se podría hacer con una consulta SQL. Vete desde el panel de control CPanel de tu cuenta de hosting a la opción phpMyAdmin y selecciona la base de datos de tu web. A continuación pulsa en la pestaña SQL, pega la siguiente consulta en la caja y pulsa en Continuar:
UPDATE #_virtuemart_shipmentmethods SET shipment_params = REPLACE(shipment_params, 'cost=', 'shipment_cost=')
Esto haría el reemplazo en todos los portes de una sola vez. En la consulta que te he puesto, cambia # por el prefijo que estás utilizando en tus tablas.
Recuerda disponer de una copia de seguridad de la base de datos, o al menos de la tabla, antes de ejecutar la consulta.
Hola Pablo, solucionado con tus indicaciones. ¡Genial! :cheer: Podeis cerrar el tema.
Gracias y saludos