2017 © Pedro PelĆ”ez
 

php-library sdapi

Smart Dealer Client API

image

smartdealer/sdapi

Smart Dealer Client API

  • Tuesday, May 23, 2017
  • by patrickotto
  • Repository
  • 1 Watchers
  • 4 Stars
  • 27 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 1 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Smart Dealer Client API

Use a tecnologia Smart na sua empresa ou agĆŖncia

98% de precisão na detecção automÔtica de modelos/versões e compatibilidade de listas

API e documentação de comunicação (for PHP servers) com a plataforma para revendas e concessionÔrias Smart Dealer., (*1)

GPL Licence PHPPackages Rank , (*2)

Para mais informaƧƵes, acesse o nosso site., (*3)

Direitos reservados Ơ Smart Dealer SoluƧƵes em Software Ltda., (*4)

Caso necessite de acesso a integração antiga, veja o SD Soap-XML., (*5)

RequĆ­sitos

  • PHP 5.3 ou superior
  • ExtensƵes do PHP "php_curl" e "php_openssl"
  • Apache 2.2+

Use via composer

composer require smartdealer/sdapi

Autenticação

~~~.php, (*6)

# include API class include_once 'src/smart/api.php';, (*7)

# client name OR direct instance URL (prima or prima.smartdealer.com.br) $env = 'prima';, (*8)

# login webservice Rest $usr = 'primafiat';, (*9)

# password webservice Rest (example) $pwd = 'unXEmpkV7ush#';, (*10)

# init API $api = new Smart\Api($env, $usr, $pwd, array());, (*11)


### Acesso direto (url) https://{usuario}:{chave}@{cliente}.smartdealer.com.br/webservice/rest/connect/offers/?format={formato}&template={template} * {usuario} = usuÔrio do ws * {chave} = chave do ws * {cliente} = nome da instância * {formato} = formato do saída em JSON ou XML (vide parâmetros de configuração) * {template} = estrutura de campos da saída ### Uso em embiente de produção SerÔ necessÔrio a criação de um login, chave de acesso e a liberação do endereço de IP (servidor onde a API serÔ executada) pela Smart para autenticação no webservice Rest, ambiente de produção. A solicitação poderÔ ser feita atravéz deste link: http://bit.ly/2bVryEC ![alt tag](http://smartdealership.com.br/img/api/sd-cad-usuario-integracao.jpg) ### Exemplo de uso ~~~.php # call method $ret = $api->get('/parts/'); # output (Array) array( 0 => array( 'codigo' => 0001 'nome' => 'Parachoque Dianteiro (Palio ELX)', 'modelo' => 'MCBSA-12', 'preco' => 840.00, 'qtd' => 10, 'fab' => '1 - FIAT' ), 1 => array( 'codigo' => 0002 'nome' => 'Parachoque Traseiro (Palio ELX/EX)', 'modelo' => 'MCBSA-15', 'preco' => 532.00, 'qtd' => 7 'fab' => '1 - FIAT' ), 2 => array( 'codigo' => 0003 'nome' => 'Motor Limpador de Parabrisa (UNO Vivace)', 'modelo' => 'MCBSA-88', 'preco' => 120.00, 'qtd' => 2, 'fab' => '1 - FIAT' ) )

DicionƔrio de dados

Tradução dos campos retornados na consulta das ofertas selecionadas do estoque., (*12)

campo tipo descrição
id integer id da oferta nos pacotes
tipo string código do tipo (N para novo e U para usado)
categoria integer código da categoria (carro, moto ou caminhão)
filial integer id da filial, use a rota /config/affiliates/ para listar
placa string placa do veĆ­culo (para usados)
chassi string chassi do veĆ­culo (para novos)
marca string descrição da marca
modelo_id string código do modelo
modelo string descrição do modelo
cor_id string codigo da cor
cor string descrição da cor
km integer quilometragem do veĆ­culo
combustivel string descrição do combustível
ano_fabricacao integer (4) ano de facricação do veículo
ano_modelo integer (4) ano do modelo do veĆ­culo
promocao string status do veículo em promoção (S ou N)
preco float preƧo do veƭculo
dias_estoque integer nĆŗmero dos dias em estoque
observacao string observaƧƵes do vendedor/concessionƔria
imagens array lista das URLs das imagens do veĆ­culo

Tipos de mƩtodos

GET (leitura de dados)

~~~.php, (*13)

# reading data list $api->get('/route/method');, (*14)

# reading specific data $api->get('/route/method/:id');, (*15)


#### POST (envio de dados) ~~~.php $data = array(); # send data (simple) $api->post('/route/method/', $data); # send data with ID param (if required) $api->post('/route/method/:id', $data);

