Tạo đơn
- cURL
- JavaScript
curl --request POST \
--url https://apistg.ahamove.com/v1/order/create \
--header 'Cache-Control: no-cache' \
--header 'accept: application/json' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-urlencode 'service_id=SGN-BIKE' \
--data-urlencode 'payment_method=CASH' \
--data-urlencode 'promo_code=KHUYENMAI' \
--data-urlencode 'remarks=This is note for order' \
--data-urlencode 'order_time=0' \
--data-urlencode 'requests=[{"_id":"SGN-BIKE-TIP","num":2}]' \
--data-urlencode 'path=[{"lat":10.7692105,"lng":106.6637935,"address":"725 Hẻm số 7 Thành Thái, Phường 14, Quận 10, Hồ Chí Minh, Việt Nam","short_address":"Quận 10","name":"nmbmb","mobile":"84xxxxxxxxx"},{"lat":10.7828887,"lng":106.704898,"address":"Miss Ao Dai Building, 21 Nguyễn Trung Ngạn, Bến Nghé, Quận 1, Hồ Chí Minh, Vietnam","name":"Bao","mobile":"84xxxxxxxxx","remarks":"call me","cod":85000,"tracking_number":"1234"}]' \
--data-urlencode 'items=[{"_id": "TS","num": 2,"name": "Sua tuoi","price": 15000},{"_id": "ST","num": 2,"name": "Sinh to","price": 30000}]' \
--data-urlencode 'token=<TOKEN_STG>'
var myHeaders = new Headers();
myHeaders.append('accept', 'application/json');
myHeaders.append('content-type', 'application/x-www-form-urlencoded');
var urlencoded = new URLSearchParams();
urlencoded.append('service_id', 'SGN-BIKE');
urlencoded.append('payment_method', 'CASH');
urlencoded.append('promo_code', 'KHUYENMAI');
urlencoded.append('remarks', 'This is note for order');
urlencoded.append('order_time', '0');
urlencoded.append('requests', '[{"_id":"SGN-BIKE-TIP","num":2}]');
urlencoded.append(
'path',
'[{"lat":10.7692105,"lng":106.6637935,"address":"725 Hẻm số 7 Thành Thái, Phường 14, Quận 10, Hồ Chí Minh, Việt Nam","short_address":"Quận 10","name":"nmbmb","mobile":"84xxxxxxxxx"},{"lat":10.7828887,"lng":106.704898,"address":"Miss Ao Dai Building, 21 Nguyễn Trung Ngạn, Bến Nghé, Quận 1, Hồ Chí Minh, Vietnam","name":"Bao","mobile":"84xxxxxxxxx","remarks":"call me","cod":85000,"tracking_number":"1234"}]'
);
urlencoded.append("items", "[{"_id": "TS","num": 2,"name": "Sua tuoi","price": 15000},{"_id": "ST","num": 2,"name": "Sinh to","price": 30000}]");
urlencoded.append('token', '<TOKEN_STG>');
urlencoded.append('conversion_data', '');
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: urlencoded,
redirect: 'follow',
};
fetch('https://apistg.ahamove.com/v1/order/create', requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log('error', error));
Tạo đơn hàng mới bởi người dùng (hỗ trợ cả 2 phương thức GET/POST)
HTTP Request
POST https://apistg.ahamove.com/v1/order/create
(x-wwww-form-urlencoded)
or
GET https://apistg.ahamove.com/v1/order/create
Parameters
# Parameters
{
"order_time": 0,
"path": [
{
"lat": 10.7692105,
"lng": 106.6637935,
"address": "725 Hẻm số 7 Thành Thái, Phường 14, Quận 10, Hồ Chí Minh, Việt Nam",
"short_address": "Quận 10",
"name": "nmbmb",
"mobile":"84xxxxxxxxx"
},
{
"lat": 10.7828887,
"lng": 106.704898,
"address": "Miss Ao Dai Building, 21 Nguyễn Trung Ngạn, Bến Nghé, Quận 1, Hồ Chí Minh, Vietnam",
"name": "Bao",
"mobile":"84xxxxxxxxx",
"remarks": "call me",
"cod": 85000,
"tracking_number": "1234"
}
],
"service_id": "SGN-BIKE",
"remarks":"This is note for order",
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 2
}
],
"images": [],
"promo_code": "KHUYENMAI",
"remarks": "Call me when arrived",
"payment_method": "CASH",
"items": [
{
"_id": "TS",
"num": 2,
"name": "Sua tuoi",
"price": 15000
},
{
"_id": "ST",
"num": 2,
"name": "Sinh to lua mach",
"price": 30000
}
]
}
Parameter | Type | Yêu cầu | Mô tả |
---|---|---|---|
token | String | Có | Token của người dùng |
order_time | Number (Unix timestamp) | Có | Thời gian lấy hàng. Để là 0 để đơn hàng giao ngay |
path | String | Có | Ít nhất 2 phần (được mô tả chi tiết hơn ở bên dưới) |
service_id | String | Có | Mã dịch vụ của AhaMove (SGN-BIKE, SGN-POOL, etc.). |
requests | Array | Có | Dãy JSON thể hiện các yêu cầu đặc biệt |
payment_method | String | Có | Phương thức thanh toán được chọn bởi người gửi (BALANCE hoặc CASH/CASH_BY_RECIPIENT)- Yêu cầu trên production sau ngày 1 tháng 12 năm 2019 |
images | Array | Không | Dãy JSON thể hiện cho urls của hình ảnh |
promo_code | String | Không | Mã khuyến mãi để giảm giá phí giao hàng |
remarks | String | Không | Chú thích |
idle_until | Number (Unix timestamp) | Có | Thời gian broadcast. Đặt idle_until=order_time nếu order_time > 0. Không bắt buộc nếu order_time là 0. |
items | Array | Không | Dãy JSON thể hiện cho các mặt hàng (Đối với các Đối tác ngành hàng thực phẩm) |
type | String | Không | Loại đơn hàng, ví dụ: warehouse, etc … Xem như những trường hợp bình thường nếu loại đơn hàng không phải loại đặc biệt |
need_optimize_route | Boolean | Không | Trong trường hợp nếu Đối tác muốn Ahamove tối ưu giao hàng (1 điểm lấy hàng, > 2 điểm giao hàng) |
Path
Hiển thị từ path[0]
đến nhiều path[x], x > 0
Parameter | Type | Yêu cầu | Mô tả |
---|---|---|---|
address | String | Có | Địa chỉ |
lat | Number | Có | Vĩ độ của địa điểm (Không bắt buộc nhưng đề xuất Đối tác nên sử dụng) |
lng | Number | Có | Kinh độ của địa điểm (Không bắt buộc nhưng đề xuất Đối tác nên sử dụng) |
name | String | Có | Tên người nhận. Không bắt buộc nếu là path[0] |
mobile | String | Có | Số điện thoại người nhận. Không bắt buộc nếu là path[0] |
tracking_number | String | Không | Mã theo dõi của gói hàng (Mã đơn hàng nội bộ của Đối tác, không bắt buộc nhưng Ahamove đề xuất nên có mã này trong path[x] ) |
remarks | String | Không | Chú thích dành cho tài xế,cho nhiều điểm giao hàng |
cod | Number | Không | Số lượng COD (Cash on delivery), cho nhiều điểm giao hàng |
require_pod | Boolean | Không | Nếu true, tài xế sẽ được yêu cầu chụp bằng chức xác nhận giao hàng trước khi giao dịch |
building | String | Không | Tên tòa nhà cho dịch vụ giao hàng tận tay |
apt_number | String | Không | Tên căn hộ hoặc số tầng cho dịch vụ giao hàng tận tay |
sender_name | String | Không | Tên người gửi, cho nhiều điểm giao hàng |
sender_mobile | String | Không | Số điện thoại người gửi, cho nhiều điểm giao hàng |
lat
andlng
là không bắt buộc nhưng trườngaddress
trong parameters cần phải đầy đủ thông tin và theo đúng định dạng như bên dưới:
user_free_text_input
,ward
,province/district
,city
Ex: 135 Nam Kỳ Khởi Nghĩa, Bến Thành, Quận 1, Hồ Chí Minh
Response
JSON response example:
{
"order_id": "USAGND",
"status": "ASSIGNING",
"shared_link": "https://cloudstg.ahamove.com/share-order/USAGND/84909055578",
"order": {
"_id": "USAGND",
"currency": "VND",
"user_main_account": 0,
"user_bonus_account": 0,
"total_pay": 33000,
"distance": 1.02,
"duration": 268,
"distance_fee": 23000,
"request_fee": 10000,
"stop_fee": 0,
"vat_fee": 0,
"discount": 0,
"path": [
{
"address": "Nhà Thờ Đức Bà, Vietnam",
"lat": 10.7797855,
"lng": 106.6990189
},
{
"address": "Chợ Bến Thành, Vietnam",
"lat": 10.7725451,
"lng": 106.6980413
}
],
"from_location": {
"type": "Point",
"coordinates": [106.6990189, 10.7797855]
},
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 2
}
],
"items": [],
"total_fee": 33000,
"remarks": "This is note for order",
"app": "Ahamove",
"service_id": "SGN-BIKE",
"city_id": "SGN",
"user_id": "84xxxxxxxxx",
"user_name": "TEST CREATE AN ORDER",
"user_imei": null,
"create_time": 1565577713.2757928,
"order_time": 1565577713.2757928,
"index": 12,
"status": "ASSIGNING",
"partner": "TESTPARTNER",
"polylines": "ukx`A}rfjS~CuDhHnGlBnA|DoEdFcB|BhBxBtDzBmA",
"online_pay": 0,
"notify_package_return": true,
"uniform_user_feedback": 2,
"pending_period": 100,
"stoppoint_price": 0,
"special_request_price": 10000,
"vat": 0,
"distance_price": 23000,
"voucher_discount": 0,
"subtotal_price": 33000,
"total_price": 33000
}
}
Status-Code: 200 OK
Các lỗi thường gặp
Mã lỗi | Nội dung | Mô tả |
---|---|---|
404 | Not Found | - Không tìm thấy token (Token hết hạn. Khi token mới được tạo thì token cũ sẽ bị hết hạn) - Không tìm thấy path - Không tìm thấy dịch vụ |
406 | Not Acceptable | - Thời gian đặt hàng không hợp lệ - Địa chỉ không hợp lệ - Yêu cầu không hợp lệ - Khoảng cách không hợp lệ - Khu vực lấy hàng không hợp lệ - Khu vực giao hàng không hợp lệ - Các đơn hàng đồng thời không được cho phép (Nếu Đối tác không có trong token) - Không cho phép số lượng COD quá lớn cho người dùng lần đầu tiên - Đối tác không được đặt công nợ - Không hỗ trợ phương thức thanh toán này - Không đủ tiền - Số điện thoại của người dùng không được liên kết - Token đã được dùng cho một đối tác - Trạng thái đơn con không hợp lệ (Khi tạo đơn cha) - Đơn cha đã tồn tại #ABCXYZ (Khi tạo một đơn cha nhưng đơn con lại thuộc tài khoản cha khác) - Thời gian hẹn giờ không hợp lệ (Khi khách hàng gửi idle_until < current_time) - COD không hợp lệ ( Khi tổng COD vượt quá giá trị tối đa đã được cấu hình trong dịch vụ ) - Số điểm dừng không hợp lệ |
408 | Request timeout | Google Distance API không trả về kết quả trong 10 giây |
409 | Conflict | - Đơn hàng mới không được cho phép (Không chho phép 2 đơn hàng liên tiếp trong 1 phút) - Mã theo dõi bị trùng (Không cho phép tạo trùng mã theo dõi trong vòng 60 giây) |
500 | Internal Server Error | Hệ thống của chúng tôi có lỗi xảy ra. Xin thử lại sau |
503 | Service Unavailable | Chúng tôi tạm thời đang không hoạt động để bảo trì. Xin vui lòng thử lại sau |