JSON is used to retrieve/display the fields within the OASIS Quote Transaction Set (QuoteTS). A JSON API performs the OASIS function of searching in the OASIS Quotes application using the "Find" feature and displaying the information in a logical, easily parsed format. The following areas will be covered:
- Find Options
- Content Listings
- Request Structure
- Response Structure
Requirements:
- Users must have O4. To learn more about moving forward with O4, contact OASIS Sales at sales@oasissalessoftware.com or 501-843-6750.
- Users must create bearer tokens in O4 to authorize the call in their external API software.
Call
Software-based call
URL: <WebDatabaseURL>/API?&ajax=QuoteTS
JSON POST method
Request:
{ "DBID":"<value>",
"QuoteID":"<value>",
"QuoteHeader":"*",
"QuoteLine":"*"
}
Browser-based call
URL: <WebDatabaseURL>/API?&ajax=QuoteTS
Request: Project=Test*&QuoteHeader=*&QuoteLine=*
Find
Software-based call
Multiple Quotes
Define the OASIS quotes to use for data extraction.
Format: A comma delimited list of any key/value pair for an OASIS quote listing works here. . . "FindObject":"<value>", "FindObject":"<value>"
Multiple quotes can be specified by the find criteria. But the Find criteria should be used to narrow the response content if many fields are being extracted.
"Project":"Test" – Every quote with a project name that starts with Test
Example:
{ "Project":"Test",
"QuoteHeader":"*",
"QuoteLine":"*"
}
Single Quote
A single quote can be designated by including “DBID”:”value”,”QuoteID”:”value” in the listing.
"DBID":"Test", "QuoteID":"1234" – A Quote with a Database ID of Test and a Quote ID of 1234 (not Quote Number!)
Example:
{ "DBID":"<value>",
"QuoteID":"<value>",
"QuoteHeader":"*",
"QuoteLine":"*"
}
Browser-based call
Multiple Quotes
Define the OASIS quotes to use for data extraction.
Format: &Key=Value… any key/value pair for an OASIS quote listing works here
Multiple quotes can be specified by the find criteria. But the criteria should be used to narrow the response content if many fields are being extracted.
Example:
<WebDatabaseURL>/OASIS/API?&ajax=QuoteTS<value>&DBID=Test&UpdateDate=01/01/2020:06/01/2020&QuoteHeader=*&QuoteLine=*
Single Quote
A single quote can be designated by including &DBID=value&QuoteID=value in the listing.
Example:
<WebDatabaseURL>/OASIS/API?&ajax=QuoteTS<value>&DBID=Test&QuoteID=1234&QuoteHeader=*&QuoteLine=*
Overall response for Browser or Software based calls:
{"QuoteTS": [{"field": "value","field": "value","field": "value","OrderLines": [{"field": "value","field": "value"}], "field": "value","field": "value"}]}
Content
The available data that can be extracted includes:
- QuoteHeader
- PhaseHeader
- QuoteLine
- Manufacturers
- Customers
- CustomerContact (included as a JSON element of Customer entry)
- Specifiers
- SpecifierContact (included as a JSON element of Specifiers entry)
- UserTag
Request
Format: “content name – i.e. QuoteHeader”:”comma delimited list of possible fields”
Response
All values are returned as quoted character data: “abc123”
Numeric values are formatted as appropriate:
- Numbers – “0” or “0.0”
- Currency – “$0.00”
Quote Header (required)
Request: “QuoteHeader”:”comma delimited list of possible fields”
Note: “QuoteHeader”:”*” is supported.
Only those fields with non-blank values are listed on the response.
Response: “field”:”value”,”field”:”value”,etc.
Fields
- DBID
- QuoteID
- FullQuoteNumber
- QuoteYear
- QuoteType
- Project
- BidName
- Location
- LocationState
- DistributorID
- BSID
- SpecRegistration
- NationalAccount
- VerticalMarket
- BidBoard
- Status
- InternalNotes
- Remarks
- QuoteNotes
- PORemarks
- PONotes
- ShippingInstructions
- DoNotShipBefore
- RequiredOnSite
- LotPriceOrder
- Stamp
- FreightType
- QuoteTax
- TaxExemptionNumber
- EffectiveTaxZip
- BidDate
- RADate
- ExpirationDate
- ShipName
- ShipCO
- ShipLine1
- ShipLine2
- ShipCity
- ShipState
- ShipZip
- ShipCounty
- ShipCountry
- ShipMark
- ShipCallAhead
- AltName
- AltCO
- AltLine1
- AltLine2
- AltCity
- AltState
- AltZip
- AltCounty
- AltCountry
- AltWhenToUse
- ContractorPO
- FreightAccount
- BillName
- BillLine1
- BillLine2
- BillCity
- BillState
- BillZip
- BillCounty
- BillCountry
- CSRUserID
- QuoterUserID
- CreateTerritoryID
- CreateDate
- CreateUser
- UpdateDate
- UpdateUser
- ParentType
- ParentDBID
- ParentID
- ParentSubID
- NextLineUID
- LostTo
- TotalSellPrice
- TotalSellNetPrice
- TotalSellCommission
- TotalSellOverageSplit
- TotalSellOverage
- TotalSellMarkup
- TotalSellEarnings
- TotalSellPrice
- TotalLevel1NetPrice
- TotalLevel1Commission
- TotalLevel1OverageSplit
- TotalLevel1Overage
- TotalLevel1Markup
- TotalLevel1Earnings
- TotalLevel2Price
- TotalLevel2NetPrice
- TotalLevel2Commission
- TotalLevel2OverageSplit
- TotalLevel2Overage
- TotalLevel2Markup
- TotalLevel2Earnings
- TotalLevel3Price
- TotalLevel3NetPrice
- TotalLevel3Commission
- TotalLevel3OverageSplit
- TotalLevel3Overage
- TotalLevel3Markup
- TotalLevel3Earnings
Example:
"QuoteNumber":"31011",”Project”:”Test Project – Test Phase4”
Phase Header
Request: “PhaseHeader”:”comma delimited list of possible fields”
Note: “PhaseHeader”:”*” is supported.
Only those fields with non-blank values are listed on the response.
Response: “Phase”:{“field”:”value”,”field”:”value”,etc.}
Fields
- DBID
- ProjectID
- PackageID
- PackageName
- Owner
- Active
- StartDate
- CompletionDate
- Valuation
- SquareFootage
- ValuationLighting
- ValuationControls
- SpecifiedProject
- ImportantProject
- PSpecified
- PApproved
- GCAwarded
- GCFullText
- GCDistributorID
- GCContactDBID
- GCContactID
- ECAwarded
- ECFullText
- ECDistributorID
- ECContactDBID
- ECContactID
- LowDistributorAwarded
- LowDistributorID
- LowDistContactDBID
- LowDistContactID
- ExternalProjectNubmer
- ProjectRank
Example:
"Phase":{"PSpecified":"0.00","PackageName":"Initial Phase","Valuation":"0.00","PApproved":"0.00","DBID":"GENERAL TEST","SpecifiedProject":"N","ProjectRank":"0","ProjectID":"9739","GCContactID":"0","LowDistContactID":"0","SquareFootage":"0","StartDate":"2014-03-20","ECContactID":"0","Active":"Y","PackageID":"9740","CompletionDate":"2014-03-20"}
Quote Lines
Request: “QuoteLine”:”comma delimited list of possible fields”
Note: “QuoteLine”:”*” is supported. Only those fields with non-blank values are listed on the response.
Response: “QuoteLines”:{{“field”:”value”,”field”:”value”,etc.}]
Fields:
- Code
- Quantity
- Type
- ManufacturerID
- Catalog
- Description
- Note
- INote
- Cost
- Sell
- Level1
- Level2
- Level3
Example:
"QuoteLines": [{"Description":"","ManufacturerID":"","Quantity":"null","Code":"N","Cost":"","Catalog":"TESTPART","Type":"TESTNOTE","INote":"","Sell":"","Note":"","Level2":"","Level3":"","Level1":""},{"Description":"","ManufacturerID":"","Quantity":"1.00","Code":"","Cost":"","Catalog":"4567","Type":"TEST","INote":"","Sell":"$12.00","Note":"TEST","Level2":"","Level3":"","Level1":"$12.00"}
Manufacturers
(could be multiple per quote)
Request: “Manufacturer”:”comma delimited list of possible fields”
Note: “Manufacturer”:”*” is supported.
Response: “Manufacturer”:{{“field”:”value”,”field”:”value”,etc.}]
Fields:
- Freight Is
- MFG Quote
- PO Notes
- Overage
- Spec/Prd/Dest
- Commission
- Cost
- Base
- PO Number
- MFG WWW
- PO Earnings
- Landed
- MFG Notes (Will retain Formatting)
- TotalPrice
- Manufacturer
- Profit
- PO Total
- $Freight Allowed
- PO Numbers
- PO AgencyTotalEarnings
- Earnings
- Net
Example:
"Manufacturers": [{"Freight Is": "Auto Calculate","MFG Quote": "","PO Notes": "","Overage": "$0.00","Spec/Ord/Dest": "Split","Commission": "$9.00","Cost": "$0.00","Base": "$90.00","PO Number": "","MFG WWW": "","PO Earnings": "","Landed": "$0.00","MFG Notes": "","TotalPrice": "$90.00","Manufacturer": "Test Lights Inc, North","Profit": "$0.00","PO Total": "","$Freight Allowed": "Minimum Order","PO Numbers": "","PO AgencyTotalEarnings": "","Earnings": "$9.00","Net": "$90.00"},{"Freight Is": "Auto Calculate","MFG Quote": "","PO Notes": "","Overage": "$0.00","Spec/Ord/Dest": "Split","Commission": "$54.00","Cost": "$0.00","Base": "$540.00","PO Number": "",MFG WWW: "","PO Earnings": "","Landed": "$0.00","MFG Notes": "","TotalPrice": "$540.00","Manufacturer": "Test Lights Inc, West","Profit": "$0.00","PO Total": "","$Freight Allowed": "Plus Freight","PO Numbers": "","PO AgencyTotalEarnings": "","Earnings": "$54.00","Net": "$540.00"}
Customers
(could be multiple per quote)
Request: “Customers”:”comma delimited list of possible fields”
Note: “Customers”:”*” is supported.
Response: “QuoteLines”:{{“field”:”value”,”field”:”value”,etc.}]
Fields:
- Column
- CompanyName
- CustomerID
- IncludeLamps
- RepresentativeID
- Revision
- WinLoss
- RevisionDate
- LotPrice
- Markup
Example:
Customers: [{"RevisionDate":"2012/10/22","CompanyName":"ABC Distributors","IncludeLamps":true,"WinLoss":0,"LotPrice":"$0.00","Revision":0,"Column":0,"Markup":"0.00","CustomerID":"ABC DIST","RepresentativeID":""},{"RivisionDate":"2012/10/22","CompanyName":"Customer 1","IncludeLamps":true,"WinLoss":0,"LotPrice":"$0.00","Revision":0,"Column":0,"Markup":"0.00","CustomerID":"CUSTOMER","RepresentativeID":""}]
Customer Contact
(for customer - could be multiple per customer)
Request: “CustomerContact”:”comma delimited list of possible fields”
Note: “CustomerContact”:”*” is supported.
Response: “Contact”:{{“field”:”value”,”field”:”value”,etc.}]
Fields:
- First Name
- Middle Name
- Last Name
Example:
"Customers":[{"CompanyName":"ABC Distributors","CustomerID":"ABC DIST",”Contact”:{"FirstName": "John","LastName": "Doe"}}]
Specifiers
(could be multiple per quote)
Request: “Specifiers”:”comma delimited list of possible fields”
Note: “Specifiers”:”*” is supported.
Response: “Specifiers”:{{“field”:”value”,”field”:”value”,etc.}]
Fields
- Company Name
- Customer ID
- FreeForm (description)
- Role
- Influence
- SalesUserID
Example:
"Specifiers":[{"Role":"Architect","CompanyName":"ABC","FreeForm":"","Influence":0},{"Role":"Engineer","CompanyName":"DEF","FreeForm":"","Influence":0}]
Specifier Contact
(could be multiple per specifier)
Request: “SpecifierContact”:”comma delimited list of possible fields”
Note: “SpecifierContact”:”*” is supported.
Response: “Contact”:{{“field”:”value”,”field”:”value”,etc.}]
Fields
- First Name
- Middle Name
- Last Name
Example:
"Specifiers": [{"Role": "ARCHIT.","CompanyName": "ABC Architects","Contact":{"FirstName": "John","LastName": "Doe"}}]
User Tags
(could be multiple per quote)
Request: “UserTag”:”comma delimited list of possible fields”
Note: “UserTag”:”*” is supported.
Response: “UserTags”:{{“field”:”value”,”field”:”value”}]
Fields
-
Tag Key
-
Tag Value
Example:
"UserTags": [{"TagKey": "Order Type","TagValue": "Residential"}]
Example of a software-based call with all available options:
{
"UpdateDate":"5/1/2023:5/20/2023",
"QuoteHeader":"*",
"PhaseHeader":"*",
"QuoteLine":"*",
"Manufacturers":"*",
"Customers":"*",
"CustomerContact":"*",
"Specifiers":"*",
"SpecifierContact":"*",
"USerTag":"*"
}
Example of a Browser-based call with all available options:
<WebDatabaseURL>/API?ajax=OrderTS&DBID=<value>&UpdateDate=<value>&QuoteHeader=*&PhaseHeader=*&QuoteLine=*&Manufacturers=*&Customers=*&CustomerContact=*&Specifiers=*&SpecifierContact=*&USerTag=*&APICallCache=#
Comments
0 comments
Please sign in to leave a comment.