Skip to content

Instantly share code, notes, and snippets.

@bherila
Last active September 25, 2019 08:10
Show Gist options
  • Save bherila/4903e5be67fff4eb4de5c61c11c20452 to your computer and use it in GitHub Desktop.
Save bherila/4903e5be67fff4eb4de5c61c11c20452 to your computer and use it in GitHub Desktop.

FORT RESTful Order API v1.04 Documentation

The following reference guide will allow you to create orders and retrieve their status within the FORT Warehouse Management System (WMS).

Overview

The RESTful Order API is intended to be used by an external system that would like to fulfill orders within WMS. The RESTful Order API allows a system to create and view the status of orders securely over HTTPS.

Flow

After WMS has supplied your company with a username, password, and remote api key, you will have access to create and view your orders within WMS. Initially, when an order creation request is received, it will be validated, placed in your company’s order upload queue, and then processed in sequence. The request will be validated for required fields and data, as outlined in Appendix A. If the request is accepted, you will receive a 202 (Accepted) response from WMS with a unique request_key. This request_key will be used as the primary identifier for the request. Once WMS has processed your order upload, you will receive a postback to the postback_url provided in the request with the request_key, as well as the results of the upload. If everything was uploaded into WMS smoothly, then the response will contain a success message for each order that was uploaded. If any orders failed to upload, then the errors and warnings will be provided in the response, as defined by the Error Handling section. Once an order has been created successfully, you may view the status and attributes of the order, as outlined in the Retrieve section. This retrieve will bring back all the information about the order, as well as information about the sub-resources within the order, including the individual recipients, packages, and products.

Data Representation

All requests can be either JSON or XML formatted. To inform WMS which content type you are providing, you must provide the following header in the request:

Request Data Representation Header
JSON Content-Type: “application/json”
--- ---
XML Content-Type: “application/xml”

To designate whether you would like the response from WMS formatted as JSON or XML, you either append a MIME Extension to the end of the resource identifier, or send an Accept header in the request, as shown below:

Response Data Representation Header MIME Extension
JSON Accept: “application/json” .json
--- --- ---
XML Accept: “application/xml” .xml

A single request may contain many orders. Each order can contain 1 to many recipients. Each recipient can contain 1 to many packages. Each package can contain 1 to many products. This nested structure results in the schema shown below: Note: The auth block is provided on request but _is _never returned in** the response. Each section has either a primary identifier or set of identifiers, as shown in the table below:

Request section Identifier(s)
orders order_number & seller_code
--- ---
recipients recipient_id_3p
packages package_id_3p
products product_id

These identifier fields are required to identify the resource in the case of an error.

Authentication

All requests are required to use HTTPS and are authenticated with the following 3 fields:

Field Description
username A username provided by WMS
--- ---
password A password provided by WMS
remote_api_key A unique key provided by WMS that is associated with your company

For GET requests, authentication credentials are provided in the query string. For example, the following URL would both authenticate the user, and retrieve information about an order: https:// **[Your WMS Domain]/rest/v1/orders/[order_number]/?seller_code=[Your Seller Code]&username=[Your Username]&password=[Your_ _Password]&remote_api_key=[_Your _Remote API Key] *Note: Do not include the_ _square brackets,_ _[” or “],_ in the GET request_* For POST requests, the authentication credentials are embedded in a top level auth block within the body of the request, JSON snippet below:

Date & Time

All dates and times are represented using the ISO 8601 format and expected to be UTC (Universal Coordinated Time). Any field that has a suffix of _date is a date, while any field with a suffix of _datetime is considered to be a datetime. Date formats listed below:

Type Suffix Format Example
Date _date YY-MM-DD 1/1/2016
--- --- --- ---
Datetime _datetime YY-MM-DDThh:mm:ssZ 2016-01-01T08:00:00Z

Actions

Each of the supported order actions are associated with a particular HTTP Verb, as described below:

Product Action HTTP Verb Url Description
Create POST /rest/v1/orders/ Create an order within WMS
--- --- --- ---
Retrieve GET /rest/v1/orders/[order_number]/?seller_code=[Your Seller Code] Retrieve all attributes of an order and its nested sub resources.

Create** / Postback**

