Punto de venta en PHP, MySQL y Vue

Anteriormente te presenté un sistema de ventas realizado en PHP, MySQL y Bootstrap que puedes ver aquí. En este caso usé lo mismo para el BackEnd, solo modificando algunas cosas en el consumo de la API. Pero para el FrontEnd he empleado Vue y Buefy, he tratado de hacerlo con componentes para poder reutilizarlos lo más posible. Además de que tiene nuevas características que veremos en este post. También puedes ver un vídeo en donde explico esto aquí por si no quieres leer esto.

Cosas que te permite realizar el punto de venta

Para empezar te menciono que con este punto de venta puedes:

  • Administrar los datos del local.
  • Registrar clientes.
  • Registrar usuarios.
  • Registrar marcas y categorías de los productos.
  • Registrar productos.
  • Establecer productos para venderlos por mayoreo.
  • Vender productos.
  • Apartar productos.
  • Agregar a cuenta productos.
  • Imprimir cotizaciones.

Ahora te mencionaré de qué va cada apartado del sistema.

Administrar datos del local

En este apartado es similar al de los sistemas que te presenté anteriormente. Esto sirve para establecer la información que deseas que se muestre en el comprobante de compra.

Registrar clientes

En este sistema los clientes sí son necesarios, ya que a ellos se les registran las cuentas o los apartados que realicen. Solo se coloca el nombre y el número de teléfono (Si tú lo deseas puedes agregar más datos o los que consideres necesarios).

Registrar usuarios

Los usuarios son quienes tienen acceso al sistema. Es decir, ellos inician sesión, realizan ventas y todo lo demás. En los sistemas anteriores cuando registrabas a un usuario y este iniciaba sesión se debe de cambiar la contraseña, en este caso no es así.

Pero cuando se registra a un usuario nuevo la contraseña por defecto es PacoHunterDev. Después el usuario puede cambiar su contraseña en el apartado de perfil.

Registrar marcas y categorías de los producto

En este apartado, puedes registrar las marcas y categorías a la que pertenecen los productos que registres. Es un CRUD, y estás no son necesarias elegirlas cuando registras un producto nuevo, simplemente es para llevar un control de qué marcas o categorías se tienen más ventas.

Registrar productos

El inventario es la parte más importante, pues en el se registran los productos que se tienen. Además ayuda a ver la existencia de los productos y ver cuáles se deben de resurtir y esas cosas.

Para registrar el producto se piden los siguientes datos:

  • Código de barras *
  • Nombre del producto *
  • Precio de compra * (¿Cuánto cuesta?)
  • Precio de venta * (¿En cuánto lo das?)
  • Existencia *

Si deseas vender a mayoreo se marca el switch ¿Vendido al mayoreo?. En este caso se coloca a partir de cuántas unidades se aplica el mayoreo y el precio para el mayoreo.

La categoría y la marca pueden seleccionarse o no.

Ver inventario

En la página del inventario puedes ver un pequeño resumen de los totales del inventario. Dentro de la tablas, además de los datos de los productos se puede, editar, eliminar, agregar unidades o quitar unidades. Para agregar los productos se pulsa el botón que dice Agregar producto.

Agregar productos a la lista de venta

Antes de realizar una venta, apartado, agregar a cuenta o imprimir la cotización es necesario agregar los productos a la lista. Para esto en el input de la búsqueda se escribe el código de barras o el nombre del producto (En esencia, si se emplea un lector de código de barras el producto se agregará, no lo he probado con lector, so lo pruebas y sirve me avisas por favor). Se muestra una lista autocompletable en la que puedes seleccionar con el mouse o con las flechas de dirección del teclado el producto que deseas agregar.

Dentro de la lista puedes modificar la cantidad de productos que se venden o quitarlos de la lista.

Vender productos a mayoreo

Para este caso, si se desea vender productos por mayoreo, primero debes colocar a vender, si esta cantidad es mayor o igual a la cantidad establecida cuando el producto es registrado, se preguntará si se desea aplicar el mayoreo. Si se elige que sí, entonces se colocará el precio puesto en venta a mayoreo, de lo contrario se colocará el precio normal.

Realizar venta

Hay cuatro acciones que se pueden realizar al terminar de agregar los productos que se venderán. La primera es realizar una venta. En este caso el total es recibido y registrado además de que el cliente se lleva los productos y estos son descontados del inventario. El nombre del cliente puede o no colocarse, si no se colocar se marcará como MOSTRADOR.

Agregar a cuenta

La siguiente acción es agregar a cuenta. En este caso los productos son descontados del inventario pero no se recibe el total de la venta, simplemente se recibe un pago inicial. Para estás sí es necesario colocar el nombre del cliente para saber quién se está llevando los productos.

Agregar apartado

En este caso, como su nombre lo índica, los productos se apartan, es decir, no salen del inventario. Saldrán hasta que el apartado se ha liquidado. Para este caso también ese necesario colocar el nombre del cliente y si se desea el pago inicial que está dejando.

Imprimir cotización

Aquí nada más se registra la cotización, no se registra ningún ingreso o se descuentan productos del inventario. Se coloca el nombre del cliente que realiza la cotización para saber a quién está dirigida.

Reportes

El primer reporte es el de ventas, en este se presentan las ventas que se han realizado. Se puede filtrar por periodo de tiempo. Además de eso es posible reimprimir el comprobante de compra de cualquier compra.

El segundo reporte es el de cuentas, en este aparecen las cuentas que se han registrado. Se muestran todas pero si lo deseas puedes mostrar solo las que se deseen en cierto periodo de tiempo. En ellas el estado de PENDIENTE indica que aún no se ha acabado de pagar y LIQUIDADO indica que ya se ha pagado. En cada una de ellas se puede realizar un abono o liquidar directamente además de imprimir el comprobante de compra.

El tercer reporte es el de apartados, este es básicamente lo mismo que el anterior, tiene las mismas opciones. Solo que en este al liquidar el apartado los productos se descontarán del inventario, ya que son entregados al cliente.

El último reporte es el de cotizaciones, para este solo se puede eliminar o imprimir el comprobante.

Perfil

Aquí aparece información sobre los ingresos registrados del usuario que tiene la sesión activa. Se muestra una gráfica que indica los totales de ingresos de cada mes del usuario.

Descargar y usar

El código del sistema lo encuentras en GitHub. El proceso de instalación es el mismo que en el sistema de restaurantes y el de gimnasios.

Recuerda que debes tener instalado MySQL y php si deseas emplearlo así tal cual te lo presento. Si es así solo basta con copiar las carpetas de dist y api en donde sirvas tus archivos.

El siguiente pasó sería crear la base de datos, en este caso se debe de llamar pos (si le pones otro nombre debes de cambiar las variables de conexión dentro del archivo de funciones.php).

Y ahora puedes importar la base de datos que se llama pos.sql y con esto ya puedes acceder a localhost/pos/dist. Los datos para iinciar sesión que trae la base de datos son:

  • usuario: paco_hunter_dev
  • contraseña: Paco1234

Ahora que si lo que deseas es agregar o modificar cosas es necesario tener Node.js para instalar las dependencias. Para instalarlas navegas hacia donde tengas el proyecto y ejecutas npm install y cuando haya terminado de instalarlas npm run serve.