Órdenes
En esta sección se explican los Endpoints que permiten gestionar las órdenes de tu empresa.
Crear una Orden
Cuando se realice una compra en tu e-commerce utiliza este endpoint para indicarle a Buenvío que deseas crear una orden perteneciente a dicha compra, la orden puede contener varios paquetes a ser envíados a la dirección de tu comprador.
const params = {
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'address_street': 'Calle 1',
'address_building_number': '111',
'address_city': 2,
'address_reference': 'Esquina Calle 2',
'address_sector': 'Los Jardines',
'address_representative_name': 'Jane Doe',
'address_representative_phone': '(829) 555-5555',
'packages_quantity': 2,
'fragile_packages_quantity': 1,
};
const body = Object.keys(params)
.map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.join('&');
fetch('https://api.buenvio.com/business/v1/orders/', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
Authorization: '<YOUR_API_TOKEN>',
},
mode: 'cors',
body: body,
})
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
});
# Requiere usar la dependencia https://requests.readthedocs.io/en/master/
import requests
response = requests.post(
'https://api.buenvio.com/business/v1/orders/',
headers={
'Authorization': '<YOUR_API_TOKEN>'
},
data={
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'address_street': 'Calle 1',
'address_building_number': '111',
'address_city': 2,
'address_reference': 'Esquina Calle 2',
'address_sector': 'Los Jardines',
'address_representative_name': 'Jane Doe',
'address_representative_phone': '(829) 555-5555',
'packages_quantity': 2,
'fragile_packages_quantity': 1,
}
)
print(str(response.text)
// Requiere usar la dependencia http://docs.guzzlephp.org/
$client = new GuzzleHttp\Client();
$response = $client->request(
'POST',
'https://api.buenvio.com/business/v1/orders/',
[
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
],
'form_params' => [
'customer_name' => 'John Doe',
'customer_email' => '[email protected]',
'customer_phone' => '(809) 555-5555',
'product_cost' => 1000,
'address_street' => 'Calle 1',
'address_building_number' => '111',
'address_city' => 2,
'address_reference' => 'Esquina Calle 2',
'address_sector' => 'Los Jardines',
'address_representative_name' => 'Jane Doe',
'address_representative_phone' => '(829) 555-5555',
'packages_quantity' => 2,
'fragile_packages_quantity' => 1,
]
]
);
$data = json_decode($response->getBody());
var_dump($data);
$response = wp_remote_post(
'https://api.buenvio.com/business/v1/orders/',
[
'method' => 'POST',
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
],
'body' => [
'customer_name' => 'John Doe',
'customer_email' => '[email protected]',
'customer_phone' => '(809) 555-5555',
'product_cost' => 1000,
'address_street' => 'Calle 1',
'address_building_number' => '111',
'address_city' => 2,
'address_reference' => 'Esquina Calle 2',
'address_sector' => 'Los Jardines',
'address_representative_name' => 'Jane Doe',
'address_representative_phone' => '(829) 555-5555',
'packages_quantity' => 2,
'fragile_packages_quantity' => 1,
]
]
);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
var_dump($error_message);
} else {
var_dump($response);
}
// Requiere usar la dependencia https://pub.dev/packages/http/
import 'package:http/http.dart' as http;
http.post(
'https://api.buenvio.com/business/v1/orders/',
headers: {
'Authorization': '<YOUR_API_TOKEN>',
},
body: {
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'address_street': 'Calle 1',
'address_building_number': '111',
'address_city': 2,
'address_reference': 'Esquina Calle 2',
'address_sector': 'Los Jardines',
'address_representative_name': 'Jane Doe',
'address_representative_phone': '(829) 555-5555',
'packages_quantity': 2,
'fragile_packages_quantity': 1,
}
).then((response) {
print(response.body);
});
Parámetros de la Petición
customer_name |
|
|---|---|
| Descripción | Nombre del cliente. |
| Tipo | string |
| Validaciones | required |
customer_email |
|
| Descripción | Email del cliente. |
| Tipo | string |
| Validaciones | required, email |
customer_phone |
|
| Descripción | Teléfono del cliente. |
| Tipo | string regex con la expresión .\(\d{3}\) \d{3}-\d{4}, de forma que acepta: |
| Validaciones | required, regex:/\(\d{3}\) \d{3}-\d{4}/ |
product_cost |
|
| Descripción | Valor apróximado de los artículos envíados, este valor se toma en cuenta para el seguro de garantía que se ofrece por el envío de esta orden. |
| Tipo | float |
| Validaciones | required, numeric |
address_street |
|
| Descripción | Calle destino. |
| Tipo | string |
| Validaciones | required |
address_building_number |
|
| Descripción | Número de edificio destino. |
| Tipo | string |
| Validaciones | required |
address_city |
|
| Descripción | Ciudad destino. |
| Tipo | AddressCity |
| Validaciones | required, integer |
address_reference |
|
| Descripción | Referencia al destino. |
| Tipo | string |
| Validaciones | required |
address_sector |
|
| Descripción | Sector destino. |
| Tipo | string |
| Validaciones | required |
address_representative_name |
|
| Descripción | Nombre del contacto secundario. |
| Tipo | string |
| Validaciones | required |
address_representative_phone |
|
| Descripción | Teléfono del contacto secundario. |
| Tipo | string |
| Validaciones | required |
packages_quantity |
|
| Descripción | Indica la cantidad de paquetes contenidos en la orden. |
| Tipo | integer |
| Validaciones | required, integer |
fragile_packages_quantity |
|
| Descripción | Indica la cantidad de paquetes frágiles contenidos en la orden. |
| Tipo | integer |
| Validaciones | required, integer |
Parámetros de la Respuesta
message |
|
|---|---|
| Descripción | Explica el resultado de la petición. |
| Tipo | string |
ok |
|
| Descripción | Indica si la petición ha sido procesada exitosamente. |
| Tipo | bool |
order_id |
|
| Descripción | Número de la Orden. |
| Tipo | integer |
packages_identifiers |
|
| Descripción | Lista de identificadores únicos de los paquetes contenidos en la orden. |
| Tipo | array<string> |
Tipos Especiales de Parámetros
AddressCity
| Número | Ciudad que representa |
|---|---|
| 1 | Santo Domingo |
| 2 | Santiago de los Caballeros |
| 3 | San Pedro De Macorís |
| 4 | La Romana |
| 5 | La Altagracia |
| 6 | San Cristóbal |
| 7 | San Francisco de Macorís |
| 8 | Boca Chica - Este |
| 9 | San Felipe - Puerto Plata |
| 10 | Boca Chica - Oeste |
| 11 | Santa Cruz de Barahona |
| 12 | Baní |
| 13 | San Juan de la Maguana |
| 14 | Bonao |
| 15 | Moca |
| 16 | Azua de Compostela |
| 17 | Cotuí |
| 18 | Santa Cruz de El Seibo |
| 19 | Jarabacoa |
| 20 | Nagua |
| 21 | Santa Bárbara de Samaná |
| 22 | Tamboril |
| 23 | Mao |
| 24 | Esperanza |
| 25 | Pedro Brand |
| 26 | Sosúa |
| 27 | Hato Mayor del Rey |
| 28 | Constanza |
| 29 | Villa Bisonó |
| 30 | Salcedo |
| 31 | Villa Altagracia |
| 32 | Las Matas de Farfán |
| 33 | Monte Plata |
| 34 | Yamasá |
| 35 | San Ignacio de Sabaneta |
| 36 | San José de Las Matas |
| 37 | San Antonio de Guerra |
| 38 | San José de Ocoa |
Rastrear una Orden
Cuando una orden ya ha sido creada y depositada en Buenvío, podrás usar este endpoint para rastrear los paquetes contenidos en dicha orden y ver los distintos puntos por los que han pasado hasta llegar a su destino.
fetch(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
{
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Authorization': '<YOUR_API_TOKEN>'
},
mode: 'cors',
}).then(response => {
return response.json();
}).then(data => {
console.log(data);
});
# Requiere usar la dependencia https://requests.readthedocs.io/en/master/
import requests
response = requests.get(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
headers={
'Authorization': '<YOUR_API_TOKEN>'
}
)
print(str(response.text)
// Requiere usar la dependencia http://docs.guzzlephp.org/
$client = new GuzzleHttp\Client();
$response = $client->request(
'POST',
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
[
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
$data = json_decode($response->getBody());
var_dump($data);
$response = wp_remote_post(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
[
'method' => 'POST',
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
var_dump($error_message);
} else {
var_dump($response);
}
// Requiere usar la dependencia https://pub.dev/packages/http/
import 'package:http/http.dart' as http;
http.post(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
headers: {
'Authorization': '<YOUR_API_TOKEN>',
}
).then((response) {
print(response.body);
});
Parámetros de la Petición
order_id |
|
|---|---|
| Descripción | Número de la Orden. |
| Tipo | integer |
| Validaciones | required, integer |
Parámetros de la Respuesta
message |
|
|---|---|
| Descripción | Explica el resultado de la petición. |
| Tipo | string |
ok |
|
| Descripción | Indica si la petición ha sido procesada exitosamente. |
| Tipo | bool |
order_tracks |
|
| Descripción | Lista de los paquetes contenidos en la orden con sus respectivos rastreos. |
| Tipo | array<Package> |
Tipos Especiales de Parámetros
Package
track |
|
|---|---|
| Descripción | Lista de los rastreos del paquete. |
| Tipo | array<PackageTrack> |
package_identifier |
|
| Descripción | Identificador único del paquete. |
| Tipo | string |
status |
|
| Descripción | Estado actual del paquete. |
| Tipo | string |
| Valores |
Pendiente a Recibir,
Recibido en Origen,
En Transito,
Pendiente de Entrega,
Entregado,
Pendiente de Devolver,
En Camino de Devolver,
Listo para Devolver,
Devuelto
|
PackageTrack
has_shipped |
|
|---|---|
| Descripción | Indica si el paquete ya ha sido despachado del sitio donde fue recibido. |
| Tipo | bool |
received_date |
|
| Descripción | Fecha en la que el paquete fue recibido. |
| Tipo | string |
received_by |
|
| Descripción | Chófer o Punto Afiliado de Buenvío que recibió el paquete. |
| Tipo | string |