➜ 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:
- Recopila la información del carrito: Genera un resumen del pedido, incluyendo los nombres de los productos, las cantidades y el total.
- Crea un mensaje de texto con esta información.
- Lanza un intent de WhatsApp para enviar el mensaje.
Ejemplo:
- 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:
- Generación del mensaje: Recorremos el cursor que contiene los productos del carrito y formateamos el mensaje para WhatsApp.
- Abrir WhatsApp: Usamos un
Intent.ACTION_VIEW
con el formato de URLhttps://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