Saltar navegación

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Etiquetado: 

Este tema contiene 11 respuestas, tiene 0 voces.

Última actualización por Otto hace 1 mes, 2 semanas.

Asistido por: Otto.

Autor Publicaciones
mayo 5, 2025 a las 3:42 pm #16997173

reyD

Hola Otto,

Conseguimos un gran avance con Shoptimizer y logramos resolver el problema del menú durante el fin de semana.

Sin embargo, estamos enfrentando un único inconveniente importante:
al traducir los productos con WPML, se generan nuevos Product IDs en lugar de mantenerse vinculados al producto original.
Esto rompe la sincronización de stock entre idiomas, lo cual es esencial para nuestro sitio.

¿Hay alguna forma de mantener el mismo Product ID al traducir, o asegurar que las traducciones permanezcan sincronizadas con el producto original?

¡Gracias de antemano!

mayo 5, 2025 a las 3:53 pm #16997204

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Al traducir productos en WooCommerce con WPML, cada traducción necesariamente se registra como una entrada (post) distinta en WordPress y, por lo tanto, obtiene su propio post_ID. No es posible compartir el mismo ID entre idiomas; la sincronización de inventario se logra copiando los campos de stock y dejando que WooCommerce Multilingual & Multi‑Currency (WCML) actualice los valores en todas las traducciones.

Esto debería funcionar "out of the box". Has notado que los stocks se desincronizan?

Si es así comprueba lo siguiente:
- Ve a WPML → Settings → Custom Fields Translation, pulsar «Show system fields» y buscar _manage_stock, _stock, _stock_status y comprueba que _stock esté como "Don't translate" y los otros dos como "Copy"  
- Si los tuviste que modificar, edita un producto en el idioma principal (pequeña modificación) y actualiza su traducción para propagar valores. 
- Comprobar en WooCommerce → WooCommerce Multilingual → Status → Troubleshooting la opción Sync product stock quantity and status y ejecutarla.

Si el problema persiste, podrías por favor describir los pasos que llevan a que el stock no esté sincronizado?

Saludos cordiales,
Otto

mayo 5, 2025 a las 4:28 pm #16997333

reyD

Hola Otto,

Gracias por tu detallada explicación. Comprobamos el punto que mencionaste sobre la sincronización desde WooCommerce → WooCommerce Multilingual → Status → Troubleshooting, y encontramos que la opción “Sync product stock quantity and status” no estaba tildada.

Sin embargo, al activarla e intentar ejecutar la sincronización, no se guarda correctamente la configuración. Adjunto una captura del error que aparece en la consola:
Uncaught TypeError: Cannot read properties of undefined (reading 'initialize'), además de múltiples errores 404 relacionados con archivos JS y CSS del plugin. (adjunto imagenes)

Esto nos impide completar la sincronización de stock entre idiomas como corresponde, y puede estar afectando también el comportamiento del backend al duplicar productos o traducir.

¿Podrías revisarlo o indicarnos cómo resolver esta falla del entorno WPML/WCML?

Gracias y saludos,
Guido

4d3a8456-9ca3-43ea-8f3c-ae62f2a33a52.jpg
b6a1ee07-6fa3-4da9-b646-df9a4d20ba29.jpg
mayo 5, 2025 a las 5:16 pm #16997624

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

El error JavaScript (Uncaught TypeError: Cannot read properties of undefined (reading “initialize”)) más los 404 de los archivos JS/CSS de WooCommerce Multilingual & Multi‑Currency (WCML) explican por qué la opción Sync product stock quantity and status no se ejecuta: los scripts que cargan la interfaz de “Troubleshooting” no llegan al navegador. Esto bloquea la sincronización de inventario y, de rebote, genera problemas al traducir o duplicar productos.

Prueba lo siguiente por favor:
Reparar rutas de assets y reinstalar WCML
• ❌ Por favor, antes que nada: haz un backup de tu sitio ❌
• Desactivar todos los plugins salvo WPML, WCML y WooCommerce; cambiar al tema Storefront. Comprobar la consola; si los 404 desaparecen, reactivar uno a uno para aislar conflicto.  
• Ir a Plugins → Añadir nuevo → Commercial, pulsar Download plugins para forzar la descarga íntegra de WCML (a veces faltan archivos tras actualizaciones vía FTP). 
• Vaciar caché de objeto/opcode y borrar la carpeta /wp-content/cache/ antes de probar de nuevo la herramienta de sincronización. 

Dime si esto lo soluciona por favor.

Saludos cordiales,
Otto

mayo 5, 2025 a las 5:22 pm #16997641

reyD

Hola denuevo Otto,

Podrias explicarnos como reparar rutas de assets?

Saludos,

mayo 5, 2025 a las 5:30 pm #16997654

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Dependerá del resultado de desactivar los plugins y usar un tema "default".

Es posible para ti realizar esas pruebas? Sería ideal hacerlo en un sitio de pruebas o al menos con un backup confiable. Dime si necesitas ayuda con esto.

