Características
Descripción detallada de las características de Los Santos Eats.
Ciclo de pedidos
Los pedidos siguen una máquina de estados:
PLACED → PREPARING → READY → COURIER_SEARCH → ACCEPTED → PICKED_UP → EN_ROUTE → DELIVERED
- La cancelación está disponible desde cualquier estado no terminal.
- Si no se encuentra mensajero dentro de
CourierSearchTimeout, el pedido se cancela automáticamente y se reembolsa. - Si un mensajero abandona el pedido, vuelve a
COURIER_SEARCH.
Gestión de tiendas
Registro de tiendas
Las tiendas se definen en Config.Stores y se persisten en eats_stores.metadata. Los cambios en tiempo de ejecución (tarifa de entrega, estado habilitado) se guardan a través de la app del teléfono.
Gestión de menús
- El menú semilla define productos y precios iniciales.
- Los gerentes pueden editar precios dentro del 75%-125% del precio semilla.
menuCatalogdefine productos aprobados para agregar al menú.- Máximo de ítems y porcentaje de cambio de precio configurables por tienda.
Estados de tienda
- Abierto/Cerrado — Alternar a través de la app del teléfono.
- Auto-ready — Los pedidos saltan al estado
READY.
Entrega por mensajero
Aceptar pedidos
- Los mensajeros ven pedidos disponibles en la app del teléfono.
- Deben tener el rol de trabajo configurado (
Config.CourierJobs). - Limitado a
MaxConcurrentDeliveriesa la vez.
Recogida y entrega
- El mensajero viaja a la ubicación de la tienda.
- Recoge el pedido dentro de
PickupDistance. - Viaja a la ubicación del cliente.
- Entrega dentro de
DropoffDistance.
Modos de entrega
- Directo — La comida se agrega automáticamente al inventario del cliente en la entrega.
- Mensajero — El mensajero recibe la comida en la recogida, la entrega manualmente (modo RP).
Auto-entrega de venue
Cuando está habilitado, el personal del venue puede entregar sus propios pedidos si ningún mensajero los acepta.
Sistema de pago
Métodos de pago
- Efectivo — Deducido del efectivo del jugador.
- Banco — Deducido de la cuenta bancaria del jugador.
- Tarjeta — Por cargo a tarjeta tgg-banking.
- Sociedad — Deducido de la cuenta de sociedad (se requiere grado mínimo).
Pagos de sociedad
Los ingresos van a la cuenta de sociedad de la tienda. Soporta:
- Renewed-Banking
- tgg-banking
- qb-banking / qb-management
- okokBanking
- codem-bank
Reembolsos
- Reembolso automático al cancelar pedido.
- El método de reembolso coincide con el método de pago.
- Los pedidos contra reembolso se reembolsan vía
Payouts.pay.
Promociones
Los gerentes de tienda pueden crear promociones:
- Descuento porcentual — Hasta
MaxPromoPercent(predeterminado: 30%). - Descuento fijo — Hasta
MaxPromoFlat(predeterminado: $500). - Las promociones se aplican al total del pedido antes de la tarifa de entrega.
Características de clientes
Favoritos
- Guardar tiendas preferidas para acceso rápido.
- Almacenado por jugador en la base de datos.
Direcciones
- Guardar direcciones de entrega.
- Ubicaciones nombradas para fácil selección.
Reseñas
- Calificar tiendas después de la entrega.
- Almacenado en la base de datos.
Apps de teléfono
npwd
- Integración de API de app externa.
- UI basada en React con soporte de hot-reload.
lb-phone
- Integración de app personalizada.
- UI basada en Vue.js.
qb-phone
- Integración de UI basada en iframe.
- Parchea qb-phone para alojar la app.
Onboarding de comerciantes
El personal puede crear nuevas tiendas a través de la app del teléfono:
- El personal accede al onboarding.
- Ingresa los detalles de la tienda (nombre, ubicación, menú).
- La tienda se crea con configuración predeterminada.
- Luego el gerente puede personalizar a través de la app.
Requiere Config.MerchantOnboarding.Enabled = true.
Contra reembolso (COD)
Cuando está habilitado:
- El cliente selecciona pago contra reembolso.
- El mensajero cobra efectivo en la entrega.
- El mensajero deposita efectivo en la cuenta de sociedad.
Validado del lado del servidor para prevenir exploits.
Seguridad
- Todos los precios validados del lado del servidor.
- Los ítems verificados contra el inventario.
- Los permisos verificados en cada acción.
- Rate limiting en búsqueda de mensajero y aceptación de venue.
- Límites de precio máximo de ítems y tamaño de menú.