DELETE (deleção de dados)

~~~.php, (*16)

$data = array();, (*17)

# remove data (required ID param) $api->delete('/route/method/:id');, (*18)



##### Retorno padrão (para uso das rotas HTTP) ~~~.json { "status": 500, "errors": [ "O limite de 1 conta(s) foi atingido. Entre em contato conosco." ], "response": false }
campo tipo descrição
status integer código de retorno
errors array listagem de erros (se houver, status 500)
response mixed resposta adicional do mƩtodo
Tabela de tradução
código descrição
200 sucesso
400 em manutenção
500 error

Métodos do webservice (configuração)

GET : /config/categories/

Lista as categorias de veículos do estoque (carro, moto, caminhão), (*19)

campo tipo descrição
id integer id da categoria*
descricao string nome da categoria (Ex: Carro)
POST : /config/affiliate/

Cadastra um novo cliente/CNPJ no sistema, (*20)

campo tipo descrição
nome string nome do cliente (Ex: Exemplo Fiat)
cnpj integer cnpj do cliente (14 digitos)
razao_social string razão social (Ex: Exemplo Fiat Veículos Ltda.)
matriz boolean especifica se cadastro Ć© matriz ou loja principal

Filtros, (*21)

parâmetro tipo descrição exemplo
cnpj numeric CNPJ da filial 80935893000104

Uso, (*22)

https://{usuario}:{chave}@{cliente}.smartdealer.com.br/webservice/rest/connect/contracts?param=value
GET : /config/affiliates/

Lista as filiais/lojas do cliente, (*23)

campo tipo descrição
nome string nome do cliente (Ex: Exemplo Fiat)
cep string endereƧo de cep
cnpj integer cnpj do cliente (14 digitos)
razao_social string razão social (Ex: Exemplo Fiat Veículos Ltda.)
endereco string endereƧo da concessionƔria/revenda
bairro string nome do bairro
cidade string nome da cidade
telefone integer nĆŗmero do telefone (dd + nĆŗmero)
responsavel string nome do contato responsƔvel
email string email do cliente
hashcode string hash token criação de senha

MƩtodos do webservice (estoque de peƧas)

GET : /parts/

Lista o estoque de peƧas, (*24)

GET : /parts/providers/

Lista os fabricantes cadastrados, (*25)

POST : /parts/order/ [array]

Registra ou atualiza a reserva de uma peƧa (e-commerce), (*26)

POST : /parts/notify/ [array]

Registra ou atualiza a lista de notificações, pendências no estoque (e-commerce), (*27)

DELETE : /parts/order/:id

Remove a reserva de uma peƧa, (*28)

MƩtodos do webservice (integrador)

GET : /connect/channels/

Lista os canais/portais disponíveis para integração, (*29)

campo tipo descrição
id integer código do canal
nome string nome do canal (Ex: Portal iCarros)
identificador string nome do drive identificador (Ex: icarros)
status integer 1 na fila, 2 em manutenção, 3 disponível
GET : /connect/codes/

Lista de tradução dos códigos de resposta dos canais de integração., (*30)

Breve exemplo, para ver a lista completa faƧa uma chamada a rota Rest acima., (*31)

codigo descricao
7 versão incompatível c/ o ano
13 a cor informada Ʃ invƔlida
16 plano ou categoria invƔlido
21 limite da categoria esgotado
33 preƧo abaixo do permitido (20% FIPE)
300 combustíveis não carregados
POST : /connect/contract/

Cria uma configuração de integração (connect), (*32)

campo tipo descrição
site_id integer id do canal de integração (vide ~/channels/)
status integer 1 atualização automÔtica ativa, 0 desativada
anuncios integer total de anúncios do plano (apenas para cÔlculo)
nome string nome de indentificação do contrato
filial integer filial a ser lida/publicada (ofertas)
cnpj integer cnpj utilizado na conta do portal
login string login/email utilizado na conta do portal
senha string senha da conta do portal
segmento integer categoria principal, vide "/config/categories/"

Filtros, (*33)

parâmetro tipo descrição exemplo
filial integer ID da filial 1

Uso, (*34)

https://{usuario}:{chave}@{cliente}.smartdealer.com.br/webservice/rest/connect/contracts?param=value
GET : /connect/contracts/

Lista as integrações configuradas (contratos de integração), (*35)

