suiteecommerce
v1.4.0
Published
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.
Downloads
159
Readme
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. |
| ??? | ??? | ???
| ? |