Skip to main content

Live Equipment Contracts - Real-Time from the ERP

This article covers how equipment contracts and free supply reordering can be facilitated through a live service or MPS contract lookup.

João Estima avatar
Written by João Estima
Updated over 2 weeks ago

The Equipment Contracts feature provides access to a list of active contracts for logged-in users on your EvolutionX webstore. Customers can easily view their contract within the Contracts module.

Current ERP Systems with this feature

The following systems are already integrated for Live Equipment Contract and are easy to setup:

  • SAP B1 using a Custom Integration Middleware

  • DIY Live Equipment Contract (Scoped not implemented)

The following requests and responses are examples:

Live Equipment Contracts List:

Request Header

Notes:

  • Bearer Token is preferred but oAuth2 and other authorization types can be supported too.

  • The Method for the endpoint should be POST.

Example Request Header:

Content-Type: application/json
Accept: application/json
Authorization: Bearer Token or username & password

Request Body

Notes:

The Customer Code attribute will use the references of the ERP for the account number. It is not required for the ERP to store EvolutionX IDs for these entities. If needed, the EvolutionX Customer Account can store a GUID or Record ID in the Seller Reference as well (ask DevOps if you need this value in this integration).

  • The most important fields to support are:

    • customer_code — the ERP customer code as stored in the EvolutionX Customer Account Number attribute.

    • current_page & per_page — used for pagination.

  • Optional

    • Filters — When there's no filter aply the object is provided and the value of the keys empty.

Example Request Body

{
"evo_customer_id": "277504",
"evo_user_id": "27504",
"customer_code": "ACME001",
"seller_reference": "01",
"user_seller_reference": "01",
"filters": {
"contract_number": "",
"po_reference": "",
"equipment_number": "",
"serial_number": "",
"model": ""
},
"current_page": "1",
"per_page": "10"
}

Response Body

Notes:

  • If the provided customer does not include statements, you can return the statements with a empty array.

  • Fields:

    • data.contracts.customer_code — the ERP customer code as stored in the EvolutionX Customer Account Number attribute. Needs to be the same provided in the request.

    • data.total — the total of records available for display depending on the filters provided. Used for Pagination.

    • ID vs Number: ID is being used for view endpoint, Number is being used as the display/user friendly identifier and in filters. They can both be the same value if that's you case.

Example Response Body

{
"status": "success",
"message": "Data retrieved successfully",
"data": {
"contracts": [
{
"customer_code": "ACME001",
"contract_id": "12345",
"contract_number": "12345",
"po_reference": "PO1234",
"equipment_id": "1234",
"equipment_number": "XYZ/S-1234",
"serial_number": "XYZ1234",
"model": "Model X"
},
{
"customer_code": "ACME001",
"contract_id": "12345",
"contract_number": "12345",
"po_reference": "",
"equipment_id": "5678",
"equipment_number": "S-1234",
"serial_number": "S1234",
"model": "Model S"
}
],
"total": "2"
}
}

Live Equipment Contracts View:

Request Header

Notes:

  • Bearer Token is preferred but oAuth2 and other authorization types can be supported too.

  • The Method for the endpoint should be POST.

Example Request Header:

Content-Type: application/json
Accept: application/json
Authorization: Bearer Token or username & password

Request Body

Notes:

The Customer Code attribute will use the references of the ERP for the account number. It is not required for the ERP to store EvolutionX IDs for these entities. If needed, the EvolutionX Customer Account can store a GUID or Record ID in the Seller Reference as well (ask DevOps if you need this value in this integration).

  • The most important fields to support are:

    • customer_code — the ERP customer code as stored in the EvolutionX Customer Account Number attribute.

    • contract_id & equipment_id — Both value have to be in the response.

Example Request Body

{
"evo_customer_id": "277504",
"evo_user_id": "27504",
"customer_code": "ACME001",
"seller_reference": "01",
"user_seller_reference": "01",

"contract_id": "123456789",
"equipment_id": "1234"
}

Response Body

Notes:

  • If the provided customer does not include statements, you can return the statements with a empty array.

  • Fields:

    • data.customer.code — the ERP customer code as stored in the EvolutionX Customer Account Number attribute. Needs to be the same provided in the request.

    • data.equipments.items_included — the items present in an equipment can be ordered directly. More information below.

Example Response Body

{
"status": "success",
"message": "Data retrieved successfully",
"data": {
"contract_id": "123456789",
"contract_number": "123456789",
"po_reference": "PO123456",
"start_date": "2023-01-01T00:00:00Z",
"end_date": "2023-12-31T00:00:00Z",
"status": "active",
"description": "This is a sample contract description.",

"customer": {
"code": "ACME001",
"name": "Name, INC.",
"address_line1": "address line 1",
"address_line2": "",
"address_line3": "",
"city": "GIBSONBURG",
"state": "OH",
"postal_code": "43431"
},

"equipments": [
{
"id": "1234",
"number": "XYZ/S-1234",
"name": "Sample Part Name",
"serial_number": "123456789",
"model": "Model X",
"description": "Sample Equipment Description",
"start_date": "2023-01-01T00:00:00Z",
"end_date": "2023-12-31T00:00:00Z",
"location": {
"code": "LOC001",
"name": "Main Office",
"address_line1": "123 Main St",
"address_line2": "",
"address_line3": "",
"city": "GIBSONBURG",
"state": "OH",
"postal_code": "43431"
},
"items_included": [
{
"sku": "1242131X",
"description": "Black Toner - Contract",
"quantity": 10,
"uom": "ea"
}
]
}
]
}
}

Items Included

When this field is provided, we enable the functionality of ordering all items associated with the equipment on the contract.

Each equipment can have its own items associated with it.

Did this answer your question?