Capitulo 20 del Módulo 5 Carrito de compra

➜ Enviar Pedido por WhatsApp

Enviar Pedido por WhatsApp | Al finalizar, implementaremos la funcionalidad para generar un resumen del pedido en formato de texto y enviarlo a través de WhatsApp, utilizando un intent de Android.

Para implementar el envío del pedido del carrito de compras a WhatsApp desde tu aplicación Android, puedes usar intents para abrir WhatsApp con un mensaje preformateado que contenga los detalles del pedido (como los nombres de los productos, cantidades, precios, y el total).

Aquí te explico cómo hacerlo:

Pasos:

  1. Recopila la información del carrito: Genera un resumen del pedido, incluyendo los nombres de los productos, las cantidades y el total.
  2. Crea un mensaje de texto con esta información.
  3. Lanza un intent de WhatsApp para enviar el mensaje.

Ejemplo:

  1. Añadir un botón para enviar el pedido a WhatsApp en tu layout XML (activity_cartctivity.xml):

xml

<Button
    android:id="@+id/btnSendWhatsApp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enviar a WhatsApp" />
 

Modificar la actividad Cartctivity para implementar la funcionalidad del envío a WhatsApp:

// Botón para enviar a WhatsApp
        btnSendWhatsApp.setOnClickListener {
            sendOrderToWhatsApp()
        }

 

 // Función para enviar el pedido a WhatsApp
    private fun sendOrderToWhatsApp() {
        val cursorCart = dBmanager.getCart()
        val message = StringBuilder()

        if (cursorCart != null && cursorCart.moveToFirst()) {
            message.append("Pedido del carrito de compras:\n\n")
            do {
                val itemName = cursorCart.getString(cursorCart.getColumnIndexOrThrow("name"))
                val itemQty = cursorCart.getInt(cursorCart.getColumnIndexOrThrow("quantity"))
                val itemPrice = cursorCart.getDouble(cursorCart.getColumnIndexOrThrow("price"))

                message.append("Producto: $itemName\n")
                message.append("Cantidad: $itemQty\n")
                message.append("Precio: S/. ${String.format("%.2f", itemPrice)}\n")
                message.append("Subtotal: S/. ${String.format("%.2f", itemPrice * itemQty)}\n\n")
            } while (cursorCart.moveToNext())

            val subtotal = tvSubtotal.text.toString()
            val igv = tvIgv.text.toString()
            val total = tvTotal.text.toString()

            message.append("Subtotal: S/. $subtotal\n")
            message.append("IGV: S/. $igv\n")
            message.append("Total: S/. $total\n")
        }

        // Crear un intent para abrir WhatsApp con el mensaje
        val intent = Intent(Intent.ACTION_VIEW)
        val url = "https://api.whatsapp.com/send?phone=+51XXXXXXXXX&text=${Uri.encode(message.toString())}"  // Reemplaza +51XXXXXXXXX con el número de WhatsApp
        intent.data = Uri.parse(url)
        try {
            startActivity(intent)
        } catch (e: Exception) {
            Toast.makeText(this, "WhatsApp no está instalado", Toast.LENGTH_SHORT).show()
        }
    }

 

Detalles:

  1. Generación del mensaje: Recorremos el cursor que contiene los productos del carrito y formateamos el mensaje para WhatsApp.
  2. Abrir WhatsApp: Usamos un Intent.ACTION_VIEW con el formato de URL https://api.whatsapp.com/send?phone=+51XXXXXXXXX&text=mensaje para abrir WhatsApp con el mensaje predefinido. No olvides reemplazar el número de teléfono por el de destino.

508 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ú