suiteecommerce v1.4.0
Suite Ecommerce (Frontend)
Paquete de npm para uso en proyectos privados de Existaya. El mismo pretende estandarizar la programción asociada a proyetos de e-commerce facilitando módulos/librerías en javascript para su uso en diversos frameworks.
Versionamiento
Este paquete, al ser npm, utiliza un sistema de versión semántica (más información en About Semantic Versioning).
| Estado del código | Contexto | Reglas | Ejemplo |
|---|---|---|---|
| Primer lanzamiento | Nuevo producto | Comienza con 1.0.0 | 1.0.0 |
| Solución de errores (bugs) con Rétrocompatibilidad | Parche | Se suma uno (1) al tercer dígito | 1.0.1 |
| Nuevos aditamentos con Rétrocompatibilidad | Lanzamiento menor | Se suma uno (1) al segundo dígito | 1.1.0 |
| Cambios no Rétrocompatibles | Lanzamiento mayor | Se suma uno (1) al primer dígito | 2.0.0 |
Relación entre versión del paquete y versión de Suite Ecommerce (Backend)
Por cada versión del Suite Ecommerce (Backend) se pueden utilizar las siguientes versiones:
| Versión Backend | Versiones Frontend |
|---|---|
| 1.0.0 | 1x |
Mantenimiento del paquete
Descripción: Suite Ecommerce es un proyecto Javascript/NPM que usa TypeScript (más información relacionada en página oficial de TypeScript) como compilador de Javascript.
Estructura
| Fichero | Descripción | Observaciones |
|---|---|---|
| package.json | Json usado para configurar el paquete NPM. Se configuran las dependencias entre otras cosas. | Importante en este fichero en el poder actualizar la versión del paquete con base en las reglas de versionamiento semántico. |
| tsconfig.json | Json usado para configurar TypeScript y su proceso de compilación. | |
| src/main.ts | Fichero TypeScript principal donde comunmente se exportarán los módulos que se requeiran sean públicos para su uso en los proyectos donde se instale el paquete. | También sirve para exponer pruebas corriendo el comando npm run tsandplay |
| src/lib/ | Directorio donde vivirán los ficheros con sus respectivos módulos a exportar. |
Configuraciones más notables en tscongif.json
| Propiedad | Descripción | Valor |
|---|---|---|
Dependencias del paquete
| Dependencia | Descripción |
|---|---|
| typscript | Más información en typesscript - npm |
| @types/node | Más información en @types/node - npm |
| axios | Más información en axios - npm |
| axios-observable | Más información en axios-observable - npm |
| rxjs | Más información en rxjs - npm |
Comandos disponibles en ./package.json
| Comando | Descripción | Observaciones |
|---|---|---|
npm run tscInit | Inicia TypeScript en el proyecto | |
npm run tsc | Corre el proceso de compilación de TypeScript | Este compando sólo compila mas no corre el proyecto. |
npm run tscAndPlay | Corre el proceso de compilación de TypeScript y luego corre el proyecto para validar inputs/outputs | Compila y corre el código en el paquete |
npm login | Inicia una sesión remota con el sistema de NPM para publicación del proyecto | Credenciales???? |
npm publish | Publica el paquete en NPM conbase en la versión configurada en el fichero package.json | Cada cambio requiere un cambio de versión para su publicación y actualización en NPM |
Publicación/Actualización del paquete Pasos para la publicación del paquete y actualización del mismo en NPM:
- Correr el comando
npm loginy seguir los pasos indicados durante el proceso. Este comando es sólo necesario la primera vez que se publique el paquete. - Editar la versión del paquete en el fichero
./package.jsonsiguiendo las indicaciones del sitema versionamiento semántico. - Correr el comando
npm publishy esperar el resultado.
Instalación del paquete en proyectos
Instalación
npm i suiteecommerce --saveActualización
npm update --saveUso del paquete en proyectos
Configuración/Uso para Angular, Ionic-Angular y proyectos TypeScript
En el fichero src/app/app.module.ts importar la siguiente dependencia:
import { Config } from 'suiteecommerce/dist/main';
// Configurar las propiedades necesarias.
Config.urlBase = 'my web service url';Para usarlo en un componente de Angular o Ionic-Angular se debe importar el módulo deseado. Por ejemplo:
import { Productos, ...otros módulos... } from 'suiteecommerce/dist/main';
...
ngOnInit() {
Productos.listar().then((res: any) => {}).catch((error: any) => {});
}Configuración/Uso para jQuery
En el ./index.html del proyecto se debe incluir en el header el siguiente script:
<script src="./node_modules/suiteecommerce/dist/main.map.js"></script>Para usarlo se debe llamar directamente al módulo deseado y su respectivo método. Por ejemplo:
$(document).ready(() => {
// Configurar las propiedades necesarias.
Config.urlBase = 'my web service url';
Productos.listar().then((res: any) => {}).catch((error: any) => {});
});Configuración/Uso para en Nodejs (backend side) Requerir el paquete de configuración:
var SuiteEcommerceConfig = require('suiteecommerce').Config;
// Configurar las propiedades necesarias.
SuiteEcommerceConfig.urlBase = 'my web service url';Requerir los modulos necesarios. Por ejemplo:
var SuiteEcommerceProductos = require('suiteecommerce').Productos;
SuiteEcommerceProductos.listar().then((res: any) => {}).catch((error: any) => {});API
Listado descriptivo de los módulos/objetos (propiedades/métodos) que se manejan en el paquete para uso en los proyectos.
Configuración
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Config | Módulo con el cual se puede configurar el comportamiento de otros módulos. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Propiedad | string | urlBase | Url del servicio web a consumir. |
Usuarios
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Usuarios | Módulo que se encarga de todo lo relacionado al manejo de usuarios. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Clase | IUsuario | Usuarios | ??? |
Productos
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Productos | Módulo que se encarga de todo lo relacionado al manejo de productos. Por ejemplo, listar productos, filtrar productos, comparar productos, editar objeto de producto, etc. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Clase | IProductos | Productos | ??? |
Carro de compra
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Carro | Módulo que se encarga de todo lo relacionado al manejo del carro de compra. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Clase | ICarro | Carro | ??? |
Direcciones
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Direcciones | Módulo que se encarga de todo lo relacionado al manejo de direcciones. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Clase | IDireccion | Direcciones | ??? |
Métodos de pago
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | MétodosDePago | Módulo que se encarga de todo lo relacionado al manejo de métodos de pago. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Clase | IMetodosDePago | MetodosDePago | ??? |
Interfaces
| Tipo | Nombre | Descripción |
|---|---|---|
| Módulo | Interfaces | Módulo que se encarga de todo lo relacionado al manejo de métodos de pago. |
Objetos/Métodos/Propiedades
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Interfaz | IUsuario | IUsuario | Establece las propiedades/métodos para manejo de Usuarios |
| Interfaz | IProducto | IProducto | Establece las propiedades/métodos para manejo de Productos |
| Interfaz | ICarro | ICarro | Establece las propiedades/métodos para manejo del Carro de compra. |
| Interfaz | IDirecciones | IDireccion | Establece las propiedades/métodos para manejo de Direcciones. |
| Interfaz | IMetodosDePago | IMetodosDePago | Establece las propiedades/métodos para manejo de Métodos de Pago. |
IUsuario
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Propiedad | string | nombre | El nombre del usuario. |
| Método | IUsuario | login | Método para inicio de sesión. |
| ??? | ??? | ??? | ? |
IProducto
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Propiedad | string | id | |
| Propiedad | string | name | |
| Propiedad | number | price | |
| Propiedad | number | dcto_ambiental | |
| Propiedad | number | price_dcto | |
| Propiedad | number | dcto_porcentaje | |
| Propiedad | IProducto_Type | type | |
| Propiedad | string | slug | |
| Propiedad | string | nombre_front | |
| Propiedad | number | garantia_meses | |
| Propiedad | number | garantia_meses_publico | |
| Propiedad | IProducto_Imagenes | imagenes | , |
| Propiedad | string | imagen | |
| Propiedad | string | publicado | |
| Propiedad | string | descatalogado | |
| Propiedad | string | deleted | |
| Propiedad | number | rc_prom_calificacion | |
| Propiedad | number | rc_cant_calificacion | |
| Propiedad | string | stock | |
| Propiedad | string | eb_preventa | |
| Propiedad | string | lib_preventa | |
| Propiedad | string | plu_sku_erp_code | |
| Propiedad | string | categoria_producto_id | |
| Propiedad | string | categoria_producto | |
| Propiedad | true | disponible_venta_web | , |
| Propiedad | [] | promociones | |
| Propiedad | number | dcto_valor | |
| Propiedad | string | descripcion | |
| Propiedad | string | lib_eb_isbn | |
| Propiedad | IProducto_LibFormato | lib_formato | |
| Propiedad | IProducto_LibPresentacion | lib_presentacion | |
| Propiedad | string | marca_producto_id | |
| Propiedad | string | marca_producto | |
| Propiedad | IAutor[] | autores | |
| Propiedad | string | meta_title | |
| Propiedad | string | meta_keywords | |
| Propiedad | string | meta_description | |
| Propiedad | string | dim_x_centimetros | |
| Propiedad | string | dim_y_centimetros | |
| Propiedad | string | dim_z_centimetros | |
| Propiedad | string | peso_gramos | |
| Propiedad | string | descripcion_corta | |
| Propiedad | string | descripcion_2 | |
| Propiedad | string | ficha_tecnica_imagen | |
| Propiedad | [] | galeria | |
| Propiedad | string[] | slugs | |
| Propiedad | string | url | |
| Propiedad | [] | categorias_secundarias | |
| Propiedad | IProducto_LibEbLenguaje | lib_eb_lenguaje | |
| Propiedad | IProducto_LibEbEdicionNub | lib_eb_edicion_num | |
| Propiedad | string | lib_eb_edicion_fecha | |
| Propiedad | string | lib_eb_indice | |
| Propiedad | string | lib_eb_prologo | |
| Propiedad | string | lib_eb_publicacion_fecha | |
| Propiedad | string | lib_eb_traducido_por_id | |
| Propiedad | string | lib_eb_traducido_por | |
| Propiedad | string | lib_num_pagina | |
| Propiedad | string | eb_proteccion_digital | |
| Propiedad | string | eb_tipo | |
| Propiedad | string | eb_fecha_fin_preventa | |
| Propiedad | string | lib_fecha_fin_preventa |
IDireccion
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Propiedad | string | nombre | El nombre de la dirección. |
| ??? | ??? | ??? | ? |
IMetodosDePago
| Tipo | Tipo de campo | Nombre | Descripción |
|---|---|---|---|
| Propiedad | string | nombre | El nombre del método de pago. |
| ??? | ??? | ??? | ? |