Gerenciamento de Ordens de Carrinho

Com a estrutura atual do JSON de Orders, as informações de envio não estão mais disponíveis, estará apenas a identificação e, então, as informações adicionais devem ser procuradas no recurso /shipments. Além disso, a resposta não retorna o campo total_amount_with_shipping.

Conteúdos

→JSON
→Considerações
→Obter informação de envio
→Cálculo do total_amount_with_shipping

Nota:
Para trabalhar com o JSON atualizado, ao fazer o GET, você deverá enviar o parâmetro "x-format-new: true". O restante da estrutura do recurso continuará funcionando da mesma forma, com algumas alterações que você deverá levar em conta.
curl -X GET -H x-format-new: true https://api.mercadolibre.com/orders/order_id?access_token=$ACCESS_TOKEN

JSON

{
    "id": 2053577644,
    "date_created": "2019-06-13T09:20:02.000-04:00",
    "date_closed": "2019-06-13T09:20:08.000-04:00",
    "last_updated": "2019-06-13T09:20:08.000-04:00",
    "manufacturing_ending_date": null,
    "feedback": {
        "sale": null,
        "purchase": null
    },
    "mediations": [],
    "comments": null,
    "pack_id": 2000000101334825,
    "pickup_id": null,
    "order_request": {
        "return": null,
        "change": null
    },
    "fulfilled": null,
    "total_amount": 9.99,
    "paid_amount": 9.99,
    "coupon": {
        "id": null,
        "amount": 0
    },
    "expiration_date": "2019-07-11T09:20:08.000-04:00",
    "order_items": [
        
            "item": {
                "id": "MLB1226730704",
                "title": "Produto Teste - Não Ofertar",
                "category_id": "MLB11742",
                "variation_id": null,
                "seller_custom_field": null,
                "variation_attributes": [],
                "warranty": "12 months",
                "condition": "new",
                "seller_sku": null
            },
            "quantity": 1,
            "unit_price": 9.99,
            "full_unit_price": 9.99,
            "currency_id": "BRL",
            "manufacturing_days": null
        
    ],
    "currency_id": "BRL",
    "payments": [
        
            "id": 4863317779,
            "order_id": 2053577644,
            "payer_id": 419067349,
            "collector": {
                "id": 419059118
            },
            "card_id": null,
            "site_id": "MLB",
            "reason": "Produto Teste - Não Ofertar",
            "payment_method_id": "account_money",
            "currency_id": "BRL",
            "installments": 1,
            "issuer_id": null,
            "atm_transfer_reference": {
                "company_id": null,
                "transaction_id": null
            },
            "coupon_id": null,
            "activation_uri": null,
            "operation_type": "regular_payment",
            "payment_type": "account_money",
            "available_actions": [
                "refund"
            ],
            "status": "approved",
            "status_code": null,
            "status_detail": "accredited",
            "transaction_amount": 9.99,
            "taxes_amount": 0,
            "shipping_cost": 0,
            "coupon_amount": 0,
            "overpaid_amount": 0,
            "total_paid_amount": 9.99,
            "installment_amount": null,
            "deferred_period": null,
            "date_approved": "2019-06-13T09:20:07.000-04:00",
            "authorization_code": null,
            "transaction_order_id": null,
            "date_created": "2019-06-13T09:20:07.000-04:00",
            "date_last_modified": "2019-06-13T09:20:07.000-04:00"
        
    ],
    "shipping": {
        "id": 27987243797
    },
    "status": "paid",
    "status_detail": null,
    "tags": [
        "test_order",
        "pack_order",
        "paid"
    ],
    "buyer": {
        "id": 419067349,
        "nickname": "TT763866",
        "email": "ttest.6hqmq6+2-ogiydkmzvg43tmobx@mail.mercadolivre.com",        },
        "first_name": "Test",
        "last_name": "Test",
        "billing_info": {
            "doc_type": "CPF",
            "doc_number": "78525276200"
        
    },
    "seller": {
        "id": 419059118,
        "nickname": "TETE8288849",
        "email": "ttest.hpz2z6q+2-ogiydkmzvg43tmobs@mail.mercadolivre.com",
        "phone": {
            "area_code": "01",
            "extension": "",
            "number": "1111-1111",
            "verified": false
        },
        "alternative_phone": {
            "area_code": "",
            "extension": "",
            "number": ""
        },
        "first_name": "Test",
        "last_name": "Test"
    },
    "taxes": {
        "amount": null,
        "currency_id": null
    
}
Nota:
A resposta não retorna o campo total_amount_with_shipping que deve ser calculado.

Para entender a que refere cada um dos parâmetros, faça a seguinte chamada:

curl -X GET https://api.mercadolibre.com/orders/order_id?options&access_token=$ACCESS_TOKEN

Revise a documentação de recurso de Ordens para ver mais informações.


Obter informação de envio

Revise a documentação de recurso de Shipments para ver mais informações.


Cálculo do total_amount_with_shipping

Com a resposta obtida na chamada a GET /orders/:id com o header x-format-new: true e a chamada ao recurso GET /shipments/:shipping_id deve realizar o seguinte cálculo:

total_amount_with_shipping = total_amount + taxes.amount * + shipping_options.cost *

*Na mesma moeda do item.

Importante:
Nos casos em que taxes.currency_id é diferente de items.currency_id é necessário realizar a conversão:

Chamada:

curl -X GET  https://api.mercadolibre.com/currency_conversions/search?from=$CURRENCY_ID&to=$CURRENCY_ID

Exemplo:

curl -X GET  https://api.mercadolibre.com/currency_conversions/search?from=ARS&to=BRL

Resposta:

{
  "ratio": 0.0704988
}


Considerações

  • A tag "pack_order" é gerada automaticamente para poder discriminar se a ordem é associada a um carrinho e não poderá ser removida pelo comprador nem pelo vendedor.
  • O campo "pack_id" mostra o número do carrinho ao qual a ordem pertence.
  • Caso a ordem não esteja associada a um Carrinho de Compras e a transação seja sob a modalidade "combinar com o vendedor", você não receberá mais o status to be agreed, mas o shipping ID virá diretamente como nule. Isso indicará que você deve entrar em contato com o comprador para combinar a forma de envio.
  • Você só terá a ID do envio, e terá que procurar as informações nos novos recursos de Shipping.
  • Existe a possibilidade de que, ainda existindo uma ordem, o envio demore a ser criado. Nesses casos, a ID será nula até sua criação. Quando isso acontecer, você será notificado.
  • As tags “delivered/not delivered” não serão mais adicionadas automaticamente. Somente existirá a marca caso o integrador realize um PUT com a tag definida.
  • As ordens em status paid serão canceladas se o pagamento for rejeitado ou devolvido. Caso isso aconteça, você receberá uma notificação para poder conhecer a alteração no status da ordem.
Nota:
A Ordem continuará mostrando o campo "seller_custom_field", mas apresentará a informação de SKU. 1- SELLER_SKU de atributos de variação 2- seller_custom_field de variação 3- SELLER_SKU de atributos de item 4- seller_custom_field de item.


Seguinte: Gerenciamento de Envios.

ou registre-se para receber as últimas notícias sobre nossa API