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"
	}
}
Bruna Lourencini 
Tem mais dúvidas? Envie uma solicitação

Comentários

    Artigos nessa seção

    Powered by Zendesk