Saludos cordiales,
Otto

mayo 5, 2025 a las 5:54 pm #16997744

reyD

Hola Otto,

Gracias por tu respuesta tan detallada.

Probamos exactamente lo que indicaste: fuimos a WooCommerce Multilingual → Troubleshooting y marcamos la opción Sync product stock quantity and status (adjunto imagen "Troubleshoot Before Sync.jpg").

Al hacer clic en Start, el sistema comienza la sincronización, pero tras completarla, no se actualiza ningún valor (ver imagen "After Start.jpg"), y los productos traducidos siguen sin compartir stock, es decir, con diferente product ID, lo que impide la sincronización de inventario.

Quedamos atentos a cómo proceder para reparar esas rutas rotas de assets y poder ejecutar correctamente la sincronización de stock entre traducciones.

Gracias nuevamente por tu ayuda.

Saludos,

Troubleshoot Before Sync.jpg
Troubleshoot after.jpg
After Start.jpg
mayo 5, 2025 a las 5:55 pm #16997787

reyD

Cabe destacar que esta prueba se realizo desactivando todos los otros plugins y cambiando el theme a Storefront, pero seguimos sin conseguir el resultado esperado

mayo 5, 2025 a las 5:59 pm #16997789

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias.

Podrías indicarme un par de productos cuyo inventario no esté sincronizado?

Para investigar mejor el problema, ¿puedes proporcionarme acceso temporal a tu sitio (wp-admin y FTP)?
**Importante:**
- **Haz un backup** de tu sitio antes de compartir los datos.
- Si no ves un formulario privado para ingresar las credenciales, **no las publiques** en el foro.

Si es necesario, podría replicar tu sitio localmente instalando un plugin (Duplicator, WP All in One Migration, WP Staging o Updraft Plus)? Una vez resuelto el problema, borraré la copia.

Saludos cordiales,
Otto

mayo 5, 2025 a las 7:53 pm #16998076

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias por la aclaración.

Aún en WP / WooCommerce cada traducción debe tener un post_ID propio; WordPress no permite que dos entradas (posts/products) compartan el mismo ID. 

WPML → WCML mantiene la relación mediante la trid interna y sincroniza stock, SKU y meta‑campos; no por ID. Por eso, para licencias digitales conviene vincularlas por SKU o usar un gestor de licencias compatible con WPML (p.ej. Enwikuna License Manager), o bien implementar un código que comparta inventario basándose en el SKU.

https://wpml.org/plugin/enwikuna-license-manager-for-woocommerce/

Lamentablemente el plugin WooCommerce License Manager no va a ser compatible con WPML si no permite vincular las licencias mediante el SKU u otro meta field.

Saludos cordiales,
Otto

mayo 6, 2025 en 5:00 pm #17002947
reyD

Hola Otto,

Gracias nuevamente por tu asistencia previa.

Queríamos comentarte que por una cuestión de funcionalidad operativa, utilizaremos un sistema propio de “pools” para relacionar licencias con los product_id, el cual ya usamos y sabemos que funciona correctamente. Por ese motivo, no realizaremos cambios en nuestro actual gestor de licencias.

Dicho esto, seguimos enfrentando un inconveniente que no logramos resolver: hay cinco productos traducidos y publicados que no aparecen en WP Menu Sync, y no entendemos por qué.

Los productos en cuestión son:

Product ID 7357 – Windows 10 Pro

Product ID 7452 – Office 365 E5 200 users

Product ID 7455 – Office 365 E3 100 users

Product ID 7454 – Office 365 E5 25 users (aparece mal como Office Pro Plus 2019)

Product ID 7486 – Windows Server 2025 Standard

Hemos probado todas las herramientas de Troubleshooting (Set language information, Fix post type assignment, Fix terms count, entre otras), verificamos que las traducciones estén correctamente enlazadas y publicadas, e incluso intentamos recrear las traducciones manualmente.

¿Podrías, por favor, revisar esto con tu usuario en nuestro ambiente de pruebas RDStesting y ver si podés identificar qué puede estar causando que estos productos no aparezcan?

Adjuntamos captura para referencia visual.

Muchas gracias por tu ayuda.

Saludos,
Guido

Los hilos nuevos creados por Otto y vinculados a este se encuentran a continuación:

https://wpml.org/es/forums/topic/dividir-hay-cinco-productos-traducidos-y-publicados-que-no-aparecen-en-wp-menu-sync/

Productos Not Translated.jpg
mayo 6, 2025 a las 5:41 pm #17003075

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola Guido,

Gracias por la explicación. Entiendo que una solución "custom" es una mejor opción para este caso.

En cuanto al nuevo problema que planteas, he creado un nuevo ticket para resolverlo:
https://wpml.org/es/forums/topic/dividir-hay-cinco-productos-traducidos-y-publicados-que-no-aparecen-en-wp-menu-sync/

Cierro este ticket y seguimos allí.

Saludos cordiales,
Otto