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 login
y 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.json
siguiendo las indicaciones del sitema versionamiento semántico. - Correr el comando
npm publish
y esperar el resultado.
Instalación del paquete en proyectos
Instalación
npm i suiteecommerce --save
Actualización
npm update --save
Uso 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. |
??? | ??? | ??? | ? |