Atualização do Cupom
Requisição para alterar dados do cupom.
ALTERAÇÃO DOS CUPONS
Método PUT
Adicionar produtos, categorias, marcas, clientes ou frete
Assim como demonstrado no tópico de criação do cupom, basta enviar o PUT do cupom com os dados que deseja adicionar.
Modificações no cupom que são conflitantes
O cupom da Tray não é possível utilizar ao mesmo tempo “produtos específicos” + “marcas especificas” + “categorias especificas”, dessa forma caso seu cupom esteja configurado como “categoria especifica” e seja enviado “produtos específicos”, o cupom será alterado para “produtos específicos” e as categorias que estavam antes selecionadas será excluída do cupom.
Consultar Cupom
Requisição para a consulta de dados do cupom.
1 - LISTAGEM GERAL DOS CUPONS
Método GET
https://{api_address}/discount_coupons/?access_token={token}
Código de Exemplo
<?php
$params["access_token"] = "### Chave de Acesso ###";
$url = "https://{api_address}/discount_coupons/?".http_build_query($params);
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_exec($ch);
// JSON de retorno
$resposta = json_decode(ob_get_contents());
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_end_clean();
curl_close($ch);
if($code == "200"){
//Tratamento dos dados de resposta da consulta.
}else{
//Tratamento das mensagens de erro
}
?>
string URLAuth = "https://{api_address}/discount_coupons/";
NameValueCollection queryParameters = new NameValueCollection();
queryParameters.Add("access_token", "### Chave de Acesso ###");
List items = new List();
foreach (String name in queryParameters)
items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(queryParameters[name])));
string argsString = String.Join("&", items.ToArray());
WebRequest request = WebRequest.Create(URLAuth + "?" + argsString);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseData = reader.ReadToEnd();
Console.WriteLine(responseData);
reader.Close();
response.Close();
String url = "https://{api_address}/discount_coupons/";
Map<String, String> mapToConvert = new HashMap<>();
mapToConvert.put("access_token", "### Chave de Acesso ###");
String queryString = "";
for (Entry<String, String> entry : mapToConvert.entrySet()) {
queryString += entry.getKey()+"="+ entry.getValue()+"&";
}
try {
URL obj = new URL(url+"?"+queryString);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
BufferedReader in ;
if (responseCode >= 200 && responseCode < 300){
in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
}else{
in = new BufferedReader(
new InputStreamReader(con.getErrorStream()));
}
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String resposta = response.toString();
} catch (Exception ex){
// Tratamento da Exception
}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
DiscountCoupon | JSON |
Dados do cupom |
id | String |
id do cupom |
created | Date |
Data de criação do cupom |
updated | Date |
Data da última atualização do cupom |
code | String |
Nome do cupom. Obs: Neste campo não é aceito espaço e acentuação nas palavras |
description | String |
Descrição do cupom |
starts_at | Date |
Data de início da validade do cupom 0000-00-00 |
ends_at | Date |
Data final da validade do cupom 0000-00-00 |
value | Decimal |
Valor de desconto do cupom |
usage_counter | String |
|
usage_sum | Number |
|
value_start | Decimal |
Valor mínimo do produto para ser aplicado o desconto |
value_end | Decimal |
Valor máximo do produto para ser aplicado o desconto |
usage_sum_limit | Decimal |
Limita o valor do cupom |
usage_counter_limit | String |
Limita a quantidade de vezes que o cupom poderá ser usado no geral |
usage_counter_limit | String |
Limita a quantidade de vezes que o cupom poderá ser utilizado por cliente |
coupon_type | String |
|
local_application | String |
|
freight_application | String |
|
usage_counter_limit_customer | String |
|
cumulative_discount | Number |
Permitir que o cupom acumule o desconto com o desconto progressivo. Tabela B |
Json de retorno
HTTP/1.1201 OK
{
"paging": {
"total": 32,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"sort": [
{
"id": "asc"
}
],
"availableFilters": [
"id",
"code",
"type",
"description",
"status",
"used",
"accumulated_discount_start",
"accumulated_discount_end"
],
"appliedFilters": [],
"DiscountCoupons": [
{
"DiscountCoupon": {
"id": "7",
"created": "2019-08-22 15:55:42",
"updated": "2019-08-22 15:55:42",
"code": "CUPOM",
"description": "Cupom criado pela API",
"starts_at": "2019-08-01",
"ends_at": "2019-08-30",
"value": "10.00",
"usage_counter": "0",
"usage_sum": "0.00",
"type": "$",
"value_start": "10.00",
"value_end": "100.00",
"usage_sum_limit": "10.00",
"usage_counter_limit": "0",
"coupon_type": "loja",
"local_application": "loja",
"freight_application": "nao_aplicavel",
"usage_counter_limit_customer": "10",
"cumulative_discount": "1"
}
}
]
}
1.1 - CONSULTAR DADOS DO CUPOM
Método GET
https://{api_address}/discount_coupons/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Json de retorno
HTTP/1.1201 OK
{
"DiscountCoupon": {
"id": "7",
"created": "2019-08-22 15:55:42",
"updated": "2019-08-22 15:55:42",
"code": "CUPOM",
"description": "Cupom criado pela API",
"starts_at": "2019-08-01",
"ends_at": "2019-08-30",
"value": "10.00",
"usage_counter": "0",
"usage_sum": "0.00",
"type": "$",
"value_start": "10.00",
"value_end": "100.00",
"usage_sum_limit": "10.00",
"usage_counter_limit": "0",
"coupon_type": "loja",
"local_application": "loja",
"freight_application": "nao_aplicavel",
"usage_counter_limit_customer": "10",
"cumulative_discount": "1"
}
}
CONSULTA DO CUPOM BÁSICO + LIMITAÇÕES (2/3/4/5/6)
2 - CLIENTES RELACIONADOS AO CUPOM
Método GET
https://{api_address}/discount_coupons/customer_relationship/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Json de retorno
{
"paging": {
"total": 2,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"DiscountCouponCustomers": [
{
"DiscountCouponCustomer": {
"customer_id": "1"
}
},
{
"DiscountCouponCustomer": {
"customer_id": "20"
}
}
]
}
3 - PRODUTOS RELACIONADOS AO CUPOM
Método GET
https://{api_address}/discount_coupons/product_relationship/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Estrutura de Json
{
"paging": {
"total": 3,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"DiscountCouponProducts": [
{
"DiscountCouponProduct": {
"product_id": "10"
}
},
{
"DiscountCouponProduct": {
"product_id": "20"
}
},
{
"DiscountCouponProduct": {
"product_id": "30"
}
}
]
}
4 - CATEGORIAS RELACIONADAS AO CUPOM
Método GET
https://{api_address}/discount_coupons/category_relationship/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Estrutura de Json
{
"paging": {
"total": 2,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"DiscountCouponCategories": [
{
"DiscountCouponCategory": {
"category_id": "3"
}
},
{
"DiscountCouponCategory": {
"category_id": "11"
}
}
]
}
5 - MARCAS RELACIONADAS AO CUPOM
Método GET
https://{api_address}/discount_coupons/brand_relationship/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Estrutura de Json
{
"paging": {
"total": 2,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"DiscountCouponBrands": [
{
"DiscountCouponBrand": {
"brand_id": "6"
}
},
{
"DiscountCouponBrand": {
"brand_id": "24"
}
}
]
}
6 - FRETES RELACIONADOS AO CUPOM
Método GET
https://{api_address}/discount_coupons/shipping_relationship/:id/?access_token={token}
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
id | String |
id do cupom |
Estrutura de Json
EXEMPLO DO FRETE GRÁTIS
{
"DiscountCouponShippings": [
{
"DiscountCouponShipping": {
"shipping_id": "1"
}
},
{
"DiscountCouponShipping": {
"shipping_id": "2"
}
},
{
"DiscountCouponShipping": {
"shipping_id": "52"
}
},
{
"DiscountCouponShipping": {
"shipping_id": "20"
}
}
]
}
EXEMPLO DE DESCONTO NO FRETE
{
"DiscountCouponShippings": [
{
"DiscountCouponShipping": {
"value": "20.00"
}
}
]
}
Como foi visto, temos retorno em separado para os Gets de Clientes relacionados, Produtos, Marca, Categoria e Frete. Para que não seja necessário a consulta em todas as APIs, ao realizar o GET principal ( /discount_coupons?access_token=) é retornado o campos " coupon_type" e " local_application", onde informa qual o tipo de cupom e assim qual API deve ser chamada para obter o restante dos dados.
Exemplo: Caso o " coupon_type" esteja com o valor "clientes", então teremos cliente relacionados e assim é necessário realizar um GET na API de customers para visualizar os clientes relacionados.
Valores possíveis:
• coupon_type: loja, cliente ou troca;
• local_application: loja, produtos, marcas, categorias;
• freight_application: nao_aplicavel, desconto, frete_gratis.
Cadastrar Cupom
Requisição para inclusão de um cupom. Deverá enviar o JSON com os dados do cupom para a criação.
1 - CRIAÇÃO DE CUPOM GENÉRIO - BÁSICO
Método POST
https://{api_address}/discount_coupons/?access_token={token}
Código de Exemplo
<??php
$params["access_token"] = "### Chave de Acesso ###";
$data["DiscountCoupon"]["code"] = "123";
$data["DiscountCoupon"]["description"] = "Cupom criado pela API";
$data["DiscountCoupon"]["starts_at"] = "2019-01-10";
$data["DiscountCoupon"]["ends_at"] = "2019-01-20";
$data["DiscountCoupon"]["value"] = "10.00";
$data["DiscountCoupon"]["type"] = "$";
$data["DiscountCoupon"]["value_start"] = "10";
$data["DiscountCoupon"]["value_end"] = "100.00";
$data["DiscountCoupon"]["usage_sum_limit"] = "10.00";
$data["DiscountCoupon"]["usage_counter_limit"] = "";
$data["DiscountCoupon"]["usage_counter_limit_customer"] = "10";
$data["DiscountCoupon"]["cumulative_discount"] = "1";
$url = "https://{api_address}/discount_coupons/?".http_build_query($params);
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen(json_encode($data)))
);
curl_exec($ch);
// JSON de retorno
$resposta = json_decode(ob_get_contents());
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_end_clean();
curl_close($ch);
if($code == "201"){
//Tratamento dos dados de resposta da consulta.
}else{
//Tratamento das mensagens de erro
}
?>
string URLAuth = "https://{api_address}/discount_coupons/";
NameValueCollection queryParameters = new NameValueCollection();
queryParameters.Add("access_token", "### Chave de Acesso ###");
List items = new List();
foreach (String name in queryParameters)
items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(queryParameters[name])));
string argsString = String.Join("&", items.ToArray());
string postString = "{";
postString += " \"DiscountCoupon\": {";
postString += " \ "code\": \"123"\",";
postString += " \ "description\": \"Cupom criado pela API\",";
postString += " \ "starts_at\": \"2019-01-10\",";
postString += " \ "ends_at\": \"2019-01-20\",";
postString += " \ "value\": \"10.00\",";
postString += " \ "type\": \"$\",";
postString += " \ "value_start\": \"10\",";
postString += " \ "value_end\": \"100.00\",";
postString += " \ "usage_sum_limit\": \"10.00\",";
postString += " \ "usage_counter_limit\": \"\",";
postString += " \ "usage_counter_limit_customer\": \"10\",";
postString += " \ "cumulative_discount\": \"1\",";
postString += " }";
postString += "}";
HttpWebRequest webRequest = WebRequest.Create(URLAuth + "?" + argsString) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();
StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();
responseReader.Close();
webRequest.GetResponse().Close();
String url = "https://{api_address}/discount_coupons/";
StringBuffer response = null ;
try{
String access_token = "?access_token=### Chave de Acesso ###";
URL obj = new URL(url+access_token);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
String postString = "{";
postString += " \"DiscountCoupon\": {";
postString += " \ "code\": \"123"\",";
postString += " \ "description\": \"Cupom criado pela API\",";
postString += " \ "starts_at\": \"2019-01-10\",";
postString += " \ "ends_at\": \"2019-01-20\",";
postString += " \ "value\": \"10.00\",";
postString += " \ "type\": \"$\",";
postString += " \ "value_start\": \"10\",";
postString += " \ "value_end\": \"100.00\",";
postString += " \ "usage_sum_limit\": \"10.00\",";
postString += " \ "usage_counter_limit\": \"\",";
postString += " \ "usage_counter_limit_customer\": \"10\",";
postString += " \ "cumulative_discount\": \"1\",";
postString += " }";
postString += "}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(postString);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
BufferedReader in ;
if (responseCode >= 200 && responseCode < 300){
in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
}else{
in = new BufferedReader(
new InputStreamReader(con.getErrorStream()));
}
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
} catch (Exception ex){
// Tratamento da Exception
}
String resposta = response.toString();
Parâmetros enviados
Campo | Tipo | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCoupon | JSON |
Dados do cupom |
code | String |
Nome do cupom. Obs: Neste campo não é aceito espaço e acentuação nas palavras |
description | String |
Descrição do cupom |
starts_at | Date |
Data de início da validade do cupom 0000-00-00 |
ends_at | Date |
Data final da validade do cupom 0000-00-00 |
value | Decimal |
Valor de desconto do cupom |
type | String |
Tipo de desconto em reais ou percentual. Tabela A |
value_start | Decimal |
Valor mínimo do produto para ser aplicado o desconto |
value_end | Decimal |
Valor máximo do produto para ser aplicado o desconto |
usage_sum_limit | Decimal |
Limita o valor do cupom |
usage_counter_limit | String |
Limita a quantidade de vezes que o cupom poderá ser usado no geral |
usage_counter_limit_customer | String |
Limita a quantidade de vezes que o cupom poderá ser utilizado por cliente |
cumulative_discount | Number |
Permitir que o cupom acumule o desconto com o desconto progressivo. Tabela B |
Observação: Ao utilizar somente o CUPOM GENÉRICO, sem realizar nenhum outro POST relacinando a clientes/produtos/categorias/marcas, o cupom poderá ser aplicado à toda a loja e à todos os clientes
Estrutura de Json
{
"DiscountCoupon": {
"code": "123",
"description": "Cupom criado pela API",
"starts_at": "2019-01-10",
"ends_at": "2019-01-20",
"value": "10.00",
"type": "$",
"value_start": "10",
"value_end": "100.00",
"usage_sum_limit": "",
"usage_counter_limit": "",
"usage_counter_limit_customer": "10",
"cumulative_discount": "1"
}
}
Observação: Caso não deseje limitar o valor do produto, para que o cupom seja aplicado a todos os produtos de quaisquer valores, você poderá enviar os campos "value_start", "value_end" vazios.
Se não desejar limitar a quantidade de uso do cupom, poderá também enviar esses campos vazios "usage_counter_limit", "usage_counter_limit_customer".
Esses campos `"usage_counter_limit":`, `"usage_counter_limit_customer":` precisam estar alinhados, pois um limita a quantidade em que o cupom poderá ser utilizado e outro limita quantas vezes o cupom poderá ser utilizado pelo mesmo cliente. Se desejar que o mesmo cliente utilize o cupom por duas vezes, o campo `"usage_counter_limit":` deverá conter a mesma quantidade, no caso 2, ou então ser enviado vazio, para não dar conflito na hora do consumidor aplicar o cupom.
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
CUPOM BÁSICO + LIMITAÇÕES (2/3/4/5/6/7/8)
Para inserir limitações de desconto, especificando clientes/produtos/categorias/marcas/frete, será necessário criar o CUPOM GENÉRICO primeiramente, conforme dados acima e posterior realizar um POST nas limitações específicas, conforme abaixo:
2 - RELACIONANDO CLIENTE NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O envio dos dados dentro do json, é limitado a 100 registros por POST. Dessa forma caso tenha 200 registros, será necessários enviar dois POST com 100 registros cada. Cada id dentro das chaves, representará um registro de informação.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponCustomer | JSON |
Dados do cupom |
customer_id | String |
Id do cliente |
Estrutura de Json
{
"DiscountCouponCustomer": [
{
"customer_id": "10"
},
{
"customer_id": "20"
}
]
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
3 - RELACIONANDO PRODUTOS NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O envio dos dados dentro do json, é limitado a 100 registros por POST. Dessa forma caso tenha 200 registros, será necessários enviar dois POST com 100 registros cada. Cada id dentro das chaves, representará um registro de informação.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponProduct | JSON |
Dados do cupom |
product_id | String |
Id do produto |
Estrutura de Json
{
"DiscountCouponProduct": [
{
"product_id": "10"
},
{
"product_id": "20"
}
]
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
4 - RELACIONANDO CATEGORIAS NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O envio dos dados dentro do json, é limitado a 100 registros por POST. Dessa forma caso tenha 200 registros, será necessários enviar dois POST com 100 registros cada. Cada id dentro das chaves, representará um registro de informação.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponCategory | JSON |
Dados do cupom |
category_id | String |
Id da categoria |
Estrutura de Json
{
"DiscountCouponCategory": [
{
"category_id": "10"
},
{
"category_id": "20"
}
]
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
5 - RELACIONANDO MARCAS NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O envio dos dados dentro do json, é limitado a 100 registros por POST. Dessa forma caso tenha 200 registros, será necessários enviar dois POST com 100 registros cada. Cada id dentro das chaves, representará um registro de informação.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponBrand | JSON |
Dados do cupom |
brand_id | String |
Id da marca |
Estrutura de Json
{
"DiscountCouponBrand": [
{
"brand_id": "10"
},
{
"brand_id": "20"
}
]
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
6 - RELACIONANDO FRETE GRÁTIS NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O envio dos dados dentro do json, é limitado a 100 registros por POST. Dessa forma caso tenha 200 registros, será necessários enviar dois POST com 100 registros cada. Cada id dentro das chaves, representará um registro de informação. Para informar o id do frete, você poderá capturar através dessa API: https://traydevelopers.zendesk.com/hc/pt-br/articles/360012934234-Listagem-de-Formas-de-Envio.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponShipping | JSON |
Dados do cupom |
shipping_id | String |
Id da forma de envio do frete |
Estrutura de Json
{
"DiscountCouponShipping": [
{
"shipping_id": "10"
},
{
"shipping_id": "20"
}
]
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
7 - RELACIONANDO DESCONTO NO FRETE NO CUPOM
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
O desconto no frete sempre será em reais, nunca será em percentual, mesmo que no cupom genérico o tipo de desconto no campo "type" tenha sido em percentual.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponShipping | JSON |
Dados do cupom |
value | String |
Valor do desconto |
Estrutura de Json
{
"DiscountCouponShipping": {
"value": "10"
}
}
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (201) |
Json de retorno
HTTP/1.1201 OK
{
"message": "Created",
"id": "1",
"code": 201
}
8 - CUPOM DE TROCA
Método POST
https://{api_address}/discount_coupons/create_relationship/:id/?access_token={token}
Após criar o “CUPOM GENÉRICO - BÁSICO”, é possível apenas enviar o código do pedido nos dados do json e o cupom será automaticamente relacionado ao cliente e o desconto será com base no valor do pedido.
Parâmetros enviados
Campo | Tipo (Tamanho) | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
DiscountCouponCustomer | JSON |
Dados do cupom |
order_id | String |
Id do pedido |
Estrutura de Json
{
"DiscountCouponCustomer": {
"order_id": "10"
}
}
Tabelas Auxiliares
Tabelas Auxiliares de Cupons
Tabela A - Tipo de desconto em reais ou percentual (campo type)
Valor | Descrição |
---|---|
$ | Desconto em reais |
% | Desconto em percentual |
Tabela B - Permitir que o cupom acumule o desconto com o desconto progressivo (campo cumulative_discount)
Valor | Descrição |
---|---|
0 | Desconto não acumulativo |
1 | Desconto acumulativo |
Excluir Cupom
Requisição para cancelar um cupom.
Método DELETE
Exclusão do cupom genérico
https://{api_address}/discount_coupons/:id/?access_token={token}
Código de Exemplo
<?php
$params["access_token"] = "### Chave de Acesso ###";
$url = "https://{api_address}/discount_coupons/123?".http_build_query($params);
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen(json_encode($data)))
);
curl_exec($ch);
// JSON de retorno
$resposta = json_decode(ob_get_contents());
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_end_clean();
curl_close($ch);
if($code == "200"){
//Tratamento dos dados de resposta da consulta.
}else{
//Tratamento das mensagens de erro
}
?>
string URLAuth = "https://{api_address}/discount_coupons/123";
NameValueCollection queryParameters = new NameValueCollection();
queryParameters.Add("access_token", "### Chave de Acesso ###");
List items = new List();
foreach (String name in queryParameters)
items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(queryParameters[name])));
string argsString = String.Join("&", items.ToArray());
HttpWebRequest webRequest = WebRequest.Create(URLAuth + "?" + argsString) as HttpWebRequest;
webRequest.Method = "DELETE";
webRequest.ContentType = "application/json";
StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();
responseReader.Close();
webRequest.GetResponse().Close();
String url = "https://{api_address}/discount_coupons/123";
StringBuffer response = null ;
try{
String access_token = "?access_token=### Chave de Acesso ###";
URL obj = new URL(url+access_token);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("DELETE");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
int responseCode = con.getResponseCode();
BufferedReader in ;
if (responseCode == 200){
in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
}else{
in = new BufferedReader(
new InputStreamReader(con.getErrorStream()));
}
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
} catch (Exception ex){
// Tratamento da Exception
}
String resposta = response.toString();
Parâmetros enviados
Campo | Tipo | Descrição |
---|---|---|
access_token | String |
Chave de acesso |
:id | Number |
Código do cupom |
Retorno em caso de sucesso (status code 200 ou 201)
Campo | Tipo | Descrição |
---|---|---|
message | String |
Mensagem de retorno |
id | Number |
Código do cupom |
code | Number |
Código do retorno (200) |
Json de retorno
HTTP/1.1 200 OK
{
"message": "Deleted",
"id": "123",
"code": 200
}
Exclusão do cupom que contenha produtos específicos, categorias, marcas, clientes ou fretes associados
Para excluir um produto que esteja relacionado ao produto, categoria, marca, cliente ou frete, é possível através dos métodos abaixo:
Método DELETE
https://{api_address}/delete_relationship/:id/?access_token={token}
Exemplo de remoção de cliente:
{
"DiscountCouponCustomer": [
{
"customer_id": "10"
},
{
"customer_id": "20"
}
]
}
Exemplo de remoção de TODOS os clientes:
{
"DiscountCouponCustomer":
{
"delete": "all"
}
}
Exemplo de remoção de produtos:
{
"DiscountCouponProduct": [
{
"product_id": "10"
},
{
"product_id": "20"
}
]
}
Exemplo de remoção de todos os produtos:
{
"DiscountCouponProduct":
{
"delete": "all"
}
}
Exemplo remoção de categorias:
{
"DiscountCouponCategory": [
{
"category_id": "10"
},
{
"category_id": "20"
}
]
}
Exemplo de remoção de todas as categorias:
{
"DiscountCouponCategory":
{
"delete": "all"
}
}
Exemplo de remoção de marcas:
{
"DiscountCouponBrand": [
{
"brand_id": "10"
},
{
"brand_id": "20"
}
]
}
Exemplo de remoção de todas as marcas:
{
"DiscountCouponBrand":
{
"delete": "all"
}
}
Exemplo de remoção de fretes ou desconto no frete:
{
"DiscountCouponShipping": [
{
"shipping_id": "10"
},
{
"shipping_id": "20"
}
]
}
Exemplo de remoção de todos os desconto de frete:
{
"DiscountCouponShipping":
{
"delete": "all"
}
}
Comentários