Inicio » Cursos » App restaurant con pedidos en Flutter

Curso App restaurant con pedidos en Flutter

Capitulo 15 ➜ 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.


2321 visitas

Descarga el código del proyecto

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

Comprar

Más cursos que pueden interesarte

Más cursos

Codea Applications

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

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024