When one or more orders are uploaded into the WMS, the batch of orders is placed into a queue and executed sequentially per company. This means that the original request to create one or more orders is merely a request to place the order(s) into a queue. You will know the initial request to place the order(s) into the queue was successful when you receive a 202 (Accepted) response back from WMS, along with a request_key***. The request_key ***represents the entire request and will be used to identify the results of the upload later. Any validation error will invalidate the entire batch and prevent the batch from entering the queue. Validation errors will return a status code of 400 (Bad Request) and will give more information about the problem, as defined in the Error Handling section. When the queue processes the batch, the results are then posted back to the URL provided in the postback_url field in the settings block. This response will contain the same request_key from the initial response, as well as one or more of the following arrays: errors, warnings and information. These arrays will contain all the upload results from the upload, and will follow the same schema as defined in the Error Handling section. Each successful order upload will result in one information entry with the order instance URL and a status of 200 (OK). For more information, please see the Create example in the Examples section.

Retrieve

To retrieve the attributes of an order, you will need the order_number and seller_code of the order, as well the correct credentials to access the order. Once these are obtained, the request is as simple as a normal GET request to the orders API endpoint, using the order_number as the primary resource identifier as well as the seller_code within the query string. The GET request will also retrieve the attributes for the sub-resources, including: recipients, packages, and products. The sub-resources are contained within arrays by their respective names. Url format below: _https:// _[Your WMS Domain]/rest/v1/orders/[order_number]/?seller_code=[Your Seller Code]&username=[Your Username]&password=[Your_ Password_]&remote_api_key=[Your Remote API Key]** For more information, please see the Retrieve example in the Examples section. ** **

Error Handling

There are three levels of error handling supported by WMS: error, warning, and information. These different types of errors are included at the top level of the FORT API response within arrays by their respective names: errors, warnings, and information. These arrays can contain 0 to many instances of the specific type of problem within the response. These will follow the schema defined below:

Field Name Required? Type Description
title Yes String A generic title for the error
--- --- --- ---
status Yes Integer A status code that represents the type of error
detail Yes String More information about the type of error and, where appropriate, how to fix it
instance No String Included where appropriate, this will identify the offending resource. Format: /rest/v1/orders/[order_number]?seller_code=[Your Seller Code].
request_key No Guid In the case of an exception, the request key will be included in the error message to assist support. This key is the unique identifier for the request.

For example, an authentication error would look like: xx

In addition to the error handling above, an HTTP status code will also be returned with the response. The currently supported HTTP status codes are shown below:

HTTP Status Code Description
200 Status OK
--- ---
201 Created
202 Accepted
400 Bad Request
404 Not Found
405 Method Not Allowed
500 Internal Server Error

If an error has occurred, the orders*** array will not be returned in a request and the errors*** array will be present instead. If the request encountered a non-fatal problem and the request was successful, then the orders array will be present, along with any warnings*** ***or information that might be of use to the API client.

Examples

The following examples are complete, except for authentication credentials.

Create

**Request URL: **/rest/v1/orders/ **HTTP Verb: **POST **Example ****Request ****JSON ****Payload: **

{
    "auth": {
        "username": "*[**Your Username**]*",
        "password": "*[**Your Password**]*",
        "remote_api_key": "*[**Your Remote API Key**]*"
    },
    "settings": {
        "postback_url": "*[**Your Postback URL**]*"
    },
    "orders": [{
        "order_number": "TEST_ORDER_01",
        "seller_code": "TESTCOMP01",
        "order_type": "Club",
        "order_date": "01/01/2016",
        "billing_first_name": "John",
        "billing_last_name": "Smith",
        "billing_company_name": "Test Company",
        "billing_street_address_1": "700 Larkspur Landing",
        "billing_street_address_2": "Ste 125",
        "billing_city": "Larkspur",
        "billing_state": "CA",
        "billing_zip": "94939",
        "billing_country": "USA",
        "recipients": [{
            "recipient_id_3p": "56562229-3CD7-4DDD-A52C-987B4B6B5DEA",
            "shipping_first_name": "John",
            "shipping_last_name": "Smith",
            "shipping_street_address_1": "700 Larkspur Landing",
            "shipping_street_address_2": "Ste 125",
            "shipping_city": "Larkspur",
            "shipping_state": "CA",
            "shipping_zip": "94939",
            "shipping_country": "USA",
            "packages": [{
                "shipment_method": "GSC",
                "package_id_3p": "TEST_ORDER_01_1",
                "total_product_amount": "162.00",
                "products": [{
                        "product_id": "AE81A654-A113-AFED-E4E5-49255567225D",
                        "quantity": "6",
                        "product_sale_amount": "15.00"
                    }, {
                        "product_id": "C27FB19A-02E4-7B5A-4928-ADD06932E49B",
                        "quantity": "6",
                        "product_sale_amount": "12.00"
                    }
                }]]
        }]
    }]
}

