En algunos sectores o tipos de cliente es muy normal que se repita el mismo pedido, sobre todo en las tiendas online B2B o distribuidores. Por ejemplo en compras de materias primas que necesitamos siempre las mismas para poder seguir fabricando o bien en el B2C en supermercados online.
En estos casos tener una funcionalidad en el historial de pedidos del usuario para repetir la compra puede ser una muy buena opción para ahorrar tiempo al cliente o bien aumentar la tasa de conversión, ya que es mucho más sencillo y directo comprar.
En este tutorial dependiendo si necesitáis una funcionalidad básica o más desarrollada lo implementaremos en el ecommerce mediante código o un plugin!
Índice
Ventajas de repetir o duplicar el pedido
- Incentivas a que repitan la compra del mismo producto en tu tienda, fidelizando así a los clientes.
- Cómodo y rápido para el usuario. Tarda menos de 1 minuto en comprar.
- Si estás en sectores como hogar, alimentación, repuestos… Es decir, sectores en los que repiten mucho la compra los clientes, es necesario. Como los puntos de descuento.
Mediante código
Al ser una funcionalidad muy básica, lo podemos hacer con un poquito de código. En este caso permitimos al cliente repetir la compra con cualquier estado de pedido desde la página de mi cuenta. Si lo queréis cambiar quitar los estados del código y listo.
Hay que añadirlo al fichero functions.php de nuestro child theme o en nuestro plugin de funcionalidades como explico aquí.
add_filter( 'woocommerce_valid_order_statuses_for_order_again', 'dl_repetir_pedido_cualquier_estado', 10, 1);
function dl_repetir_pedido_cualquier_estado($array){
$array = array_merge($array, array('on-hold','pending', 'processing', 'completed', 'cancelled'));
return $array;
}
add_filter( 'woocommerce_my_account_my_orders_actions', 'dl_repetir_pedido_mi_cuenta', 20, 2 );
function dl_repetir_pedido_mi_cuenta( $actions, $order ) {
if ( $order->has_status( 'completed' ) || $order->has_status( 'processing' ) || $order->has_status( 'pending' ) || $order->has_status( 'on-hold' ) || $order->has_status( 'cancelled' ) ) {
$actions['order-again'] = array(
'url' => wp_nonce_url( add_query_arg( 'order_again', $order->id ) , 'woocommerce-order_again' ),
'name' => __( 'Repetir pedido', 'woocommerce' )
);
}
return $actions;
}
Consiguiendo el siguiente resultado:

Si lo queremos mostrar también en la página de gracias:
add_filter( 'woocommerce_thankyou', 'dl_repetir_pedido_pagina_gracias', 4 );
function dl_repetir_pedido_pagina_gracias($order_id) {
$order = wc_get_order($order_id);
if ( $order->has_status( 'completed' ) || $order->has_status( 'processing' ) || $order->has_status( 'pending' ) || $order->has_status( 'on-hold' ) ) {
$actions['order-again'] = array(
'url' => wp_nonce_url( add_query_arg( 'order_again', $order->id ) , 'woocommerce-order_again' ),
'name' => __( 'Repetir pedido', 'woocommerce' )
);
?>
<a class="btn btn-primary" href="<?php echo $actions['order-again']['url'];?>" ><?php echo $actions['order-again']['name'];?> </a>
<?php
return $order_id;
}
}
Repeat Order for WooCommerce(gratis)
Si necesitas un plugin gratuito porque no quieres meterte con códigos este es tu plugin, disponible en el repositorio oficial de WordPress. Una vez instalado nos vamos a WooCommerce > Ajustes > repetir pedidos. Y haremos los siguientes ajustes:

Entonces en la pantalla de pedidos se nos quedaría:

Solo se mostrará la opción para los pedidos completados, tenerlo en cuenta. Si lo queréis cambiar, usad el siguiente código:
add_filter( 'woocommerce_valid_order_statuses_for_order_again', 'dl_repetir_pedido_cualquier_estado', 10, 1);
function dl_repetir_pedido_cualquier_estado($array){
$array = array_merge($array, array('on-hold','pending', 'processing', 'completed', 'cancelled'));
return $array;
}
También este plugin añade la opción de repetir el pedido en la página de gracias de WooCommerce. No la veo muy útil para un cliente que está comprando pero bueno.
Buy Again for WooCommerce(Premium)
Este es el plugin oficial de WooCommerce.com que podemos encontrar en esta url. Además de tener las funcionalidades del plugin gratis que hemos visto podremos:
- Crear una sección en mi cuenta para poder volver a comprar productos que ya haya comprado el cliente y añadirlos desde ahí.
- Poner un aviso en los productos como que ya ha sido comprado.
- Desde los pedidos del administrador permitir volver a pedirlo.
No veo necesario adquirirlo y con el gratis vamos bien, pero si alguna de estas funcionalidades os es útil adelante. Os lo comento porque en cada tutorial me gusta mostraros todas las opciones que hay.
Cualquier duda como siempre, os leo en comentarios!
Deja una respuesta