Capitulo 15 del Módulo 6 Pedidos WhatsApp

➜ Servicio para enviar pedido a WhatsApp

Cómo Enviar Pedidos de Restaurante a WhatsApp en Flutter: Implementación de un Servicio Eficiente | Aprende a integrar la funcionalidad de enviar pedidos de un restaurante a través de WhatsApp en tu aplicación Flutter. En esta lección, exploramos la clase WhatsAppService, que utiliza el paquete url_launcher para generar un mensaje detallado con los artículos del carrito de compras

Implementar un servicio en Flutter para enviar un pedido de un restaurante a través de WhatsApp.

Aprende a integrar la funcionalidad de enviar pedidos de un restaurante a través de WhatsApp en tu aplicación Flutter. En esta lección, exploramos la clase WhatsAppService, que utiliza el paquete url_launcher para generar un mensaje detallado con los artículos del carrito de compras. Descubre cómo construir la URL adecuada y enviar el pedido de manera sencilla y eficiente. Ideal para desarrolladores que buscan mejorar la experiencia del usuario en aplicaciones de comercio electrónico.

1. Importaciones Necesarias

dart

import 'package:apprestaurant/providers/cart_provider.dart';
import 'package:url_launcher/url_launcher.dart';

  • cart_provider.dart: Proveedor para gestionar los datos del carrito de compras.
  • url_launcher.dart: Paquete que permite abrir enlaces en aplicaciones externas, como WhatsApp.

2. Clase WhatsAppService

dart

class WhatsAppService {
  static const String numero = "51xxxxxxxxxx"; // Número de teléfono para enviar el pedido

  • numero: Almacena el número de teléfono con el código de país.

3. Método sendOrderToWhatsApp

dart

static Future<void> sendOrderToWhatsApp(CartProvider cart) async {

  • Parámetro: cart de tipo CartProvider, que contiene los detalles del pedido.

3.1 Generación del Mensaje

dart

String message = _generateOrderMessage(cart);

  • Llama a _generateOrderMessage para crear un mensaje que incluya todos los detalles del pedido.

3.2 Construcción de la URL de WhatsApp

dart

String url = "https://wa.me/$numero?text=${Uri.encodeComponent(message)}";

  • Crea una URL para WhatsApp que contiene el mensaje codificado.

3.3 Verificación y Lanzamiento de WhatsApp

dart

if (await canLaunch(url)) {
  await launch(url);
} else {
  throw 'No se puedo abrir WhatsApp. no esta instalado';
}

  • Verifica si la URL se puede abrir (si WhatsApp está instalado).
  • Si es posible, abre WhatsApp con el mensaje; de lo contrario, lanza un error.

4. Método Privado _generateOrderMessage

dart

static String _generateOrderMessage(CartProvider cart) {
  StringBuffer buffer = StringBuffer();
  buffer.write("NUEVO PEDIDO\n");
  buffer.writeln("Detalles del Pedido\n");

  • Crea un StringBuffer para construir el mensaje.

4.1 Detalles del Pedido


 

dart

for(var item in cart.items) {
  buffer.writeln(
    "${item.qty} * ${item.name} - \$${(item.price * item.qty).toStringAsFixed(2)}"
  );
}

  • Recorre los artículos en el carrito y añade una línea por cada uno con la cantidad, el nombre y el precio total.

4.2 Totales  

dart

buffer.writeln("\n SubTotal: \$${cart.subTotal.toStringAsFixed(2)}");
buffer.writeln("\n TAX (18%): \$${cart.tax.toStringAsFixed(2)}");
buffer.writeln("\n Total: \$${cart.total.toStringAsFixed(2)}");

  • Añade el subtotal, el impuesto (18%) y el total al mensaje.

5. Retorno del Mensaje  

dart

return buffer.toString();
}

  • Convierte el StringBuffer en un String y lo devuelve.

La clase WhatsAppService permite enviar un pedido a través de WhatsApp, construyendo un mensaje detallado a partir de los elementos en el carrito. Utiliza el paquete url_launcher para abrir WhatsApp y enviar el mensaje al número especificado.


3089 visitas

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Comprar

¡Qué aprenderás?

tooltip bs-tooltip-top bs-tooltip-end bs-tooltip-bottom bs-tooltip-start show fade tooltip-inner

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú