Búsqueda

Se pueden hacer búsquedas como esta:

GET /v2/orders?q[payment_state_eq]=balance_due&q[completed_at_not_null]=true

El ejemplo anterior busca ordenes completas, pendientes de pago (balance_due).

La API de búsqueda la provee la gema Ransack, y para entender cómo se hacen las queries se puede leer ladocumentación en la wiki de Ransack.

Más allá de las búsquedas esta api permite los siguientes parámetros:

  • view: Determinar que vista de la orden queremos que nos devuelva
  • per_page: La cantidad de ordenes por página que queremos buscar. Recomendamos utilizar un máximo de 25.
  • page: La página puntual que queremos que nos devuelva. Sirve para iterar por las distintas páginas.

La respuesta es la siguiente

{
    "count": 8,
    "current_page": 1,
    "pages": 1,
    "orders": []
}
  • count: Cantidad de ordenes que cumplen con los filtros
  • current_page: Página actual
  • pages: Cantidad total de páginas.

Debajo desarrollamos algunos ejemplos de las búsquedas más útiles.

GET /v2/orders?q[shipments_tracking_state_eq]=pending_manifest&q[shipment_state_eq]=shipped&q[state_in][]=complete&q[state_in][]=resumed

Esta búsqueda devuelve ordenes completas (o resumidas), enviadas, listas para facturar (pending_manifest)

GET /v2/orders?q[shipments_tracking_state_eq]=pending_tracking&q[shipment_state_eq]=shipped&q[state_in][]=complete&q[state_in][]=resumed

Esta búsqueda devuelve ordenes completas (o resumidas), enviadas, listas para generar la guía (pending_tracking)

GET /v2/orders?q[payment_state_eq]=credit_owed&q[state_in][]=complete&q[state_in][]=resumed

Esta búsqueda devuelve ordenes completas (o resumidas) con crédito excedente.


Modificación de productos

Api que permite cambiar la cantidad en cada line item de una orden completa. La respuesta de la misma es el json de la orden

PUT /orders/:order_number/line_items/:line_item_id
{
    "line_item": 
                {
                   "quantity": 4 #nueva cantidad total
                }
}

Modificación masiva de productos

Api que permite modificar la orden. La respuesta de la misma es el json de la orden. Servirá en los que querramos modificar varios productos de la orden

PUT /orders/:order_number
{
    "order":
        {
            "line_items_attributes":
                {
                    "1":
                        {
                            "id": 1197317,
                            "quantity": 1
                        },

                    "2":
                        {
                            "variant_id": 53888,
                            "quantity": 2
                        },

                    "3":
                        {
                            "id": 1197318,
                            "quantity": 0
                        }

                }

        }

}

En el ejemplo anterior el request cambiara la cantidad del line item con id 1197317 ya creado a 1, agregará a la orden 2 unidades de la variante con id 53888 y borrará el line item con id 1197318.


GET

La api de Get está ejemplificada en https://developers.clastia.com/json_de_la_orden.html


Actualizar monto y capturar un pago de la orden

Esta api la utilizaremos en el caso de aplicaciones que utilicen transacciones en dos pasos, es decir primero autorizar un cobro sobre la tarjeta, y en un momento posterior realizar el cobro del mismo (monto igual, mayor o menor)

La api cargará a la tarjeta el monto total de la orden al momento de hacer el request.

PUT /orders/:order_number/payments/:payment_id/update_and_capture

La respuesta de esta api es el json del payment. El dato de source es el que contiene datos referidos al gateway de pago, por lo que dependiendo a que medio de pago corresponda, es la información que va a devolver.

Ejemplo de respuesta pago con Decidir en 2 pasos:

