Ó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
- Nota: Esta lista contempla todas las ciudades que puede haber en el sistema, pero es posible que no todas estén disponibles para realizar delivery. Para obtener la lista de ciudades disponibles actualmente para delivery favor revisar la Referencia de Ciudades.
Número | Ciudad que representa |
---|---|
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 |
39 | La Vega |
40 | Santo Domingo Este |
41 | Santo Domingo Norte |
42 | Santo Domingo Oeste |
43 | Santo Domingo Distrito Nacional |
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 |