Módulos de transportistas - funciones, creación y configuración
Este artículo fue escrito por Fabien Serny y publicado el 28 de septiembre de 2011 en el blog PrestaShop.
Prefacio
Tenga en cuenta que este artículo está dirigido a desarrolladores avanzados (el conocimiento de los hook, el objeto Transportista ...) y se aplica a PrestaShop 1.4 y versiones posteriores. Para saber lo que es un hook, le recomiendo leer el artículo de Julien Breux aquí: Comprensión y uso de hooks
En un nivel básico PrestaShop le permite crear transportistas y configurar la manera como los gastos de envío son calculados basados en rangos de peso y precio que puede especificar en el back office.
Los límites de este sistema se alcanzan cuando desea recuperar precios a través de servicios web (UPS, USPS, Fedex) o si desea crear su propio sistema para el cálculo de gastos de envío (por número de artículos en la cesta, restringiendose de un transportista o de uno o más países, etc.).
Aquí es cuando los módulos de transportista entran en juego.
¿Por dónde empiezo?
Hay un módulo básico que se puede descargar aquí. El artículo comenzará a partir de este módulo básico, pero por supuesto usted puede modificarlo y adaptarlo a sus necesidades
En nuestro ejemplo, usted puede manejar dos transportistas y establecer un costo adicional para ellos, además del precio por rango configurado en el back office.
Algunas partes del código se duplican deliberadamente para ayudarle a entender el mecanismo. Depende de usted manejar su lista específica de transportistas (utilizando un cuadro de datos, por ejemplo).
Explicación del ejemplo
En primer lugar, tenga en cuenta el hecho de que el módulo pertenece a la clase CarrierModule y no la clase Module. Por ahora, vamos a hacer una breve lista de los métodos contenidos en este módulo y la forma en que funciona en general.
1) Los métodos __construct, install y uninstall
Construct:
Install:
Uninstall:
2) Métodos del Back Office
No voy a concentrarme en la mayoría de los métodos de back office (getContent, _displayForm, _postValidation and _postProcess), ya que son relativamente simples y se encuentran ahí para que pueda establecer los costos del transportista. Le dejaré descubrirlos en el módulo de ejemplo.
Sin embargo, me gustaría concentrarme en el método hookupdateCarrier. En PrestaShop, cada vez que edita un transportista, el transportista se archiva automáticamente y uno nuevo es creado.
Técnicamente, PrestaShop cambia la bandera de eliminado del transportista a 1 y crear uno nuevo.
Por eso, cuando edita un transportista a través de la pestaña "Transportista" en su back office, su id cambia.
Por lo tanto, debe conectar con un hook el módulo con el fin de actualizar el Id del transportista cuando este cambia.
3) Métodos de front office
Medidas adicionales
El ejemplo es muy sencillo, pero puede crear módulos más complejos mediante la asociación con servicios web, por ejemplo (como es el caso de los módulos UPS) o realizar un cálculo basado en el número de productos en su carrito.
En resumen, ahora ya domina el cálculo de gastos de envío
Last updated
Was this helpful?
