UNPKG

skyhub

Version:
461 lines 15.3 kB
import { EventEmitter } from 'eventemitter3'; export declare namespace SkyHub { interface Parameters { /** User email for 'X-User-Email' header */ userEmail: string; /** Api Key or token for 'X-Api-Key' header */ apiKey: string; /** Account Manager Key for 'X-Accountmanager-Key' header */ accountManagerKey: string; } interface IResult<T> { success: boolean; response: T; httpStatus: number; statusText: string; elapsed: number; } interface IGetPedidos { total: number; orders: Array<Order>; } class Address { /** Exemplo: "Nome do comprador"*/ full_name: string; /** Exemplo: "Rua de teste"*/ street: string; /** Exemplo: 1234*/ number: number; /** Exemplo: "Ponto de referência teste"*/ detail: string; /** Exemplo: "Bairro teste"*/ neighborhood: string; /** Exemplo: "Cidade de teste"*/ city: string; /** Exemplo: "UF"*/ region: string; /** Exemplo: "BR"*/ country: string; /** Exemplo: "90000000"*/ postcode: string; } class OrderPayment { } class OrderItem { /** Exemplo: "teste002-azul"*/ id: string; /** Exemplo: "teste002"*/ product_id: string; /** Exemplo: "Produto de teste com variação"*/ name: string; /** Exemplo: 1*/ qty: number; /** Exemplo: 0.85*/ original_price: number; /** Exemplo: 0.85*/ special_price: number; } class Order { /** Exemplo: "Marketplace-000000002" */ code: string; /** Exemplo: "Marketplace" */ channel: string; /** Exemplo: "2015-01-01T10:10:00-03:00" */ placed_at: string; /** Exemplo: "2015-01-01T10:10:00-03:00" */ updated_at: string; /** Exemplo: 5.85 */ total_ordered: number; /** Exemplo: 0 */ interest: number; /** Exemplo: 5 */ shipping_cost: number; /** Exemplo: "Transportadora" */ shipping_method: string; /** Exemplo: "2015-01-10T10:10:10-03:00" */ estimated_delivery: string; /** Exemplo: null */ estimated_delivery_shift: object; /** Exemplo: { "full_name": "Nome do recebedor", "street": "Rua de teste", "number": 1234, "detail": "Ponto de referência teste", "neighborhood": "Bairro teste", "city": "Cidade de teste", "region": "UF", "country": "BR", "postcode": "90000000" } */ shipping_address: Address; /** Exemplo: { "full_name": "Nome do comprador", "street": "Rua de teste", "number": 1234, "detail": "Ponto de referência teste", "neighborhood": "Bairro teste", "city": "Cidade de teste", "region": "UF", "country": "BR", "postcode": "90000000" } */ billing_address: Address; /** Exemplo: { "name": "Nome do comprador", "email": "comprador@exemplo.com.br", "date_of_birth": null, "gender": "", "vat_number": 12312312309, "phones": ["8899999999"] } */ customer: Customer; /** Exemplo: [{ "id": "teste002-azul", "product_id": "teste002", "name": "Produto de teste com variação", "qty": 1, "original_price": 0.85, "special_price": 0.85 }] */ items: Array<OrderItem>; /** Exemplo: { "code": "payment_received", "label": "Pagamento aprovado", "type": "APPROVED" } */ status: OrderStatus; /** Exemplo: "NOT_SYNCED" ou "SYNCED" */ sync_status: string | 'SYNCED' | 'NOT_SYNCED'; /** Exemplo: [] */ invoices: Array<OrderInvoice>; /** Exemplo: [] */ shipments: Array<OrderShipment>; /** Exemplo: [] */ payments: Array<OrderPayment>; } /** Interface para definição de atributos como: Tamanho, Cor, Crossdocking, etc * Exemplo: { "key": "Tamanho", "value: "M" } * */ class Specification { /** Exemplo: Tamanho */ key: string; /** Exemplo: M */ value: string; } /** Interface para definição de categorias * Exemplo: { "code": "01", "name": "Blusa" } * Exemplo Sub-categoria: { "code": "02", "name": "Blusa > Manga Curta" } * */ class Category { /** Exemplo: "01" */ code: string; /** Exemplo: "skyhub homologação" */ name: string; } class SimpleProduct { /** Exemplo: "200" */ sku: string; /** Exemplo: "PRODUTO SIMPLES" */ name: string; /** Exemplo: "PRODUTO SIMPLES" */ description: string; /** Exemplo: "enable" */ status: string; /** Exemplo: 0 */ qty: number; /** Exemplo: 100 */ price: number; /** Exemplo: 89.99 */ promotional_price: number; /** Exemplo: 49 */ cost: number; /** Exemplo: 3 */ weight: number; /** Exemplo: 1 */ height: number; /** Exemplo: 1 */ width: number; /** Exemplo: 1 */ length: number; /** Exemplo: "SKYHUB" */ brand: string; /** Exemplo: "" */ ean: string; /** Exemplo: "" */ nbm: string; /** Exemplo: [{ "code": "01", "name": "skyhub homologação" }] */ categories: Array<Category>; /** Exemplo: [""] */ images: Array<string>; /** Exemplo: [{ "key": "Tamanho", "value": "M" }] */ specifications: Array<Specification>; } class Variation { /** Exemplo: "COD_SKU_VARIACAO" */ sku: string; /** Exemplo: 10 */ qty: number; /** Exemplo: "9876543210987" */ ean: string; /** Exemplo: ["http://d26lpennugtm8s.cloudfront.net/stores/154/284/products/camiseta-lisa-verde-bandeira-algodo-p-ao-gg-pronta-entrega-355901-mlb20431777049_092015-o-07fadec89e5ed54705c1b9ab5411dec8-1024-1024.jpg"] */ images: Array<string>; /** Exemplo: [{ "key": "Cor", "value": "Verde" }, { "key": "Tamanho", "value": "M" }] */ specifications: Array<Specification>; } class ProductWithVariation { /** Exemplo: "CODIGO_SKU" */ sku: string; /** Exemplo: "DESCRICAO PRODUTO" */ name: string; /** Exemplo: "CRIAR PRODUTO COM UMA VARIAÇÃO" */ description: string; /** Exemplo: "enabled" */ status: string; /** Exemplo: 30 */ price: number; /** Exemplo: 29.9 */ promotional_price: number; /** Exemplo: 0 */ cost: number; /** Exemplo: 0.1 */ weight: number; /** Exemplo: 20 */ height: number; /** Exemplo: 30 */ width: number; /** Exemplo: 20 */ length: number; /** Exemplo: "Marca" */ brand: string; /** Exemplo: "98769898" */ nbm: string; /** Exemplo: [{ "code": "01", "name": "SKYHUB HOMOLOGAÇÃO" }] */ categories: Array<Category>; /** Exemplo: ["http://d26lpennugtm8s.cloudfront.net/stores/154/284/products/camiseta-lisa-verde-bandeira-algodo-p-ao-gg-pronta-entrega-355901-mlb20431777049_092015-o-07fadec89e5ed54705c1b9ab5411dec8-1024-1024.jpg"] */ images: Array<string>; /** Exemplo: [{ "key": "Especicações do Produto PAI", "value": "Especificações do Produto PAI" }] */ specifications: Array<Specification>; /** Exemplo: [{ "sku": "COD_SKU_VARIACAO", "qty": 10, "ean": "9876543210987", "images": ["http://d26lpennugtm8s.cloudfront.net/stores/154/284/products/camiseta-lisa-verde-bandeira-algodo-p-ao-gg-pronta-entrega-355901-mlb20431777049_092015-o-07fadec89e5ed54705c1b9ab5411dec8-1024-1024.jpg"], "specifications": [{ "key": "Cor", "value": "Verde" }, { "key": "Tamanho", "value": "M" }] }] */ variations: Array<Variation>; /** Exemplo: ["Cor", "Tamanho"] */ variation_attributes: Array<string>; } class OrderShipment { /** Exemplo: "Submarino-1493069158776" */ code: string; /** Exemplo: [{ "sku": "1001", "qty": 1 }] */ items: Array<OrderShipmentItem>; /** Exemplo: { "code": "BR1321830198302DR", "carrier": "Correios", "method": "SEDEX", "url": "www.correios.com.br" } */ track: OrderShipmentTrack; } class OrderShipmentItem { /** Exemplo: "1001" */ sku: string; /** Exemplo: 1 */ qty: number; } class OrderShipmentTrack { /** Exemplo: "BR1321830198302DR" */ code: string; /** Exemplo: "Correios" */ carrier: string; /** Exemplo: "SEDEX" */ method: string; /** Exemplo: "www.correios.com.br" */ url: string; } class OrderStatus { /** Exemplo: "payment_received"*/ code: string; /** Exemplo: "Pagamento aprovado"*/ label: string; /** Exemplo: "APPROVED"*/ type: string; } class OrderInvoice { /** Exemplo: "99999999999999999999999999999999999999999999" */ key: string; } class Customer { /** Exemplo: "Nome do comprador" */ name: string; /** Exemplo: "comprador@exemplo.com.br" */ email: string; /** Exemplo: null */ date_of_birth: string; /** Exemplo: "" */ gender: string; /** Exemplo: 12312312309 */ vat_number: number; /** Exemplo: ["8899999999"] */ phones: Array<string>; } interface Headers { 'X-User-Email': string; 'X-Api-Key': string; 'X-Accountmanager-Key': string; 'Accept': 'application/json;charset=UTF-8'; 'Content-Type': 'application/json'; } interface IClient { on(event: 'status-429', listener: Function): any; } class Client extends EventEmitter implements IClient { private headers; private client; private lastResponse; private post; private get; /** * * @param {string} api * @param {any} data * @returns {{ success: boolean, response: any, httpStatus: number, statusText: string, elapsed: number }} */ private put; /** * * @param {string} api * @param {any} data * @returns {{ success: boolean, response: any, httpStatus: number, statusText: string, elapsed: number }} */ private delete; constructor(parameters: SkyHub.Parameters); /** * Max Products Returned Per Page: 100 * @param page (min: 1) * @param per_page (max: 100) */ getProdutos(page?: number, per_page?: number): Promise<IResult<any>>; /** * Lista os produtos cadastrados agrupados por página (conforme parametro 'per_page', suportado no máx 100) * NOTA: Não será possível listar mais que 10.000 (dez mil) itens */ getProduto(codigo_sku: string): Promise<any>; /** * Cadastra um novo Produto */ postProduto(product: SkyHub.SimpleProduct | SkyHub.ProductWithVariation): Promise<any>; /** * Atualiza Cadastro do Produto * Nota: Atualiza apenas campos informados no parametro produto * @param {Produto} produto Campos informados serão atualizados, campos não informados serão mantidos os valores atuais * @returns {SkyHub.IResult<SkyHub.PutProduto>} */ putProduto(sku: string, produto: SkyHub.SimpleProduct | SkyHub.ProductWithVariation): Promise<any>; /** * Remove um Produto */ deleteProduto(sku: string): Promise<any>; /** Retorna 1 Pedido da fila * */ getPedidoNaFila(): Promise<any>; /** Retorna lista de pedidos */ getPedidos(): Promise<any>; /** * Retorna 1 único pedido */ getPedido(id_pedido: string): Promise<any>; /** * Confirma o Processamento (gravação no ERP) do pedido, removendo-o da fila de pedidos do SkyHub */ confirmarProcessamentoPedido(id_pedido_skyhub: string): Promise<any>; /** * Altera Status do Pedido para 'Aprovado' no SkyHub * NOTA: ESTA CHAMADA NÃO ESTÁ DISPONÍVEL EM PRODUÇÃO! * @param {string} id_pedido_skyhub * @returns {Promise<SkyHub.IResult<SkyHub.ISetPedidoAprovado>>} */ setPedidoAprovado(id_pedido_skyhub: string): Promise<any>; /** * Altera Status do Pedido para 'Faturado' no SkyHub, vinculando a chave de acesso * @param {string} id_pedido_skyhub * @param {string} chaveAcesso * @returns {Promise<SkyHub.IResult<SkyHub.ISetPedidoFaturado>>} */ setPedidoFaturado(id_pedido_skyhub: string, chaveAcesso: string): Promise<any>; /** * Altera Status do Pedido para 'Não Entregue' no SkyHub */ setPedidoNaoEntregue(id_pedido_skyhub: string, obs: string): Promise<any>; /** * Altera Status do Pedido para 'Entregue a Transportadora' no SkyHub, vinculando dados da Transportadora */ setPedidoEntregueTransportadora(id_pedido_skyhub: string, shipment: SkyHub.OrderShipment): Promise<any>; /** * Altera Status do Pedido para 'Entregue ao Cliente' no SkyHub */ setPedidoEntregueCliente(id_pedido_skyhub: string): Promise<any>; /** * Altera Status do Pedido para 'Cancelado' no SkyHub * @param id_pedido_skyhub */ setPedidoCancelado(id_pedido_skyhub: string): Promise<any>; /** * Cria um novo pedido no SkyHub * IMPORTANTE: Esta chamada funciona em homologação * @param {SkyHub.NewOrder} order * @returns {Promise<SkyHub.IResult<SkyHub.INovoPedidoTeste>>} */ novoPedidoTeste(order: any): Promise<any>; } } declare const _default: typeof SkyHub.Client; export default _default; //# sourceMappingURL=skyhub.d.ts.map