Comunidade

Ask a Question

Que tipo de erro é este?

App\\Listeners\\CartFailure\\CreateCartFailureListener::messageMessage(): Return value must be of type string, array returned

Dúvidas sobre as webhooks e rastreio

Olá. Estou começando uma integração própria com a API do melhor envio e gostaria de perguntar sobre webhooks e rastreio. Gostaria de saber quais eventos são enviados via webhook para minha aplicação. Se houver exemplos de payloads seria muito útil também. Sobre rastreio, gostaríamos de fazê-lo de forma transparente em nossa plataforma. Há alguma forma de obter informações de rastreio ou recebê-las por webhooks? No endpoint de rastreio da etiqueta (/api/v2/me/shipment/tracking), é apenas retornado um id de tracking que, pelo que entendi, serve para ser utilizado no Melhor Rastreio. Porém, gostaríamos de apresentar as informações de rastreio em nosso site, para nossos usuários, e seria interessante obter estas informações via API ou webhooks. Isso seria possível? Fico no aguardo.

Erro ao cotar frete de produto com quantidade maior que 100

Olá, boa tarde! Estou enfrentando um erro ao tentar cotar o frete de um produto com mais de 100 unidades. Recebo o seguinte retorno: ```json [ { "company": { "id":1, "name":"Correios", "picture":"https://melhorenvio.com.br/images/shipping-companies/correios.png" }, "error":"Serviço indisponível no momento", "id":1, "name":"PAC" } ] ``` Isso para todos os serviços, enviei o exemplo acima com o PAC apenas para demonstração. Segue exemplo da requisição sendo enviada: URI: <https://www.melhorenvio.com.br/api/v2/me/shipment/calculate> Body: ```json { "from": { "postal_code": "95034970", "address": "", "number": "1" }, "to": { "postal_code": "97105120", "address": "", "number": "2" }, "products": [ { "id": "folha", "weight": "0.0100", "width": "11", "height": "2", "length": "16", "quantity": 101, "insurance_value": 0 } ], "options": { "receipt": "0", "own_hand": "0", "collect": false }, "services": "1" } ``` Importante destacar que se alterar o campo `quantity` para qualquer valor inferior ou igual a 100, tudo funciona corretamente. Gostaria de saber se há alguma limitação em relação a este campo.

oauth token sem pre com resposatas negativas

ola eu estou desenvolvendo um sistema erp, e me cadastrei para utilizar a api, ja tem client_id o client_secret url de redirecionamento mas toda a vezes que eu tento autenticação me da não autorizado {"error":"invalid_client","error_description":"Client authentication failed","message":"Client authentication failed"} ou { "error": "invalid_client", "error_description": "Client authentication failed", "message": "Client authentication failed" } estou m ambiente de teste

Marketplace com melhor envio - um frete para cada loja de um pedido.

Olá pessoal! Tudo bem com vcs? Preciso de ajuda, preciso fazer um marketplace em que varias lojas possam ser cadastradas e que o cliente possa comprar produtos de varios fornecedores diferentes. Como eu faço para que calcule um frete para cada loja na hora do pagamento do pedido?

Homolog

Boa tarde. Eu estou desenvolvendo um e-commerce propio e estou usando a api de calcular frete. Precisa fazer o pedido de Homologação para essa api?

Erro ao adicionar um frete da LATAM no carrinho

Ao tentar adicionar um frete da LATAM no carrinho eu recebo o seguinte erro: "Envios sem solicitação de coleta requerem uma unidade LATAM Cargo válida selecionada". Então eu acessei "<https://melhorenvio.com.br/api/v2/me/shipment/agencies"> para listar as agências, mas não encontrei nenhuma da LATAM, como eu resolvo isso?

como obter access_token

Iniciei agora a integração para inicialmente somente obter o calculo de fretes, fiz o cadastro na sand box, porem estou tendo problemas em ter um exemplo de como ter o access_token, poderiam me ajudar? se tiver algo em C# me ajudaria bastante.

"has_grouped_volumes"

Na API de listagem de transportadoras (<https://melhorenvio.com.br/api/v2/me/shipment/companies>), existe este campo, que possui valor 0 ou 1. Pelo nome do campo, dá a entender que ele indica se a transportadora aceita múltiplos volumes ("volumes agrupados") ao adicionar ao carrinho. Nas documentações das APIs de compra de fretes e no fluxograma de integração da compra de fretes, só é citado que os Correios não aceitam múltiplos volumes de uma vez ao adicionar ao carrinho, porém, nesta API, outras transportadoras possuem este campo com o valor 0. Como este campo (bem como outros campos desta mesma API) não está documentado, a minha dúvida é: este campo indica mesmo o que eu estou pensando que ele indica? É seguro confiar no valor deste campo para enviar diversos volumes de uma vez?

Obtenho sucesso na resposta porém o servidor me devolve null.

Sou desenvolvedor e estou consumindo a api usando Webclient - spring boot + java. Obtenho a resposta 200 ok. Porém no console eu obtenho: MelhorEnvioResponse(id=null, name=null, price=null, customPrice=null, discount=null, currency=null, deliveryTime=null, deliveryRange=null, customDeliveryTime=null, customDeliveryRange=null, packages=null, dimensions=null) Estou usando o token do sandbox; Não estou usando refresh_token; Segue os principais parâmetros... ``` @Service public class MelhorEnvioService { private final WebClient webClient; public MelhorEnvioService() { this.webClient = WebClient.builder() .baseUrl(ApiTokenIntegracao.URL_MELHOR_ENVIO_SAND_BOX + "api/v2/me/shipment") .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) .defaultHeader(HttpHeaders.USER_AGENT, "[email protected]") .build(); } public Mono<MelhorEnvioResponse> calculateShipping() { MelhorEnvioRequest request = new MelhorEnvioRequest(); try { return webClient.post() .uri("/calculate") .header(HttpHeaders.AUTHORIZATION, "Bearer " + ApiTokenIntegracao.TOKEN_MELHOR_ENVIO) .body(BodyInserters.fromValue(request)) .exchange() .flatMap(response -> response.bodyToMono(MelhorEnvioResponse.class)) .doOnSuccess(response -> System.out.println(response.toString())); } catch (Exception e) { e.printStackTrace(); throw e; } } } ``` ``` @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class MelhorEnvioRequest implements Serializable { private From from; private To to; private List<ProductDto> products; private Options options; } ``` ``` @Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString public class MelhorEnvioResponse implements Serializable { private Integer id; private String name; private String price; @JsonProperty(value = "custom_price") private String customPrice; private String discount; private String currency; @JsonProperty(value = "delivery_time") private Integer deliveryTime; @JsonProperty(value = "delivery_range") private DeliveryRange deliveryRange; private Integer customDeliveryTime; private CustomDeliveryRange customDeliveryRange; private Packages packages; private Dimensions dimensions; } ``` ``` @RestController @RequestMapping(value = "/shipment") public class CalculateShipping { @Autowired private MelhorEnvioService service; @PostMapping("/consult") public Mono<ResponseEntity<MelhorEnvioResponse>> calculateShipping() { return service.calculateShipping() .map(response -> ResponseEntity.ok(response)) .onErrorResume(error -> Mono.just(ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build())); } } ``` Desde já agradeço a atenção; Estou à disposição.