En una tienda online es muy importante tener configurado un sistema de envío, es por esto que ahora les compartimos como pueden integrar el sistema de envíos de Estafeta con WooCommerce.
Paso 1:
Generar un plugin en el cuál se realizará la cotización de envío, el rastreo de productos y las etiquetas de envío.
Para esto es necesario haber contratado y solicitado a estafeta la documentación necesaria y los web services.
1.1 – Instalar el plugin
1.2 – Activar el plugin
1.3 – Registrar la configuración:
Paso 2:
Integrar el plugin con el WooCommerce que ya se tenía previamente instalado en nuestro WordPress.
2.1 – Cotizador de Envío Estafeta:
Dentro del archivo cart-shipping.php modificar la posición del arreglo, para que pinte el valor de la consulta.
- Path: wp-content/plugins/woocommerce/templates/cart/cart-shipping.php
- Variable: $method->cost = $envio;.
Modificar el archivo class-wc-cart-totals.php:
- Path: wp-content\plugins\woocommerce\includes\class-wc-cart-totals.php
- Función: get_shipping_from_cart
En este archivo realizar un do_shortcode de una función del plugin de estafeta, esto para que cuando se realice la compra en la base de datos se guarde el “Precio Fijo” del envío.
- Path: woocommerce\templates\checkout\thankyou.php
2.2 – Generador de Label Estafeta:
Modificaremos el siguiente archivo en donde registramos dos estatus que usaremos la generar el label de estafeta.
- Path: wp-content\plugins\woocommerce\includes\wc-order-functions.php
- Función: wc_get_order_statuses
Registramos estos dos estatus, para que en el momento que la orden se encuentre en el estatus “wc-scheduled-to-send”, se genere el label de estafeta.
En la base de datos, la tabla wp_wc_order_stats, guarda el detalle de las órdenes generadas, en esta se visualizará si se guarda el estatus.
SELECT status FROM wp_wc_order_stats where order_id = 3996;
En el archivo class-wc-meta-box-order-actions.php, se agregaron los estatus para el filtrado en el administrador.
- Path: wp-content\plugins\woocommerce\includes\admin\meta-boxes\class-wc-meta-box-order-actions.php
En el archivo se agregaron los querys, para hacer el filtrado de las orden por estatus.
- Función : wc_update_220_order_status
- Path: woocommerce\includes\wc-update-functions.php
Se agregaron los estatus con una breve descripción, esto se necesita para el administrador.
- Path: woocommerce\includes\class-wc-post-types.php
- Función : register_post_status
En este archivo lo que se realizó fue cuando la orden esté en estatus “wc-scheduled-to-send”, mandamos a llamar una función del plugin de estafeta, esto para que genere el label.
- Path: woocommerce\includes\admin\meta-boxes\class-wc-meta-box-order-actions.php
En este archivo se modificó el campo de texto de notas, para agregarla a las referencias que se ocupa.
- Path: woocommerce\includes\class-wc-checkout.php
- función: get_checkout_fields
En este archivo se les agregó un maxlength para que solo se capture lo que se va mandar en el plugin de estafeta, para generar el envío.
- Path: woocommerce\includes\class-wc-countries.php
- Función: get_default_address_fields
2.3 – Rastreo de Estafeta:
En esta parte solo generamos en el wordpress, una página y agregamos el siguiente shortcode.
- Path: wp-content\plugins\woocommerce\includes\wc-order-functions.php
Paso 3:
Una vez hecho todo lo anterior en la configuración de WordPress, solo tendremos activado el envío de precio fijo en 0.
Documentación:
Para la implementación se anexan los ejemplos de las peticiones que se realizaron.
1. Ambiente de QA
- https://frecuenciacotizadorqa.estafeta.com/Service.asmx
- https://trackingqa.estafeta.com/Service.asmx
- https://labelqa.estafeta.com/EstafetaLabel20/services/EstafetaLabelWS
2. Ambiente de Producción
- https://label.estafeta.com/EstafetaLabel20/services/EstafetaLabelWS?wsdl
- https://frecuenciacotizador.estafeta.com/Service.asmx
- http://trackingqa.estafeta.com/Service.asmx?wsdl