campo tipo descrição
id integer código do contrato/integração
site_id integer id do canal de integração vide "connect/channels/"
data_criacao string data do cadastro da integração
identificador string nome do canal ou portal integrado (Ex: webmotors)
nome string nome de indentificação do contrato
status integer 1 atualização automÔtica ativa, 0 desativada
anuncios integer total de anĆŗncios do plano (definido no cadastro)
tot_destaque integer total de anúncios em destaque (pós sincronização)
tot_manual integer anúncios cadastrados pelo portal (pós sincronização)
login string login/email utilizado na conta do portal
senha string senha da conta do portal
segmento integer categoria principal, vide "/config/categories/"
valido boolean status operacional da integração (true = integrado)
POST : /connect/offer/

Cadastra um veículo para publicação em um pacote de ofertas (connect), (*36)

campo tipo descrição
contrato_id integer código da integração "/connect/contracts/"
tipo string código do tipo (N para novo e U para usado)
categoria integer código da categoria "/config/categories/"
placa string placa do veĆ­culo (para usados)
chassi string chassi do veĆ­culo (para novos)
marca string descrição da marca
modelo string descrição do modelo
cor string descrição da cor
portas integer quantidade de portas do veĆ­culo
transmissao string descrição da transmissão
km integer quilometragem do veĆ­culo
combustivel string descrição do combustível
ano_fabricacao integer (4) ano de facricação do veículo
ano_modelo integer (4) ano do modelo do veĆ­culo
promocao string status do veículo em promoção (S ou N)
preco float preƧo do veƭculo
observacao string observaƧƵes do vendedor/concessionƔria
opcionais string opcionais separados por ";", ex: "ar condicionado;trava;direção"
imagens array lista[0,1,2] das imagens do veículo (código fonte em BASE64)

Formato das imagens (em base64), (*37)

alt tag, (*38)

POST : /connect/offer/:id

Atualiza uma oferta de veĆ­culo no estoque (connect), (*39)

campo tipo descrição
id integer id da oferta em estoque

A flag :id deverÔ ser substituída pelo código da oferta, ex: "/connect/offer/1"., (*40)

Parâmetros da chamada, (*41)

campo tipo descrição
categoria integer código da categoria "/config/categories/"
placa string placa do veĆ­culo (para usados)
chassi string chassi do veĆ­culo (para novos)
marca string descrição da marca
modelo string descrição do modelo
cor string descrição da cor
portas integer quantidade de portas do veĆ­culo
transmissao string descrição da transmissão
km integer quilometragem do veĆ­culo
combustivel string descrição do combustível
ano_fabricacao integer (4) ano de facricação do veículo
ano_modelo integer (4) ano do modelo do veĆ­culo
promocao string status do veículo em promoção (S ou N)
preco float preƧo do veƭculo
observacao string observaƧƵes do vendedor/concessionƔria
opcionais string opcionais separados por ";", ex: "ar condicionado;trava;direção"
imagens array lista[0,1,2] das imagens do veículo (código fonte em BASE64)

Formato das imagens (em base64), (*42)

alt tag, (*43)

Importante, (*44)

O o tipo de estoque "U" para usados e "N" para novos não poderÔ ser alterado. Neste caso serÔ necessÔrio excluir a oferta e adicionar novamente no pacote (estoque)., (*45)

GET : /connect/packs/

Lista os pacotes de ofertas disponĆ­veis (connect), (*46)

campo tipo descrição
id integer código do pacote
nome string nome customizado do pacote (Ex: Feirão iCarros)
status integer 1 ativo, 0 bloqueado
ultimo_envio datetime data do ultimo envio

Filtros, (*47)

parâmetro tipo descrição exemplo
contrato numeric ID da integração 1

Uso, (*48)

https://{usuario}:{chave}@{cliente}.smartdealer.com.br/webservice/rest/connect/contracts?param=value
GET : /connect/pack/:id

Lista as ofertas de um determinado pacote (connect), (*49)

campo tipo descrição
id integer id da oferta
ordem integer posição no pacote (ordem de publicação)
pacote_id integer código do pacote de ofertas
driver string identificador do canal de integração, ex: "icarros"
tipo string código do tipo (N para novo e U para usado)
categoria integer código da categoria (carro, moto ou caminhão)
filial integer id da filial, use a rota /config/affiliates/ para listar
placa string placa do veĆ­culo (para usados)
chassi string chassi do veĆ­culo (para novos)
marca string descrição da marca
modelo_id string código do modelo
modelo string descrição do modelo
cor_id string codigo da cor
cor string descrição da cor
km integer quilometragem do veĆ­culo
combustivel string descrição do combustível
ano_fabricacao integer (4) ano de facricação do veículo
ano_modelo integer (4) ano do modelo do veĆ­culo
promocao string status do veículo em promoção (S ou N)
preco float preƧo do veƭculo
dias_estoque integer nĆŗmero dos dias em estoque
opcionais string opcionais separados por ";", ex: "ar condicionado;trava;direção"
observacao string observaƧƵes do vendedor/concessionƔria
imagens array lista das URLs das imagens do veĆ­culo
registro datetime data da ultima atualização no portal
ordem integer nĆŗmero da sequĆŖncia no pacote
anuncio_status string status de publicação no portal 1 = publicado, 0 = offline
anuncio_envio string data da ultima sincronização do anúncio
anuncio_codigo string código do anúncio no portal
anuncio_link string link do anĆŗncio no portal
status_codigo string código de retorno
status_descricao string tradução do retorno
GET : /connect/offers/