Postback

Request_key**: 7F412D02-71CF-4451-BF92-887375841BD8 Requested Order Number: TEST_ORDER_01 Requested **Order Seller Code: TESTSELLERCODE01 Response Endpoint: https://[Your Domain]/[Your API Endpoint] **HTTP Verb: **POST Response MIME Type: JSON Successful_ __Order Upload _JSON Postback:

{

    "warnings": [{
        "request_key": "A06F1A0E-F55C-91D9-397E-27EE89182A11",
        "status": 200,
        "instance": "/rest/v1/orders/TEST_ORDER_01/",
        "title": "Import Warning",
        "detail": "There is not enough inventory for Product \"Test Product 01\".  If you have specified an inventory location, make sure there is enough inventory on hand."
    }],
    "information": [{
        "request_key": "A06F1A0E-F55C-91D9-397E-27EE89182A11",
        "status": 200,
        "instance": "/rest/v1/orders/TEST_ORDER_01/",
        "title": "Order Upload Success",
        "detail": "Order with Order Number: (TEST_ORDER_01) has been uploaded successfully."
    }]
}

**Failure ****Order Upload **JSON Postback:

{
    "errors": [{
            "request_key": "A06F1A0E-F55C-91D9-397E-27EE89182A11",
            "status": 400,
            "instance": "/rest/v1/orders/TEST_ORDER_01/",
            "title": "Import Error",
            "detail": "The zip code 99999 is not in our system."
        }...

Retrieve

Order Number**: TEST_ORDER_01 Seller Code: TESTSELLERCODE01 Example Request URL: https://[Your WMS Domain]/rest/v1/orders/ TEST_ORDER_01/?seller_code= TESTSELLERCODE01&username=[Your Username]&password=[Your_ _Password]&remote_api_key=[Your Remote API Key]****&includeArchived=**[0|1] **HTTP Verb: **Get

**Example **Success Response:

{
    "orders": [{
        "billing_age_confirm": null,
        "seller_branding_code": null,
        "sub_type": null,
        "recipients": [{
            "shipping_city": "Larkspur",
            "shipping_birth_date": null,
            "shipping_zip": 94939,
            "shipping_state": "CA",
            "packages": [{
                "is_gift": 0,
                "package_status_comment": null,
                "handling_fees_amount": 0,
                "seller_branding_code": null,
                "delivery_instructions": null,
                "package_id_3p": "TEST_ORDER_01_1",
                "freight_amount": 0,
                "depletion_datetime": null,
                "special_instructions": null,
                "pod_invoice_datetime": null,
                "shipment_tracking_datetime": null,
                "invoice_date": null,
                "discount_product_amount": 0,
                "crossdock_sent_datetime": null,
                "is_adult_signature_required": null,
                "shipment_method": "GSC",
                "payment_date": null,
                "recipient_message": null,
                "package_status_code": null,
                "fulfiller": "TESTWAREHOUSE01",
                "pod_invoice_numbers": null,
                "package_shipping_status_flag": 0,
                "gift_wrap": null,
                "gift_card": null,
                "requested_ship_date": null,
                "crossdock_received_datetime": null,
                "surcharges": null,
                "total_product_amount": 162,
                "insurance_amount": 0,
                "requested_delivery_date": null,
                "products": [{
                    "product_sku": "TESTPROD01",
                    "quantity": 6,
                    "product_alc": 13.5,
                    "product_id": "AE81A654-A113-AFED-E4E5-49255567225D",
                    "product_name": "Test Wine 01",
                    "supplier_code": "TESTSUPPLIERCODE01",
                    "product_sale_amount": 15.00
                }, {
                    "product_sku": "TESTPROD02",
                    "quantity": 6,
                    "product_alc": 13.5,
                    "product_id": "C27FB19A-02E4-7B5A-4928-ADD06932E49B",
                    "product_name": " Test Wine 02",
                    "supplier_code": " TESTSUPPLIERCODE02",
                    "product_sale_amount": 12.00
                }],
                "discount_freight_amount": 0,
                "tracking_number": null,
                "discount_amount": 0,
                "package_id": 9990032,
                "compliance_id": null,
                "manifest_number": null
            }],
            "shipping_phone_1": null,
            "shipping_last_name": "Smith",
            "shipping_company_name": "Test Company",
            "shipping_age_confirm": null,
            "shipping_street_address_2": "Ste 125",
            "shipping_phone_2": null,
            "age_verification_id": null,
            "shipping_first_name": "John",
            "shipping_street_address_1": "700 Larkspur Landing",
            "shipping_mobile_phone": null,
            "shipping_email": null,
            "recipient_type": null,
            "recipient_id": null,
            "shipping_country": "US",
            "recipient_id_3p": "56562229-3CD7-4DDD-A52C-987B4B6B5DEA"
        }],
        "billing_city": "Larkspur",
        "actual_ship_datetime": null,
        "billing_birth_date": null,
        "billing_last_name": "Smith",
        "billing_id": null,
        "seller_code": "TESTCOMP01",
        "billing_first_name": "John",
        "order_source_3p": null,
        "purchase_order_number": null,
        "billing_id_3p": null,
        "order_date": "2016-01-01",
        "billing_country": "US",
        "invoice_number": null,
        "order_type": "Club",
        "billing_company_name": "Test Company",
        "billing_street_address_2": "Ste 125",
        "billing_street_address_1": "700 Larkspur Landing",
        "billing_email": null,
        "billing_mobile_phone": null,
        "order_number": "TEST_ORDER_01",
        "billing_zip": 94939,
        "billing_phone_2": null,
        "billing_state": "CA",
        "billing_phone_1": null
    }]
}

Appendix A

Order** Field List**

Field Name POST Active? POST Required? GET Active? FORT 209 Column Name (Position)
actual_ship_datetime No No Yes Ship Date (34)
--- --- --- --- ---
billing_first_name Yes Yes Yes Billing First Name (60)
billing_last_name Yes Yes Yes Billing Last Name (61)
billing_state Yes Yes Yes Billing State (67)
billing_street_address_1 Yes Yes Yes Billing Address (64)
billing_zip Yes Yes Yes Billing Postal Code (68)
order_date Yes Yes Yes Order Date (21)
order_number Yes Yes Yes Order No (4)
billing_age_confirm Yes No Yes Customer Age Confirm (75)
billing_city Yes No Yes Billing City (66)
billing_company_name Yes No Yes Billing Company Name (63)
billing_country Yes No Yes Billing Country (69)
billing_birth_date Yes No Yes Billing DOB (74)
billing_email Yes No Yes Billing Email (73)
billing_id Yes No Yes Customer ID (58)
billing_id_3p Yes No Yes Customer ID 3P (59)
billing_mobile_phone Yes No Yes Billing Mobile Phone (72)
billing_phone_1 Yes No Yes Billing Phone 1 (70)
billing_phone_2 Yes No Yes Billing Phone 2 (71)
billing_street_address_2 Yes No Yes Billing Address 2 (65)
force_3_tier Yes No No Force 3 Tier (15)
invoice_date Yes No Yes Invoice Date (22)
invoice_number Yes No Yes Invoice No (6)
is_archived No No Yes N/A
is_license_to_license Yes No No License to License (12)
is_onsite Yes No No Onsite (11)
order_number_3p Yes No Yes Order No 3P (5)
order_source_3p Yes No Yes Order Source 3P (17)
order_type Yes No Yes Order Type (18)
purchase_order_number Yes No Yes PO No (9)
sub_type Yes No Yes Sub Type (19)

Recipient** Field List**

Field Name POST Active? POST Required? GET Active? FORT 209 Column Name (Position)
recipient_id_3p Yes Yes Yes Recipient ID 3P (41)
--- --- --- --- ---
shipping_first_name Yes Yes Yes Recipient First Name (43)
shipping_last_name Yes Yes Yes Recipient Last Name (44)
shipping_state Yes Yes Yes Recipient State (49)
shipping_street_address_1 Yes Yes Yes Recipient Street Address (46)
shipping_zip Yes Yes Yes Recipient Zip (50)
age_verification_id Yes No Yes Age Verification ID (39)
recipient_id Yes No Yes Recipient ID (40)
recipient_type Yes No Yes Recipient Type (42)
shipping_age_confirm Yes No Yes Recipient Age Confirm (57)
shipping_city Yes No Yes Recipient City (48)
shipping_company_name Yes No Yes Recipient Company Name (45)
shipping_country Yes No Yes Recipient Country (51)
shipping_birth_date Yes No Yes Recipient DOB (56)
shipping_email Yes No Yes Recipient Email (55)
shipping_mobile_phone Yes No Yes Recipient Mobile Phone (54)
shipping_phone_1 Yes No Yes Recipient Phone (52)
shipping_phone_2 Yes No Yes Recipient Phone 2 (53)
shipping_street_address_2 Yes No Yes Recipient Address Line 2 (47)

Package** Field List**

Field Name POST Active? POST Required? GET Active? FORT 209 Column Name (Position)
package_id_3p Yes Yes Yes Package ID 3P (7)
--- --- --- --- ---
shipment_method Yes Yes Yes Courier (24)
compliance_id Yes No Yes Compliance ID (38)
delivery_instructions Yes No Yes Delivery Instructions (85)
delivery_datetime No No Yes N/A
discount_amount Yes No Yes Discount Amount (101)
discount_freight_amount Yes No Yes Discount Amount Freight (103)
discount_product_amount Yes No Yes Discount Amount Product (102)
freight_amount Yes No Yes Freight (92)
freight_tax_amount Yes No Yes Freight Tax Amount (98)
gift_card Yes No Yes Gift Card (88)
gift_wrap Yes No Yes Gift Wrap (89)
handling_fees_amount Yes No Yes Handling Fees (93)
handling_tax_amount Yes No Yes Handling Tax Amount (99)
insurance_amount Yes No Yes Insurance Amount (104)
is_allocated No No Yes N/A
is_gift Yes No Yes Is Gift (86)
Is_packed No No Yes N/A
is_archived No No Yes N/A
package_excise_tax_amount Yes No Yes Excise Tax (100)
package_id Yes No Yes Package ID (8)
pod_invoice_datetime No No Yes N/A
product_tax_amount Yes No Yes Product Tax Amount (97)
recipient_message Yes No Yes Recipient Message (87)
requested_delivery_date Yes No Yes Requested Delivery Date (31)
requested_ship_date Yes No Yes Requested Ship Date (30)
seller_branding_code Yes No Yes Brand Company Code (3)
special_instructions Yes No Yes Special Instructions (84)
surcharges Yes No Yes Special Packaging (91)
total_product_amount Yes No Yes Total Product Amount (106)
total_tax_collected_amount Yes No Yes Total Tax Collected (96)
tracking_number Yes No Yes Courier Tracking No (26)
licensee_company_code_x_tier Yes No No Licensee Company Code xTier (16)
crossdock_received_datetime No No Yes Crossdock Received Date (33)
crossdock_sent_datetime No No Yes Crossdock Sent Date (32)
is_adult_signature_required No No Yes ASR (25)
package_shipping_status_flag No No Yes Package Shipping Status Flag (36)
shipping_status No No Yes N/A
package_status_code No No Yes Package Status (35)
package_status_comment No No Yes Package Comment (37)
depletion_datetime No No Yes N/A
fulfiller No No Yes Fulfiller (27)
manifest_number No No Yes Manifest No (10)
package_type No No Yes Package Type (14)
pod_invoice_datetime No No Yes N/A
pod_invoice_numbers No No Yes N/A
shipment_tracking_datetime No No Yes N/A
weight_amount No No Yes N/A

Product** Field List**

Field Name POST Active? POST Required? GET Active? FORT 209 Column Name (Position)
product_name Yes Yes Yes Prod Name (110 + P*14)
--- --- --- --- ---
quantity Yes Yes Yes Prod Qty (109 + P*14)
product_sale_amount Yes No Yes Prod Sale Amount (117 + P*14)
product_sku Yes No Yes Prod ID (108 + P*14)
supplier_code Yes No Yes Prod Supplier Code (107 + P*14)
product_alc No No Yes Prod Alc (118 + P*14)
product_excise_tax_amount Yes No Yes Prod Alc (114 + P*14)
product_sale_amount Yes No Yes Prod Alc (112 + P*14)

Please refer to the FORT 209 Excel document for column descriptions and value options, where appropriate. Changelog V1.01 to v1.02

  • Moved request_key within the errors, warnings and information*** ***JSON objects. This is to provide support for orders which consist of products from more than one self-fulfilling suppliers.

V1.02 to v1.03

  • Added support for querying archived orders and packages

V1.03 to v1.04

  • Various column additions for GET requests

**FORT RESTful Product API v1.0.2 GET Documentation **

September 23, 2019 This document describes the FORT Product API GET endpoint. This endpoint can be used to retrieve product level information, as well as inventory levels.

Data Representation

To designate whether you would like the response formatted as JSON or XML, you either append a MIME Extension to the end of the resource identifier, or send an Accept header in the request, as shown below:

Response Data Representation Header MIME Extension
JSON Accept: “application/json” .json
--- --- ---
XML Accept: “application/xml” .xml

Authentication

All requests are required to use HTTPS and are authenticated with the following 4 fields:

Field Description
username A username provided by WMS
--- ---
password A password provided by WMS
remote_api_key A unique key provided by WMS that is associated
with your company
supplier_code The WMS company code for the supplier of the
product

For GET requests, authentication credentials are provided in the query string of the request. For example, the following URL would both authenticate the user, and retrieve information about a product: https:// **[Your WMS Domain]/rest/v1/products/[product_sku]/?username=[Your* Username]&password=[Your Password]&remote_api_key=[Your Remote API** Key]&supplier_code=[Supplier Company Code]* Date & Time All dates and times are represented using the ISO 8601 format and expected to be UTC. Date formats listed below:

Type Suffix Format Example
Date _date YY-MM-DD 1/1/2016
--- --- --- ---
Datetime _datetime YY-MM-DDThh:mm:ssZ 2016-01-01T08:00:00Z

Error Handling

There are three levels of error handling supported by WMS: error, warning, and information. These different types of errors are contained at the top level of the FORT API response within arrays by the following names: errors, warnings, and information. These arrays can contain 0 to many instances of the specific type of problem within the response. These will follow the schema defined below:

Field Name Required? Type Description
title Yes String A generic title for the error
--- --- --- ---
status Yes Integer A status code that represents the type of error
detail Yes String More information about the type of error and,
where appropriate, how to fix it
instance No String Included where appropriate, this will identify the offending resource. Format:
/rest/v1/products/[product_sku].
request_key No Guid In the case of an exception, the request key will be included in the error message to assist support.
This key is the unique identifier for the request.

For example, an authentication error would look like:

{
"errors": [
{
"title": "Authentication Error", "status": 401,
"detail": "The credentials supplied did not match our records"
}
]
}

In addition to the error handling above, an HTTP status code will also be returned in the response. The currently supported HTTP status codes are shown below:

HTTP Status Code Description
200 Status OK
--- ---
201 Created
400 Bad Request
404 Not Found
405 Method Not Allowed
500 Internal Server Error

If an error has occurred, the ***product ***object will not be returned in a request and the ***errors ***array will be present. If the request encountered a non-fatal warning and the request was successful, then the ***product ***object will be present, along with any ***warnings ***or ***information ***that might be of use to the API client.

Inventory Level by Warehouse Location

More detailed inventory data can be obtained by adding a “&includeInventoryByWarehouseLocation=1” query string parameter. https:// [Your WMS Domain]/rest/v1/products/[product_sku]/?username=[Your Username]&password=[Your Password]&remote_api_key=[Your Remote API Key]&supplier_code=[Supplier Company Code]&includeInventoryByWarehouseLocation=1 This returns a “warehouse_location” array with inventory levels for a particular product:

"warehouse_locations": [{
"warehouse_location_id": 115, "warehouse_location_code": "FS", "on_hand_amount": 24,
"breakage_amount": 0,
"returned_amount": 0,
"backordered_amount": 0,
"will_call_amount": 0,
"damaged_amount": 0,
"allocated_amount": 5,
"received_amount": 0,
"pending_amount": 0,
"inbound_amount": 0
}]

GET Example

product_sku : SKU123 supplier_code : SUPP123 Example Request URL: https://[Your WMS* Domain]/rest/v1/products/ABC123/?username=[Your Username]&password=[Your** Password]&remote_api_key=[Your Remote API Key]&supplier_code=SUPP123* **HTTP Verb: **Get Example Response:

{
    "product": {
        "item_type_id": 0,
        "unimerc_code": null,
        "bottling_date": null,
        "total_breakage_amount": 0,
        "has_capacity": 0,
        "product_type_id": 201,
        "nabca_code": null,
        "total_receive_amount": 0,
        "is_in_slot": "OK",
        "weight_unit": "lb",
        "product_sale_amount": 15,
        "upc_code": null,
        "weight_id": 1,
        "dim_width": 0,
        "dim_height": 0,
        "total_will_call_amount": 0,
        "total_damage_amount": 48,
        "nrd_oss_product_id": null,
        "system_product_id": 200001,
        "product_name": "Test Product Name",
        "mixed_bottle_formats": 0,
        "release_date": null,
        "vintage_year": 2006,
        "wine_style_id": null,
        "nrd_company_code": null,
        "volume_amount": 750,
        "formatted_product_name": null,

Appendix A

Product Field List



Field Name


FORT 309 Column Name (Position)
product_id ExternalProductID (4)
--- ---
supplier_code SellerCode (2)
product_sku SupplierProductITEMID (3)
non_standard_weight_amount NonStandardWeight (38)
product_alc AlcoholicContent (49)
product_name ProductName (7)
item_type_id ItemType (64)
product_type_id ProductType (24)
vintage_year VintageYear (12)
volume_amount Volume (26)
volume_unit VolumeType (27)
weight_id Weight (37)
bottling_date BottlingDate (33)
case_production CaseProduction (31)
case_quantity CaseQty (43)
cases_per_pallet CasesPallet (44)
dim_height DimensionHeight (42)
dim_length DimensionLength (40)
dim_width DimensionWidth (41)
has_capacity HasCapacity (45)
max_capacity_amount MaxCapacityVolume (47)
max_capacity_unit CapacityVolumeType (48)
mixed_bottle_formats MixedBottleFormats (46)
nabca_code NABCACode (22)
origin_id Origin (29)
product_cost ProductCost (51)
release_date ReleaseDate (32)
scc_code SCCCode (23)
teaser_description DescriptionTeaserShort (34)
ttb_cola TTBCOLA (19)
bottling_date_code UnimercCode (21)
upc_code UPCCode (20)
varietal_type_id VarietalTypeColor (28)
vineyard_name Vineyard (30)
--- ---
winemaker_name WinemakerName (36)
product_sale_amount RetailPrice (53)
wholesale_amount WholesalePrice (52)
wine_style_id WineStyleDesignation (25)
alt_vendor_sku AltVendorSKU (14)
alt_vendor_sku_2 AltVendorSKU2 (15)
brand_name BrandName (13)
fanciful_product_name FancifulName (8)
formatted_product_name FXProductName (10)
nrd_company_code NrdCompanyCode (16)
nrd_oss_product_id NRDOSSProductID (17)
nrd_product_name NRDProductName (18)
net_weight_amount NetWeight (39)
is_perishable Perishable (50)
producer Producer (11)
total_on_hand_amount N/A
total_allocated_amount N/A
total_pending_amount N/A
total_will_call_amount N/A
total_backordered_amount N/A
total_breakage_amount N/A
total_damaged_amount N/A
total_returned_amount N/A
total_received_amount N/A
warehouse_locations N/A

Please refer to the FORT 309 Excel document for column descriptions and value options, where appropriate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment