Tu tienda online
Pency es una tienda online multipropósito, pensada para quienes venden (o quieren vender) via WhatsApp.
- Catálogo online
- Panel de administración para cargar productos
- Carrito de compra
- Imagen, precio y descripción para cada producto
- Opciones para cada producto (pueden modificar el precio del producto)
- Envío del pedido via WhatsApp
- Configuración de la tienda (color, título, descripción, imagen, logo, etc)
Podés crear un issue
acá en GitHub
Entrá a los issues
acá en GitHub
Mandame un mail a gonzalo.pozzo4@gmail.com
Mandame un mail a gonzalo.pozzo4@gmail.com
Completá todas las variables que aparecen en .env.template
y guardalo como .env.development
Todas las variables de firebase las encontramos en la configuración del proyecto de firebase y otras de una cuenta de servicio que podés encontrar en firebase yendo a
Configuración > Usuarios y permisos > Cuentas de servicio
y generando una nueva clave privada. El único campo diferente esFIREBASE_PRIVATE_KEY
que antes de agregarlo al archivo.env.[ambiente]
lo tenés que pasar a Base64 (podés usar la funciónbtoa
integrada en los navegadores). Luego elnext.config.js
se encarga de decodificarlo. Copialo con los \n, los espacios, todo, exactamente igual que como está en el archivo .json.
Luego en consola ejecutá:
# Yarn
yarn
yarn start
# O si usas npm
npm install
npm start
Necesitás tener un .env.[ambiente] para cada ambiente en el que vas a correr la app.
Para esta aplicación vamos a necesitar dos cosas de Firebase, la primera va a ser configurar las reglas de firestore (las podés encontrar en el archivo firestore.rules
) y habilitar en firebase el inicio de sesión con usuario y contraseña (lo haces en Firebase desde Auth > Sign in methods
).
También vamos a necesitar una cuenta en Cloudinary para alojar las imágenes de la tienda. De allí vamos a necesitar el Cloudinary Cloud name para la variable CLOUDINARY_CLOUD
del environment. Además vamos a tener que ir a Settings > Upload
donde podemos configurar los presets. En principio podemos usar el default para las variables CLOUDINARY_PRESET_LOW
y CLOUDINARY_PRESET_HIGH
, pero tenemos que asegurarnos de setear el Signing Mode en Unsigned.
Una vez que tengamos nuestro .env.[ambiente]
listo, vamos a la consola, nos paramos en la carpeta de nuestro proyecto y ejecutamos:
# yarn
yarn && yarn dev
# o si usas npm
npm install && npm run dev
- Bajamos y abrimos Postman.
- Comprobamos que la aplicación este corriendo en http://localhost:3000/.
- Seleccionamos POST Request y colocamos como URL:
http://localhost:3000/api/tenant?slug=NOMBRE_DE_TU_TIENDA
(si bien podémos poner lo que queramos en slug recomiendo que sean solo letras minúsculas y guiones) - En
body
seleccionamosx-www-form-urlencoded
y colocamos los siguientes valores:
| KEY | VALUE |
|:------:|:------------------------------------------------:|
|email | tuEmail@email.com |
|password| tuContraseña |
|secret | valor de SECRET en .env.[ambiente] |
- Hacemos click en
Send
y comprobamos si se creó la tienda entrando en:http://localhost:3000/NOMBRE_DE_TU_TIENDA
- Para acceder al panel de administración debemos entrar mediante el siguiente link:
http://localhost:3000/NOMBRE_DE_TU_TIENDA/admin
Tomá en cuenta que ya que usamos el uid del usuario como id del documento, no podémos tener mas de un usuario por tienda ni tampoco mas de una tienda por usuario.
Podés leer la licencia acá. En resumen, podés usar Pency para lo que quieras mientras no lucres con eso y menciones la fuente original cuando lo uses 🥰.