Automatizando un catering (3/n)
Cómo hemos automatizado los pedidos a proveedores para comprar ingredientes en nuestro catering.
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:
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 🧡