Carrito de compras


Historia

Necesitamos modelar un carrito de compras para una tienda de barrio. El carrito debe llevar un registro de la lista de artículos agregados y calcular el precio correctamente.

Los artículos se agregan al carrito usando códigos de unidad de mantenimiento de existencias (SKU). Los artículos de la tienda son:

Nombre Precio SKU
Papas 10.00 STAPOT
Arroz 30.00 STARIC
Café 14.99 STACOF
Periódico 2.99 MEDNEW

Tareas

El carrito de compras debe permitir realizar estas operaciones:

  • Agregar artículos al carrito: Lee un SKU y lo agrega al carrito.
  • Consultar el monto total: El valor total de los artículos del carrito como un número con dos decimales (p. ej., 3.99).
  • Consultar los artículos que contiene el carrito: Una lista con los nombres de los artículos del carrito, ordenados alfabéticamente, sin duplicados y separados por una coma y un espacio.

Terminología

  • Artículo: Elemento que se puede agregar al carrito de compras.
  • SKU: El SKU es un identificador compuesto por las tres primeras letras mayúsculas del tipo de producto + las tres primeras letras mayúsculas del nombre del producto.
  • Precio: El valor del artículo como un número con dos decimales.

Implementaciones

Versión alternativa

Una versión alternativa o extensión de la historia usa cupones de descuento que se pueden agregar al carrito de compras.

Historia

Para mantener contentos a los clientes, la tienda de barrio agregó cupones de descuento. Esto significa que, para admitir estos descuentos, nuestro carrito de compras debe poder leer y aplicar cupones de descuento a los artículos actuales. Los cupones admitidos son:

Tipo SKU Regla
Descuento de precio fijo FIX_TEN Descuenta 10.00 del monto total del carrito
Descuento de producto HALF_STAPOT Reduce a la mitad el precio de todos los artículos STAPOT

Tareas

El carrito de compras debe tener una nueva operación scan coupon que recibe un SKU y lo agrega al carrito. Ten en cuenta que total_amount no debe ser un número negativo; el valor mínimo de total_amount es 0.

Terminología

  • Cupón: Descuento que se puede aplicar al carrito. Los cupones son únicos y solo se pueden aplicar una vez. Si el tipo de cupón es un descuento de precio fijo, la segunda parte del SKU es el monto del descuento en letras mayúsculas.

Implementaciones