Smart Dealer Client API
API e documentação de comunicação (for PHP servers) com a plataforma para revendas e concessionÔrias Smart Dealer., (*1)
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)
composer require smartdealer/sdapi
~~~.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  ### 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' ) )
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 |
~~~.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);
~~~.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 |
código | descrição |
---|---|
200 | sucesso |
400 | em manutenção |
500 | error |
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) |
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
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 |
string | email do cliente | |
hashcode | string | hash token criação de senha |
Lista o estoque de peƧas, (*24)
Lista os fabricantes cadastrados, (*25)
Registra ou atualiza a reserva de uma peƧa (e-commerce), (*26)
Registra ou atualiza a lista de notificações, pendências no estoque (e-commerce), (*27)
Remove a reserva de uma peƧa, (*28)
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 |
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 |
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
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) |
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)
, (*38)
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)
, (*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)
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
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 |
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 |
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)
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)
~~~.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)
Escolha do método/protocolo de conexão com o servidor Restful., (*59)
Tempo mƔximo da resposta do servidor em segundos., (*60)
Habilitar esta opção se a conexão exigir SSL., (*61)
Número da porta de conexão com servidor Restful., (*62)
Para desenvolvedores: se ativa, exibe erros de execução e comunicação com o servidor., (*63)
Opção de configuração do formato de resposta do servidor ('JSON' = 1, 'XML' = 2)., (*64)
Se desativada, mostra a resposta literal do servidor em XML ou JSON., (*65)
Fluxo de interação com o webservice Smart via Api na integração com portais automotivos., (*66)
, (*67)
@Release 1.6, (*68)
Nota da versão:, (*69)
Nenhuma., (*70)