Lista todas as ofertas do cliente, (*50)

campo tipo descrição
id integer id da oferta
ordem integer posição no pacote (ordem de publicação)
pacote_id integer código do pacote de ofertas
driver string identificador do canal de integração, ex: "icarros"
tipo string código do tipo (N para novo e U para usado)
categoria integer código da categoria (carro, moto ou caminhão)
filial integer id da filial, use a rota /config/affiliates/ para listar
placa string placa do veĆ­culo (para usados)
chassi string chassi do veĆ­culo (para novos)
marca string descrição da marca
modelo_id string código do modelo
modelo string descrição do modelo
cor_id string codigo da cor
cor string descrição da cor
km integer quilometragem do veĆ­culo
combustivel string descrição do combustível
ano_fabricacao integer (4) ano de facricação do veículo
ano_modelo integer (4) ano do modelo do veĆ­culo
promocao string status do veículo em promoção (S ou N)
preco float preƧo do veƭculo
dias_estoque integer nĆŗmero dos dias em estoque
opcionais string opcionais separados por ";", ex: "ar condicionado;trava;direção"
observacao string observaƧƵes do vendedor/concessionƔria
imagens array lista das URLs das imagens do veĆ­culo
registro datetime data da ultima atualização no portal
ordem integer nĆŗmero da sequĆŖncia no pacote
anuncio_status string status de publicação no portal 1 = publicado, 0 = offline
anuncio_envio string data da ultima sincronização do anúncio
anuncio_codigo string código do anúncio no portal
anuncio_link string link do anĆŗncio no portal
status_codigo string código de retorno
status_descricao string tradução do retorno
DELETE : /connect/offer/:id

Remove a oferta do pacote e do portal (pós sincronização automÔtica), (*51)

campo tipo descrição
id integer id da oferta no pacote

A flag :id deverÔ ser substituída pelo código da oferta, ex: "/connect/offer/1"., (*52)

DELETE : /connect/contract/:id

Remove uma configuração de integração e seus pacotes (contrato), (*53)

campo tipo descrição
id integer id do contrato

A flag :id deverÔ ser substituída pelo código do contrato, ex: "/connect/contract/1"., (*54)

Parâmetros de configuração

~~~.php, (*55)

# the API settings $settings = array( 'handle' => 'curl', 'timeout' => 10, 'use_ssl' => false, 'port' => 80, 'debug' => false, 'output_format' => 1, 'output_compile' => true );, (*56)

# init API (with param settings) $api = new Smart\Api($env, $usr, $pwd, $settings);, (*57)

~~~, (*58)

handle

Escolha do método/protocolo de conexão com o servidor Restful., (*59)

  • String: "curl" (padrĆ£o), "socket" e "stream"

timeout

Tempo mƔximo da resposta do servidor em segundos., (*60)

  • Integer: 10 (padrĆ£o)

use_ssl

Habilitar esta opção se a conexão exigir SSL., (*61)

  • Bool: false (padrĆ£o)

port

Número da porta de conexão com servidor Restful., (*62)

  • Integer: 80 (padrĆ£o)

debug

Para desenvolvedores: se ativa, exibe erros de execução e comunicação com o servidor., (*63)

  • Bool: false (padrĆ£o)

output_format

Opção de configuração do formato de resposta do servidor ('JSON' = 1, 'XML' = 2)., (*64)

  • Integer: 1 (padrĆ£o)

output_compile

Se desativada, mostra a resposta literal do servidor em XML ou JSON., (*65)

  • Bool: true (padrĆ£o)

Integração com portais

Fluxo de interação com o webservice Smart via Api na integração com portais automotivos., (*66)

alt tag, (*67)

Atualização regular

@Release 1.6, (*68)

Nota da versão:, (*69)

Nenhuma., (*70)

The Versions

23/05 2017

dev-master

9999999-dev

Smart Dealer Client API

  Sources   Download

GPL2.0

The Requires

  • lib-curl ^7.36
  • lib-openssl ^1.0.1

 

by Patrick Otto