{
  "id": 817979,
  "source_type": "SpreeDecidir::CustomSourceV3",
  "source_id": 36,
  "amount": "691.0",
  "display_amount": "$691",
  "payment_method_id": 102,
  "response_code": null,
  "state": "completed",
  "avs_response": null,
  "created_at": "2017-11-21T15:24:48.190-03:00",
  "updated_at": "2017-11-28T15:17:24.028-03:00",
  "identifier": "CMNEVBKS",
  "source": {
    "cardholder_name": null,
    "cardholder_document": null,
    "installment_plan": {
      "id": 381,
      "installments": 1
    },
    "financial_corporation": {
      "id": 5,
      "name": "Todos los bancos"
    },
    "credit_card_type": {
      "id": 1,
      "name": "VISA",
      "code": "VI"
    },
    "token_response": {
      "id": "19da10fc-2b6e-4a2c-ba1f-31054875102f",
      "status": "active",
      "card_number_length": "16",
      "date_created": "2017-11-21T18:26Z",
      "bin": "450799",
      "last_four_digits": "4905",
      "security_code_length": "3",
      "expiration_month": "8",
      "expiration_year": "20",
      "date_due": "2017-11-21T20:56Z",
      "cardholder": {
        "name": "Jonh Doe",
        "identification": {
          "type": "dni",
          "number": "25123456"
        }
      }
    },
    "confirmation_response": {
      "id": 707145,
      "site_transaction_id": "CMNEVBKS",
      "payment_method_id": 1,
      "amount": 69100,
      "currency": "ars",
      "status": "pre_approved",
      "status_details": {
        "ticket": "312",
        "card_authorization_code": "182612",
        "address_validation_code": "VTE0011",
        "error": null
      },
      "date": "2017-11-21T18:26Z",
      "customer": {
        "id": "574678"
      },
      "bin": "450799",
      "installments": 1,
      "payment_type": "single",
      "sub_payments": [],
      "site_id": null,
      "fraud_detection": null,
      "aggregate_data": null,
      "establishment_name": null,
      "spv": null,
      "confirmed": null,
      "pan": null,
      "capture_response": {
        "id": 707145,
        "site_transaction_id": "CMNEVBKS",
        "payment_method_id": 1,
        "amount": 69100,
        "currency": "ars",
        "status": "approved",
        "status_details": {
          "ticket": "312",
          "card_authorization_code": "182612",
          "address_validation_code": "VTE0011",
          "error": null
        },
        "date": "2017-11-21T18:26Z",
        "customer": {
          "id": "574678"
        },
        "bin": "450799",
        "installments": 1,
        "first_installment_expiration_date": null,
        "payment_type": "single",
        "sub_payments": [],
        "site_id": null,
        "fraud_detection": null,
        "aggregate_data": null,
        "establishment_name": null,
        "spv": null,
        "confirmed": {
          "id": 100,
          "origin_amount": 69100,
          "date": "2017-11-28T03:00Z"
        },
        "pan": null
      }
    },
    "failure_message": null,
    "now_12": false
  },
  "payment_method": {
    "id": 102,
    "name": "Decidir Custom V3",
    "environment": "development"
  }
}

Cancelar una orden

Esta API se llama a la hora de cancelar una orden.

PUT /v2/orders/:order_number/cancel

Dentro del cuerpo del request, se requiere enviar un objeto order_cancellation con los siguientes parámetros:

  • return_stock(boolean): Indica si al cancelar la orden se devuelve o no el stock relacionado a la misma

  • cancel_reason(string): Explica la razón por la cuál se decidio cancelar la orden. Las razones que la API reconoce son las siguientes:

  • administrative

  • chargeback_confirmed

  • delay
  • fraud
  • fraud_confirmed
  • information_request
  • insufficient_funds
  • lack_of_stock
  • repentance
  • user_mistake
{
    "order_cancellation": {
        "cancel_reason": "administrative",
        "return_stock": true
    }
}

En este ejemplo, se cancela la orden indicando que la razón es administrativa y se requiere la devolución del stock implicado en la orden cancelada.

results matching ""

    No results matching ""