Pagina inicial » Serviço & Suporte » Serviços Open API
Convenção de Interface Comum
1. Endereço da interface da API: http://www.sunsky-api.com Amostra URL da API: http://www.sunsky-api.com/openapi/category!getChildren.do
2. Parâmetros Comuns:
key: Identificador exclusivo do seu programa para acessar a interface do SUNSKY serviço de dados da API. signature: A assinatura pelos parâmetros, é gerada com os valores dos parâmetros e o segredo que você obteve da Plataforma SUNSKY Open API .
Atenção: Os parâmetros devem ser classificados pelo nome antes da geração da assinatura.
3. Formato de Resultado O data de retorno é formato em JSON. (a) Exemplo de resultado bem-sucedido: { result: "success", data: [{"id":1032,"code":"003","gmtCreated":"01/31/2013 00:00","name":"N Style Phone","parentId":408,"status":1}] } (b) Exemplo de resultado com falha: { result: "error", messages: [ "The record you visiting does NOT exist." ] }
4. Controle de Freqüência de Chamada Para reduzir a pressão do servidor e controlar as solicitações simultâneas do usuário, a SUNSKY API limitará a frequência de chamada da interface invocada pelo usuário. Por favor, consulte isto para obter as informações de controle de freqüência: http://www.sunsky-api.com/admin/apiAccessControl!list.do
Atenção: Todos os parâmetros e valores de retorno são sensível a maiúsculas.
Interface 1: Obtenha categorias e categorias especificadas
(a) URL: /openapi/category!getChildren.do (b) Parâmetros: Se você não passar nenhum parâmetro, esta API retornará todas as categorias. Você pode especificar os parâmetros abaixo para filtrar as categorias que deseja buscar: * lang: Idioma da categoria de descrição, opcional, consulte o Apêndice D; * parentId: O parentId da categoria, que pode obter todas as subcategorias sob o ID da categoria atual, opcional;
* gmtModifiedStart: Para obter as categorias já alteradas desde 'gmtModifiedStart', o formato é MM/dd/yyyy HH:mm:ss(por exemplo. 10/31/2013 01:23:20), opcional;
(c) Resultado: Resumo: * Se você não passar o parâmetro parentId, então uma matriz de todas as categorias será retornada; * Se você especificar '0' pelo parentId, então uma matriz da top categorias será retornada; * Se você especificar outro número pelo parentId, então uma matriz das subcategorias diretas será retornada; * Se você especificar uma data pelo gmtModifiedStart, então uma matriz das categorias já foi alterada desde que 'gmtModifiedStart' é retornado;
Fields: * id: O ID exclusivo da categoria; * code: O code da categoria. Subcategorias desta categoria são classificadas por código; * name: O nome completo da categoria;
* shortName: O nome abreviado da categoria, pode estar vazio;
* hsCode: O HS Code pelos produtos na categoria pode estar vazio. Se o HS Code estiver vazio, verifique o HS Code da categoria do parent; * status: O status da categoria. Veja o Apêndice A; * parentId: O parentld da categoria; * gmtModified: Mude o tempo, o formato é MM/dd/yyyy HH:mm:ss (por exemplo. 10/31/2013 01:23:20);
Dica: Como obter a categoria alterada?
(1) Antes de chamar a getChildren API, carregue o tempo salvo anteriormente T0 de db/file;
(2) Chame a getChildren API com gmtModifiedStart=T0, ela retornará as categorias que já foram alteradas desde T0; (3) Atualize seu db local com os dados da categoria retornados pela getChildren API; (4) Atualize T0 pelo máximo gmtModified entre as catetories retornadas pela getChildren API, então salve T0 em db/file;
(5) Aumente o número da página e repita o passo 2~4 até que a getChildren API não retorne nenhum dado;
Interface 2: Obtenha lista dos produtos
(a) URL: /openapi/product!search.do (b) Parâmetros: * lang: Descreva o idioma do produto, opcional, consulte o Apêndice D;
* categoryId: O ID da categoria na qual você deseja buscar os produtos (incluindo suas subcategorias), opcional; * pageSize: O tamanho da matriz dos produtos retornados, a configuração padrão é 40, o máximo é 100; * page: O número da página, a configuração padrão é 1; * gmtModifiedStart: Para obter os produtos alterados desde 'gmtModifiedStart', o formato é MM/dd/yyyy HH:mm:ss (por exemplo. 10/31/2013 01:22:31), opcional;
* status: O status do produto, veja o Apêndice B, opcional;
* brandName: O nome da marca, por exemplo. iPartsBuy, Xiaomi, Huawei, Meizu, opcional;
(c) Resultado: Resumo: * Esta API retorna os produtos que correspondem às condições que você especificou. Fields: * total: O número total do produto corresponde às condições que você especificou. * pageCount: O número de páginas calculadas pelo total e pageSize.
* result: A lista de resultados de dados do produto, consulte a interface 'openapi/product!detail.do' para obter os detalhes.
Dica: Como obter o produto alterado?(1) Antes de chamar a API de pesquisa, carregue o tempo salvo anteriormente T0 de db/file;
(2) Chame a API de pesquisa com gmtModifiedStart=T0, ela retornará os produtos que foram alterados desde T0;
(3) Atualize seu db local com os dados do produto retornados pela API de pesquisa;
(4) Atualize T0 pelo máximo gmtModified entre os produtos retornados pela API de pesquisa, então salve T0 em db/file;
(5) Aumente o número da página e repita o passo 2~4 até que a API de pesquisa não retorne nenhum dado;
Interface 3: Obtenha os detalhes do produto especificado
(a) URL: /openapi/product!detail.do (b) Parâmetros: * lang: Descreva o idioma do produto, opcional, consulte o Apêndice D; * itemNo: Obetenha modelo do produto para informações detalhadas. (c) Resultado: Resumo: * Esta API retorna informações completas sobre o produto especificado.
Fields: * id: O ID exclusivo do produto; * categoryId: O ID da categoria do produto; * itemNo: Modelo do produto;
* groupItemNo: O modelo de grupo do produto. Se o produto NÃO é multi-modelo, o modelo de grupo é o mesmo que o modelo de produto;
* name: O nome do produto; * barcode: O código de barras do produto; * description: A descrição detalhada do produto; * leadTime: A descrição do prazo de entrega. Por exemplo. "Envio no mesmo dia em pedidos antes das 6PM (GMT+8)", "1~3 Dias", "2~5 Dias";
* gmtListed: Tempo de colocação no mercado, o formato é MM/dd/yyyy HH:mm:ss (por exemplo. 10/31/2013 01:23:20). Os produtos cuja tempo listada nos últimos 90 dias são novas chegadas;
* gmtModified: Tempo de modificação do produto, o formato é MM/dd/yyyy HH:mm:ss (por exemplo. 10/31/2013 01:23:20);
* warehouse: O armazém de entrega do produto. por exemplo CN, HK ou RU;
* stock: Se o armazém for um armazém ultramarino (NÃO CN), esse field fornecerá a quantidade atual em estoque; * moq: A quantidade do pedido mínima, o padrão é 1; * brandName: Nome da marca, por exemplo 'Huawei'; * modelLabel: Se o produto for multi-modelo, será usado para distinguir os atributos do produto(por exemplo. Cor, Tamanho...).
* modelList: Se o produto é multi-modelo, retornará uma lista de modelos.
Cada elemento na lista é composto de key-value, a key é o modelo, o value é a descrição do modelo. por exemplo. [ { key: 'S-MPH-001', value: 'White' }, { key: 'S-MPH-002', value: 'Black' } ] * optionList: Lista dos produtos semelhantes. { display: "text" or "picture", items: [ { itemNo: "S-MPH-0002", keywords: "Plastic Case for S7" } ] } * price: O preço atual do produto; * priceList: Lista de preço do produto, mude o preço de acordo com a quantidade comprada. Cada elemento na lista é um objeto de key-value, a key é a quantidade, o value é o preço correspondente. por exemplo. [ { key: 2, value: '2.98' }, { key: 10, value: '2.49' } ] * clearance: É o produto de liquidação? * orgPrice: Se o produto for um item de liberação ou em promoção, esse field terá o preço original;
* priceExpired: Se o produto for um produto promocional, esse field terá o tempo de expiração da atividade, o formato é MM/dd/yyyy HH:mm (por exemplo. 10/31/2013 00:00). Pode estar vazio;
* status: O status do produto. Veja o Apêndice B; * unitWeight: O peso de unidade do produto; * packQty: A quantidade dos produtos em um caixa; * packWeight: O peso dos produtos em um caixa, em 'kg' unidade; * packLength&packWidth&packHeight: A cubagem do produto em um caixa, em 'mm' unidade; * containsBattery: O produto contém bateria? true ou false;
* giftItemNo: Se o produto contiver um presente grátis, esse field terá o modelo de presente; * brands: Se este produto for um acessório, esse field listará os modelos de marca com os quais ele é compatível. Este field NÃO é retornado por '/openapi/product!search.do'.
Por exemplo: [ { brand: { name: "Apple" }, models: [ { name: "iPhone" }, { name: "iPad" } ] } ] * params: O parâmetros chave do produto. Este field NÃO é retornado por '/openapi/product!search.do'.
Por exemplo: [ { name: "Connectivity" , values: [ "WIFI", "3G", "GPS" ] } ]
Interface 4: Baixe as imagens do produto especificado
(a) URL: /openapi/product!getImages.do (b) Parâmetros: * itemNo: O modelo do produto que você deseja obter. * size: O tamanho das imagens do produto, em pixels, opcional.
O tamanho máximo é 800 x 800, algumas imagens de produtos antigos podem ser de 500 x 500.
* watermark: Marca d'água de imagem, opcional. (c) Resultado: Resumo: * Se o itemNo não existir, o código de resposta será 404, caso contrário, um fluxo zip será retornado.
Interface 5: Obtenha a imagem do produto alterada
(a) URL: /openapi/product!getImageChangeList.do (b) Parâmetros: * pageSize: O número de alterações retornadas por página, a configuração padrão é 40, o máximo é 100;
* page: O número da página, a configuração padrão é 1; * gmtModifiedStart: Para obter os números de itens cujas imagens foram alteradas desde 'gmtModifiedStart', o formato é MM/dd/yyyy HH:mm:ss (por exemplo. 10/30/2016 11:14:01);
(c) Resultado: Resumo: * total: O número de itens total corresponde às condições que você especificou.
* pageCount: O número de páginas total.
* result: Uma matriz contém o número do item e o tempo em que suas imagens foram atualizadas, por exemplo. [{"itemNo": "S-MPH-001", "gmtModified": "10/31/2016 01:04:22"}]Baixe novamente da imagem do produto correspondente de acordo com a lista de modelos de produtos alterados.Dica: como obter as imagens alteradas?(1) Antes de chamar a changelist API, carregue o tempo salvo anteriormente T0 de db/file;
(2) Chame a changelist API com gmtModifiedStart=T0, ela retornará os itens cujas imagens já foram alteradas desde T0;
(3) Baixe novamente da imagem do produto do modelo do produto listado na lista de alterações;
(4) Atualize T0 pelo máximo gmtModified entre os itens retornados pela API da lista de alterações, então salve T0 em db/file;
(5) Aumente o número da página e repita o passo 2~4 até que a API da lista de alterações não retorne nenhum dado;
Interface 6: Obtenha a lista do país para envio
(a) URL: /openapi/order!getCountries.do (b) Parâmetros: NENHUM. (c) Resultado: Resumo: * Obtenha a lista do país para envio, incluindo os estados / províncias que se existir. Fields: * id: O ID exclusivo do país; * code: O código do país,cumpra com ISO 3166; * name: O nome do país; * shipToState: Se calcular os custos de envio por estado / província? Talvez menos custo. Valor: true/false;
* stateList: Uma lista do estado / província opcional do país, os fields como abaixo: ** code: O código do estado / província; ** name: O nome do estado / província;
Interface 7: obtenha o preço e os custos de envio dos produtos
(a) URL: /openapi/order!getPricesAndFreights.do (b) Parâmetros: * countryId: O ID exclusivo do país; * state:O código de estado, consulte '/openapi/order!getCountries.do', opcional; * items.#.itemNo, items.#.qty: A lista de itens para calcular o preço e os custos de envio. ** O # é um número inteiro para distinguir os produtos, por exemplo. items.1.itemNo, items.2.itemNo... ** itemNo: O modelo do produto; ** qty: A quantidade de modelos de produtos; (c) Resultado: Resumo: * Obtenha o preço e os custos de envio pelos produtos. Fields: * priceList: A lista de preço do produto, os fields como abaixo: ** productId: O ID exclusivo do produto; ** itemNo: O modelo do produto; ** qty: A quantidade do produtos; ** price: O preço unitário do produto; ** orgPrice: O preço unitário original pelo produto, o preço final pode ser mais barato; ** amount: O valor do subtotal final pelo produto; ** orgAmount: O valor do subtotal original pelo produto, o valor final pode ser mais barato; * freightList: A lista de frete, os fields como abaixo: ** id: O ID exclusivo da forma de envio; ** name: O nome da forma de envio; ** logo: O URL do logo da forma de envio; ** description: A descrição da forma de envio; ** website: O website da forma de envio; ** transitTime: A descrição do tempo de envio dos itens; ** shippingCost: O custo de transporte pelos itens;
Interface 8: Crie um pedido
(a) URL: /openapi/order!createOrder.do (b) Parâmetros: * siteNumber: Você possui um número de pedido ou outro número de referência adicional pelo SUNSKY pedido, opcional. Comprimento máximo: 32 caracteres. * useBalanceOnly: Se definido como true, você deve ter saldo suficiente no SUNSKY website, caso contrário, uma exceção de "INSUFFICENT_BALANCE" (saldo insuficiente) será descartada. Se definido como false, o pedido será criado com o método de pagamento da Transferência do Banco quando você não tiver saldo suficiente. A configuração padrão é false, opcional; * vatNumber: Número de IVA; * coupon: O código de coupons pode ser usado; * deliveryAddress.countryId: O ID exclusivo do país;
* deliveryAddress.state: O código de estado, consulte '/openapi/order!getCountries.do'. Se não houver informações de estado pelo país, por favor insira manualmente. Comprimento máximo: 40 caracteres; * deliveryAddress.city: Cidade. Comprimento máximo: 40 caracteres;
* deliveryAddress.company: Nome da empresa, opcional. Comprimento máximo: 100 caracteres; * deliveryAddress.address: Endereço da rua. Comprimento máximo: 100 caracteres; * deliveryAddress.address2: Endereço da rua 2, opcional. Comprimento máximo: 100 caracteres; * deliveryAddress.postcode: Código postal / zip código. Comprimento máximo: 20 caracteres;
* deliveryAddress.receiver: Nome completo do destinatário. Comprimento máximo: 32 caracteres; * deliveryAddress.telephone: Número de telefone do destinatário, opcional, mas recomendado. Comprimento máximo: 20 caracteres; * deliveryAddress.shippingWayId: O ID exclusivo da forma de envio. Você pode obter a lista de formas de envio chamando '/openapi/order!getPricesAndFreights.do', e obter a propriedade id do 'freightList' no resultado;
* deliveryAddress.shipment: drop -- dropshipping; wholesale -- compre para si mesmo, opcional. A configuração padrão é 'wholesale'; * items.#.itemNo, items.#.qty: Crie um elemento da lista de pedidos.
** O # é um número inteiro para distinguir os produtos, por exemplo. items.1.itemNo, items.2.itemNo... ** itemNo: O modelo do produto; ** qty: A quantidade do produto; (c) Resultado: Resumo: * Crie um SUNSKY pedido com os produtos e as informações do endereço de entrega. Fields: * number: O número do pedido; * status: O status do pedido. Veja o Apêndice C; * amount: O valor total dos produtos; * shippingCost: O custo de envio do pedido; * totalAmount: O valor total do pedido. Valor total = valor + custo de envio; * siteNumber: Consulte '/openapi/order!createOrder.do'; * vatNumber: Número de IVA; * coupon: O código de coupons pode ser usado;
* packStatus: 0-Preparando; 1-Embalagem; 2-Embalado principalmente; 3-Embalado e pronto para enviar;
* trackingNumber: O número de rastreamento do pedido; * gmtCreated: O tempo criada do pedido, o formato é 'MM/dd/yyyy HH:mm'(i.e. 10/31/2013 05:01); * gmtPaid: O tempo pago do pedido, o formato é 'MM/dd/yyyy HH:mm'(i.e. 10/31/2013 05:01);
* gmtShipped: O tempo envio do pedido, o formato é 'MM/dd/yyyy HH:mm'(i.e. 10/31/2013 05:01);
* deliveryAddress.*: O endereço de envio. Consulte '/openapi/order!createOrder.do'; Feilds Adicionais: ** shippingWay.id: O ID exclusivo da forma de envio; ** shippingWay.name: O nome do forma de envio; * detailList: A lista detalhada do pedido, os fields como abaixo: ** productId: O ID exclusivo do produto; ** itemNo: O modelo do produto;
** title: O nome do produto; ** qty: A quantidade do produto; ** price: O preço do produto; ** amount: O valor total unitário; ** scaned: 0-Não está pronto para embalar; 1-Pronto para embalar; ** delayToShip: 0-Normal; 1-Atraso para enviar;
Interface 9: Busca pedidos
(a) URL: /openapi/order!getOrderList.do (b) Parâmetros: * pageSize: A quantidade de pedidos de páginas, a configuração padrão é 40, o máximo é 100; * page: O número da página, a configuração padrão é 1; * status: O status do pedido, opcional. Veja o Apêndice C; * siteNumber: Opcional. Consulte '/openapi/order!createOrder.do'; * gmtCreatedStart: Para obter os pedidos começando com 'gmtCreatedStart', o formato é MM/dd/yyyy(i.e. 10/31/2013), opcional;
* gmtCreatedEnd: Para obter o pedido para 'gmtCreatedEnd', o formato é MM/dd/yyyy(i.e. 10/31/2013), opcional;
(c) Resultado: Resumo: * Esta API retorna os pedidos que correspondem às condições que você especificou. Fields: * total: O número total do pedido corresponde às condições que você especificou. * pageCount: Número total de páginas. * result: A lista de pedidos, consulte o '/openapi/order!createOrder.do' para obter os detalhes. A 'detailList' NÃO é retornado por esta interface, por favor use '/openapi/order!getOrderDetails.do' para obter as informações dos produtos.
Interface 10: Obtenha os detalhes do pedido
(a) URL: /openapi/order!getOrderDetails.do (b) Parâmetros: * number: O SUNSKY número do pedido; (c) Resultado: Resumo: * Esta API retorna as informação detalhada completos do pedido. Fields: * Consulte '/openapi/order!createOrder.do';
Interface 11: Verifique seu saldo do SUNSKY
(a) URL: /openapi/order!getBalance.do (b) Parâmetros: NENHUM (c) Resultado: Resumo: * Esta API é usada para visualizar o saldo do SUNSKY. Fields: Apenas uma corda, por exemplo. "1200.00".
Interface 12: Obtenha seu histórico de conta de saldo
(a) URL: /openapi/order!getBillList.do (b) Parâmetros: * pageSize: O número de contas por página, a configuração padrão é 40, o máximo é 100; * page: O número da página, a configuração padrão é 1; * gmtCreatedStart: Para obter os dados de conta começando com 'gmtCreatedStart', o formato é MM/dd/yyyy(i.e. 10/31/2013), opcional;
* gmtCreatedEnd: Para obter o pedido para 'gmtCreatedEnd', o formato é MM/dd/yyyy(i.e. 10/31/2013), opcional;
(c) Resultado: Resumo: * Esta API retorna os dados de conta que correspondem às condições especificadas.
Fields: * total: O número total de conta corresponde às condições que você especificou.
* pageCount: O número total da página de conta.
* result: A lista de faturamento, os fields como abaixo: * txType: Tipo da transação, por exemplo,prepay / createOrder / payForOrder / cancelOrder;
* refId: Se txType for createOrder / payForOrder / cancelOrder, o número do pedido será associado à conta;
* amount: O valor total da transação; * balance: O saldo após a transação; * gmtCreated: O tempo criado da conta, o formato é 'MM/dd/yyyy HH:mm'(por exemplo. 10/31/2013 05:01);
Interface 13: Obtenha os produtos populares
(a) URL: /openapi/stats!getHotItems.do (b) Parâmetros: * countryId: O ID exclusivo do país; (c) Resultado: Resumo: * Essa API retorna o produto popular correspondente de acordo com o ID do país correspondente.. Fields: * itemNo: O modelo do produto.
Interface 14: Obtenha a lista de coupons
(a) URL: /openapi/coupon!getList.do (b) Parâmetros: * pageSize: O número de coupons por página, a configuração padrão é 40, o máximo é 100; * page: O número da página, a configuração padrão é 1; (c) Resultado: Resumo: * Esta API retorna os coupons que correspondem às condições que você especificou. Fields: * total: O número total de coupons corresponde às condições que você especificou. * pageCount: O número total das páginas. * result: A lista de códigos de coupons. Os fields como abaixo: * code: Código do coupons; * description: A descrição do coupons para explicar como usar o coupons; * startTime: O tempo de início do coupons, o formato é 'MM/dd/yyyy HH:mm'(por exemplo. 10/31/2013 05:01); * endTime: O tempo de expiração do coupons, o formato é 'MM/dd/yyyy HH:mm'(por exemplo. 10/31/2013 05:01); * personLimit: O tempo que uma pessoa pode usar o coupons; * qty: A quantidade do item em que o coupons pode ser usado para um desconto; * discountType: Tipo de desconto 1 -- valor com desconto fixo; 2 -- desconto em porcentagem; 3 -- preço fixo; * discount: De acordo com o discountType diferente, o valor correspondente significa: 1 -- o valor de de desconto (tipo de corda); 2 -- a porcentagem (corda) após o desconto, 90 significa 10% de desconto; 3 -- o preço final (corda); * targetType: 1 -- Categoria; 2 -- Produtos; 3 -- Valor limite do valor do pedido; 4 -- Marca; * target: De acordo com o targetType diferente, o valor correspondente como abaixo: 1 -- A lista de json da categoria (corda), por exemplo. [ { id: 'category id', name: 'Category name' } ] 2 -- A lista de json do produto (corda), por exemplo. [ { id: 'product id', name: 'Product name', itemNo: 'Item #' } ] 3 -- O valor limite do valor do pedido, i.e . 200; 4 -- A lista de json da marca (corda), por exemplo. [ { name: 'HAWEEL' } ];
Apêndice A: Status da Categoria
0 - Inválido 1 - Válido 2 - Excluído
Apêndice B: Status do Produto
0 - Inválido 1 - Válido 2 - Excluído 3 - Sem estoque
Apêndice C: Status do Pedido
1 - Não pagam 2 - Pagamento 3 - Enviado 4 - Cancelado 5 - Entregue
Apêndice D: Lista de idiomas
en - English
ru - русский язык
fr - Français
es - Español
pt - Português
de - Deutsche
it - Italiano
nl - Nederlands
ar - عربي
vi - Tiếng Việt
th - ไทย
ko - 한국어
ja - 日本語
zh_CN - 中文简体
zh_TW - 中文繁体
Apêndice E: Código de Amostra (Java, PHP)
OpenApiService.zip
Apêndice F: Outro SDK de terceiros
- Python: https://github.com/progressify/pysunsky (Obrigado por Antonio Porcelli)