Introduction

Welcome to the Nacelle Order Management System (NOMS), a dynamic platform built around the Nacelle composable architecture which focuses on three key operations - Ingest, Normalize, and Syndicate. NOMS is designed to streamline the processing and management of orders in an efficient, scalable, and flexible manner. It incorporates state-of-the-art technology such as REST APIs for order creation and updates, webhooks for data syndication, and GraphQL endpoints for retrieving order data.

NOMS provides a modern order management experience by utilizing a composable approach. The modular design provides businesses the flexibility to integrate with various other systems, adapt to changing business requirements and scale efficiently. Leveraging REST APIs and GraphQL endpoints, NOMS allows developers to have granular control over data, enabling a more customized user experience.

Quick Start

  1. Access Token Generation

    Create an access token for secure access to nacelle APIs

  2. Create Order
    Use the generated access token to make a POST request to the Create Order endpoint. An example request could look like this:

    curl -X POST "https://noms.api.nacelle.com/api/v1/orders" \
       -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
       -H "Content-Type: application/json" \
       -H "X-Nacelle-Space-ID: YOUR_SPACE_ID" \
       -d '{
          "order": {
             "source_reference_id": "example_source_reference_id",
             "source_name": "example_source_name",
             "source_identifier": "example_source_identifier",
             "line_items": [
                {
                   "source_reference_id": "example_source_reference_id",
                   "quantity": 1
                }
             ],
          }
       }'
    
  3. Verify Order Creation:
    After making the request, you should receive a JSON response with the order details if the order was created successfully.

  4. Query Order Details:
    You can retrieve order details anytime by using our Storefront API endpoint.

    query{
       order(id: $id) {
          status
          id
          email
          phone
          currency
          meta
          shippingMethod
          paymentMethod
          deadline
          items(filter:{}){
             edges{
             node{
                status
                nacelleEntryID
                price
                quantity
                sku
             }
             }
          }
       }
    }