IvanPagan Posted July 4, 2023 Share Posted July 4, 2023 Hola, intento evitar que un producto se guarde en todas las tiendas al actualizar. Tengo 3 tiendas en multitienda y comparten los productos, pero los voy activando uno a uno en cada tienda y asignando a sus categorías individualmente. Cuando estoy en el contexto de TODAS LAS TIENDAS cuando guardo se hace en todas las tiendas, actualizando los campos comunes a todas las tiendas como por ejemplo la descripción, a la vez que el estado ACTIVE. Hay alguna forma de hacer la comprobación antes de que se guarde? y si está en el contexto de todas las tiendas activado no se guarde, de un error? Hay algún sitio en la configuración de Prestashop donde se pueda modificar ese comportamiento? cuando estás en modo multitienda en el contexto de todas las tiendas, sale una advertencia indicando que lo que se modifique, se modificará en todas las tiendas, pero me gustaría que en vez de avisar, no permita que se guarde... Espero haberme explicado, suelo encontrar la respuesta a todos mis preguntas en este y otros foros, pero llevo tiempo intentando encontrar la solución y estoy en un callejón sin salida, he probado a crear los hooks actionproductsave y update pero claro, estos son llamados después de ser guardado. Muchas Gracias ! Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted July 4, 2023 Share Posted July 4, 2023 Es posible hacer algo similar, pero que resuelve tu problema. Solo indícame que version de PS tienes? Link to comment Share on other sites More sharing options...
IvanPagan Posted July 5, 2023 Author Share Posted July 5, 2023 Hola, tengo la 1.7.7.6. Gracias ! Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted July 5, 2023 Share Posted July 5, 2023 En el archivo controllers/admin/AdminProductsController.php al inicio del método init o initProcess (en caso de que solo quieras que aparezca el mensaje cuando se ejecuta alguna acción como guardado, eliminación, edición, etc) debes poner un código similar a este: if (Shop::getContext() != Shop::CONTEXT_SHOP) { $this->errors[] = $this->trans('You must select an specific shop before continue', array(), 'Admin.Notifications.Error'); } Básicamente lo que hace el código es verificar que el contexto sea de una sola tienda, en caso contrario debería aparecer siempre un error que no te permita guardar los cambios. Puedes modificarlo libremente a tu conveniencia. Suerte!! Link to comment Share on other sites More sharing options...
IvanPagan Posted July 7, 2023 Author Share Posted July 7, 2023 Lo probaré y te diré, imagino que este archivo quedará sobrescrito en futuras actualizaciones? Saludos Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted July 7, 2023 Share Posted July 7, 2023 5 hours ago, IvanPagan said: imagino que este archivo quedará sobrescrito en futuras actualizaciones Es correcto. A menos que hagas un override para no perder los cambios que hagas. 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