Track third-party orders
Genstore allows merchants to integrate with external platforms (e.g., third-party logistics providers or marketplaces) to track and manage orders from other platforms. With a custom order management app (OMA), merchants can:
- View external orders in the Genstore platform.
- Sync tracking information from third-party platforms.
- Unify order statuses across multiple sales channels.
Prerequisites
- Before tracking third-party orders, ensure:
- Your app has
write_orders
andwrite_fulfillments
permissions. Learn more about API access scopes and how to configure them. - External order data is available.
- You are familiar with the Orders API.
Tracking process
To track external orders, a custom order management app should follow these steps:
- Retrieve order tracking information
- Obtain tracking details from the external platform, including tracking numbers, carrier information, and status updates.
- Update order status in Genstore
- Use Genstore’s API to sync tracking numbers, carriers, and fulfillment status with the corresponding order.
- Display tracking details
- Show real-time tracking information on the order details page for customer visibility.
API overview
API Endpoint | Description |
---|---|
/api/202412/orders?limit={n} | Retrieve paginated order lists for batch processing |
/api/202412/orders/{orderId} | Get detailed order information, including fulfillment records |
TIP
- Ensure timely synchronization of external order data to avoid delays.
- Regularly check for order status updates to keep customers informed.
- Consider adding external platform tracking links for customer convenience.
Use case: Get order list
Overview
The Get order list API allows developers to fetch all merchant orders and filter those that require tracking updates.
Request::
GET /api/202412/orders?limit={n}
curl --request GET \
--url 'https://{your-development-store}.genmystore.com/api/202412/orders?limit=10' \
--header 'x-genstore-access-token: {access-token}' \
'
Use case: Get order details
Overview
The Get order details API provides comprehensive order information, including fulfillment records and tracking details for status updates or display.
Request:
GET /api/202412/orders/{orderId}
curl -X GET \
https://{your-development-store}.genmystore.com/api/202412/orders/{orderId}" \
-H "X-Genstore-Access-Token: {access_token}" \
Response:
HTTP/1.1 200 OK
{
"order": {
"note": "Customer changed their mind.",
"sourceIdentifier": "ORDERID-123",
"totalOutstanding": "5.00",
"currentTotalDiscounts": "10.00",
"orderId": "1001",
"totalPrice": "409.94",
"totalDiscounts": "0.00",
"paymentGatewayNames": [
"authorize_net",
"Cash on Delivery (COD)"
],
"currentTotalTax": "10.00",
"fulfillmentStatus": "partial",
"currentTotalPrice": "10.00",
"currentSubtotalPrice": "10.00",
"lineItems": [
{
"variantTitle": "Pink",
"quantity": "1",
"productId": "7513594",
"taxable": "true",
"title": "IPod Nano",
"fulfillableQuantity": "1",
"fulfillmentStatus": "fulfilled",
"requiresShipping": "true",
"price": "199.99",
"giftCard": "false",
"totalDiscount": "5.00",
"id": "669751112",
"variantId": "4264112",
"grams": "500",
"sku": "IPOD-342-N",
"currentQuantity": "1"
}
],
"totalTax": "11.94",
"createdAt": "2008-01-10T11:00:00-05:00",
"fulfillments": [
{
"createdAt": "2022-01-01T11:00:00-01:00",
"orderId": "3183479",
"fulfillId": "255858046",
"status": "failure",
"updatedAt": "2022-01-01T11:00:00-01:00\""
}
],
"presentmentCurrency": "CAD",
"dutiesIncluded": "false",
"currency": "USD",
"cancelReason": "customer",
"closedAt": "2008-01-10T11:00:00-05:00",
"subtotalPrice": "398.00",
"email": "[email protected]",
"paymentTerms": {
"amount": "70",
"currency": "CAD"
},
"updatedAt": "2012-08-24T14:02:15-04:00",
"taxesIncluded": "false",
"discountCodes": [
{
"amount": "30.00",
"code": "SPRING30",
"type": "fixed_amount"
}
],
"cancelledAt": "null",
"tags": "imported, vip",
"buyerAcceptsMarketing": "false",
"phone": "+557734881234",
"totalLineItemsPrice": "398.00",
"financialStatus": "paid",
"totalWeight": "300",
"shippingAddress": {
"zip": "K2P0V6",
"country": "Canada",
"lastName": "Bobsen",
"address2": "Amoebobacterieae",
"city": "Ottawa",
"address1": "123 Amoebobacterieae St",
"provinceCode": "ON",
"latitude": "45.41634",
"firstName": "Bob",
"province": "Ontario",
"phone": "555-625-1199",
"countryCode": "CA",
"name": "Bob Bobsen",
"longitude": "-75.6868"
},
"billingAddress": {
"zip": "T0E 0M0",
"country": "Canada",
"lastName": "Gorski",
"address2": "Apartment 5",
"city": "Drayton Valley",
"address1": "2259 Park Ct",
"provinceCode": "AB",
"latitude": "45.41634",
"firstName": "Christopher",
"province": "Alberta",
"phone": "(555)555-5555",
"countryCode": "CA",
"name": "Christopher Gorski",
"longitude": "-75.6868"
},
"sourceName": "instagram",
"customer": {
"lastName": "Norman",
"note": "A note about the customer.",
"taxExempt": "true",
"taxExemptions": [
"CA_STATUS_CARD_EXEMPTION",
"CA_BC_RESELLER_EXEMPTION"
],
"tags": "loyal",
"createdAt": "2013-06-27T08:48:27-04:00",
"firstName": "John",
"phone": "16135551111",
"currency": "JPY",
"id": "207119551",
"state": "disabled",
"email": "[email protected]",
"updatedAt": "2012-08-24T14:01:46-04:00",
"verifiedEmail": "true",
"defaultAddress": ""
}
}
}
Webhooks
To enable real-time order tracking and fulfillment automation, subscribe to the following order-related webhooks:
Webhook Topic | Description |
---|---|
orders/create | Triggered when an order is created |
orders/paid | Triggered when an order is paid |
orders/update | Triggered when an order is updated |
orders/fulfilled | Triggered when an order is fully fulfilled |
orders/partiallyFulfilled | Triggered when an order is partially fulfilled |
orders/cancelled | Triggered when an order is canceled |
refunds/create | Triggered when a refund is initiated or processed |