Automatizando un catering (3/n)

Después de varios meses haciendo paellas, ampliamos la cocina y abrimos el negocio a nuevas oportunidades. En especial, pusimos el foco en la venta de menús diarios.

Esto implicaba muchas cosas:

  • Manejar la compra de muchos ingredientes. Con las 🥘 solo teníamos 8-10 ingredientes que controlar, pero ahora tenemos más de 150 😅
  • Manejar la compra de material: bolsas, tuppers, cubiertos, film...
  • Gestionar los pedidos de la gente
  • Mucha más facturación
  • Planificación de rutas de reparto diarias, en base a quién ha pedido
  • Nuevas etiquetas para cada plato
  • Planificación del menú mensual

Viendo todo esto, me planteé mandarle un WhastApp a Elon y pedirle un par de robots 🤖 🥲

Este post y los siguientes tratarán de cómo estamos trabajando entre Sabor y Borah para automatizar todos estos pasos.

El post de hoy trata sobre el sistema de ingredientes y proveedores.

Añadí un nuevo resource a mi panel de Filament y añadí un apartado de Proveedores. Cada proveedor tiene un nombre, un email y un número de WhatsApp.

Después, creé un apartado de ingredientes, donde añadiremos cada ingrediente por separado y los asociaremos a sus respectivos proveedores:

Nada muy especial por aquí, solamente un par de CRUDs usando Filament. En nuestro caso, hay veces que compramos el mismo ingrediente en sitios diferentes porque los precios fluctúan o porque no tienen disponibilidad, así que cada ingrediente puede ser asociado con uno o varios proveedores:

Captura de pantalla de nuestra plataforma mostrando un ingrediente y sus proveedores

Ahora viene la parte guay: nuestro equipo de cocina nos suele mandar lo que necesita así:

Este Whatsapp me llega a mí, y yo tengo que ir a una serie de ficheros Excel que tenemos, buscar qué proveedores me dan cada ingrediente y escribirles por email o por WhatsApp a cada uno de ellos. Hay semanas que los pedidos son bastante grandes y me puedo pasar varias horas haciéndolo!

Ahora, con nuestra plataforma, solo tengo que pulsar en Hacer pedido en los ingredientes que quiero comprar

Una vez he hecho eso, se añade todo a un carrito y, tras confirmar el pedido, el sistema mandará un WhatsApp o un email a cada proveedor con su respectivo pedido!

Si el proveedor contesta, ya uno de nosotros sigue la conversación desde el email o desde el móvil. Aún estamos metiendo todos los proveedores de todos los ingredientes, pero una vez esto esté listo nos va a ahorrar 2-3 horas a la semana para hacer los pedidos 🌟

Para poder contactar por WhatsApp, nos dimos de alta con una cuenta Business y nos hemos conectado a través de la API de Twilio. Es tan sencillo como esto:

<?php

namespace App\Actions\Whatsapp;

use Twilio\Rest\Client;

class SendWhatsappToNumber
{
    public function handle(string $to, string $contentSid, array $variables = [])
    {
        $client = new Client(config('services.twilio.sid'), config('services.twilio.auth_token'));

        $client->messages->create(
            'whatsapp:'.$to,
            [
                'contentSid' => $contentSid,
                'from' => 'whatsapp:'.config('services.twilio.phone_number'),
                'contentVariables' => json_encode($variables),
            ],
        );
    }
}

Cuando mandas un Whatsapp a través de Twilio, tiene que ser a través de una plantilla que la gente de Meta tiene que aprobarte. La nuestra es algo así:

¡Hola! Queríamos hacer un pedido para Sabor en la Oficina:
{{1}}

Ese {{1}} es una variable, y es lo que mando en contentVariables:

Cuando hemos lanzado el pedido, se nos añade en una pestaña de "Pedidos" en el panel, en la que podremos marcar cuando es recibido y, sobre todo, cuándo fue pagado:

Esta feature de nuestra plataforma es muy potente y nos ahorrará mucho tiempo y dolores de cabeza muy pronto!

La próxima semana veremos cómo, partiendo de los ingredientes, creamos nuestro sistema de platos y menús para generar los menús de forma sencilla 🧡