Skip to content

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 and write_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:

  1. Retrieve order tracking information
    • Obtain tracking details from the external platform, including tracking numbers, carrier information, and status updates.
  2. Update order status in Genstore
    • Use Genstore’s API to sync tracking numbers, carriers, and fulfillment status with the corresponding order.
  3. Display tracking details
    • Show real-time tracking information on the order details page for customer visibility.

API overview

API EndpointDescription
/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}

json
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}

json
curl -X GET \ 
https://{your-development-store}.genmystore.com/api/202412/orders/{orderId}" \ 
-H "X-Genstore-Access-Token: {access_token}" \

Response:

json
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 TopicDescription
orders/createTriggered when an order is created
orders/paidTriggered when an order is paid
orders/updateTriggered when an order is updated
orders/fulfilledTriggered when an order is fully fulfilled
orders/partiallyFulfilledTriggered when an order is partially fulfilled
orders/cancelledTriggered when an order is canceled
refunds/createTriggered when a refund is initiated or processed