Jump to content

Ayuda con webservice y las reglas de precio del catálogo


Recommended Posts

Buenas tardes

Soy desarrollador de software de gestión y tengo un programa que actualiza la base de datos de prestashop vía webservice el problema lo tengo con un cliente nuevo que lo estamos integrando con un prestashop que ya tenía, el problema viene que tiene definidas reglas de precio del catálogo en concreto por marcas y por ejemplo cuando le cambias la marca a un producto desde la parte administrativa del prestashop (como ellos lo hacían antes)  hay un proceso que valida si la marca que se le ha puesto al producto cumple alguna de las reglas de precios y crea los correspondientes precios específicos para ese producto aplicando los descuentos, cuando la modificación del producto se hace por el webservice esos procesos no se desencadenan y no se crean los descuentos, esto implica que tendría que hacer un proceso que borrara todos los precios específicos que tenga el producto, descargar las reglas, validar si cumple alguna condición y volver a crear los precios específicos

Se me está pasando algo por alto que no hago desde el webservice, algo que tenga que actualizar aparte del producto y no actualizo?

En caso de que el webservice no lo haga se podría añadir un nuevo recurso o algo que lo haga? aunque no estoy familiarizado con prestashop a nivel de programación

Agradezco cualquier tipo de ayuda

Gracias y un saludo

 

Link to comment
Share on other sites

Puede depender de las necesidades concretas . Puedes añadir un nuevo metodo desde un modulo 

https://devdocs.prestashop-project.org/8/modules/concepts/webservice/

O puedes hacer un override de la funcion updateWs en

/classes/Product.php

ahi compararías si se aplica un cambio en la marca/ manufacturer y se le pueden aplicar los descuentos correspondientes a las reglas de catalogo con 

SpecificPriceRule::applyAllRules

Otra opción, quizas la más transversal sería hacer override de la funcion saveEntityFromXml en

 classes/webservice/WebserviceRequest.php

para añadir la ejecucion del hook actionProductUpdate

Link to comment
Share on other sites

He optado por hacer el override de la función updateWs en el archivo /classes/Product.php y ha funcionado , al actualizar solo la marca vía webservice se recalculan todos los precios específicos del producto

Muchísimas gracias

Un saludo

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...