Hola @claudiahub y @saratech,
@saratech tiene razón, el problema de tu override es la gestión de los campos multilingües. En PrestaShop 1.7.0.5, como en otras versiones, los campos como description y description_short son arrays indexados por id_lang.
Para aplicar el str_replace a todos los idiomas, deberías iterar por ellos. Aquí te muestro cómo modificar tu override para que sea más robusto en este aspecto:
// override/classes/Product.php
class Product extends ProductCore
{
public function update($null_values = false)
{
// Iteramos por todos los idiomas definidos en la tienda
foreach (Language::getIDs(false) as $id_lang) {
if (isset($this->description[$id_lang])) {
$this->description[$id_lang] = str_replace('TEXTO_ANTIGUO', 'TEXTO_NUEVO', $this->description[$id_lang]);
}
Con este cambio, el str_replace se aplicará a todas las traducciones de la descripción. Es importante recordar que los overrides, aunque útiles para soluciones rápidas, no son la opción más ideal a largo plazo debido a los problemas de mantenimiento y las posibles incompatibilidades con futuras actualizaciones del core o de otros módulos.
Para una gestión más profesional y sin riesgo de roturas en el futuro, especialmente si necesitas que esta funcionalidad sea dinámica o configurable desde el back office, te recomiendo considerar una herramienta de buscar y reemplazar texto dedicada. Un módulo te ofrecerá una interfaz de usuario, opciones de configuración y una mayor estabilidad sin tocar el código central de PrestaShop.