Adaco Sales Item API Guide & Reference
Introduction
This API retrieves sales items within a Fourth Adaco outlet for display on a POS or other system. You can get:
- All retail items or menu items for an outlet
- Details of an individual item in a property, identified by its PLU
- IDs for Adaco properties (locations) and outlets (sites)
Quick Facts
Integration type | HTTP REST with JSON |
Authentication | Basic authentication |
Availability | Fourth Inventory for Hotels customers |
Testing | Test environment is available on request |
More information | N/A |
Updates
You can find any updates on the Release Notes page for the Sales Item API.
Get Access
Before integrating, you’ll need a new user account set up in Fourth with access rights to the API.
Step 1: create a user group
Create a user group for accessing the API within one of the Fourth properties — we recommend the central purchasing property where there is one.
For security, we also recommend that you limit the user group to access to just the “Sales Item API”. The setting for this is within the user group's Property > API Access sub-section.
Step 2: create a user account
In the same property, create a user account. Assign it to the API user group. When saving the new user account we recommend that the system-generated password is ignored, as this will not be used for accessing the application.
Step 3: Get the API key
Right click on the user account and select the option “Reset API Key”. When confirmed this will display a randomly-generated 40 character API key. Copy and provide this value, as well as the property number in which you created the user account, to whoever is accessing to the API.
Request header
For all requests, you must include Basic authentication in the header.
Example header:
GET //Locations/{Location Number}/Sites HTTP/1.1 Host: instance.example.com Authorization: Basic MTI6NW1SVWMyejRJSEc4MjJUa0FiWXNQWHV4cllselhYeFFSbE8yaXBUdg== Accept: application/json
Field | Description |
---|---|
Authorization |
The property number and the API key, separated by a colon, and then base64 encoded. The values are case-sensitive. For example, if the property number is 12, and the API key is 5mRUc2z4IHG822TkAbYsPXuxrYlzXXxQRlO2ipTv, then you need to create the string: 12:5mRUc2z4IHG822TkAbYsPXuxrYlzXXxQRlO2ipTv Then base64 encode this. The result is: MTI6NW1SVWMyejRJSEc4MjJUa0FiWXNQWHV4cllselhYeFFSbE8yaXBUdg== |
Accept | The data format for the response. Options are: application/json, text/json. |
Resources
Fourth will provide you with the base path for requests. Each resource exposes a single GET method. Some of the resources have query parameters for filtering requests.
Resource name | Description |
---|---|
Locations | The Locations resource returns all properties within the Adaco instance. Note: Locations are synonymous with Adaco properties. |
Locations/{Location Number}/Sites | The Sites resource returns all outlets within the specified property. Note: Sites are synonymous with Adaco outlets. |
Locations/{Location Number}/Sites/{Site Number}/RetailItems |
The RetailItems resource returns retail products listed in the order guide of the specified Adaco outlet. You can retrieve the full details for each sales item, including up to 15 customizable fields that you can use to record information specific to your POS system. Only products which are assigned a PLU are returned. |
Locations/{Location Number}/Sites/{Site Number}/MenuItems |
The MenuItems resource returns recipes listed in the order guide of the specified Adaco outlet. You can retrieve the full details for each sales item, including up to 15 customizable fields that you can use to record information specific to your POS system. Only recipes which are assigned a PLU are returned. |
Locations/{Location Number}/PLU/{PLU} | The PLU resource returns the details of any sales item with the PLU number, including the order quantities in outlets which list the item. As a single PLU could be assigned to different items in different outlets this resource can return a collection of items. |
Filtering RetailItems and MenuItems results
You can filter results from the RetailItems and MenuItems resources using query parameters.
Query parameter | Description |
---|---|
date |
Returns only records created or modified since the specified date. The format you must use is dd/MM/yyyy. For example, New Year's Eve is: 31/12/2018 |
nutrition |
Specifies that you want the full nutritional values for the menu item. This parameter does not require a value. To add nutrition data in the response, Fourth needs to perform additional processing. This can slow response times, so we recommend only including this parameter if your use case requires it (rather than by default). This query parameter works with MenuItems requests only. |
full |
Specifies that you want three additional fields included in the response: price, onOrder, and retailAttributes. This parameter does not require a value. To add this data in the response, Fourth needs to perform additional processing. This can significantly slow the response time, so we recommend only including this parameter if your use case requires it. |
For example, to include the nutrition information for your menu items:
GET <ROOT>/Locations/1/Sites/1/MenuItems?nutrition
To include the sales-related data for retail items:
GET <ROOT>/Locations/1/Sites/1/retailItems?full
To retrieve only retail items created or modified since 2018:
GET <ROOT>/Locations/1/Sites/1/retailItems?date=01/01/2018
To include all nutrition and sales-related data for menu items, created or modified since April 2018:
GET <ROOT>/Locations/1/Sites/1/MenuItems?full&nutrition&date=01/04/2018
Food sensitivity information in MenuItem and RetailItem responses
Each customer can set their own custom food sensitivities for a retail item or menu item. There are three values that can be set:
- Yes — the item contains the ingredient or allergen
- No — the item does not contain the ingredient or allergen
- Maybe — equivalent to “may contain”
The information can come from two sources; either the product's own list of ingredients or the user. As a safety precaution, the most cautious value is returned by the API. For example, if the product lists “Maybe” and the user-specified value is “No”, then the API returns “Maybe”.
If a value isn’t set at all, then the API returns a null value. However, do not treat this as equivalent to the value being “no”. If necessary, in your own system set this to “unknown” or a similar term.
Each customer chooses how to organise products or ingredients in these fields. For example:
"CustomAllergen": {
"Eggs": "Yes",
"Fish": "No",
"Dairy": "Maybe"
},
"CustomDietaryGuidelines": {
"Pork": "No",
"Alcohol": "Yes"
},
"CustomIntolerance": {
"Gluten": "No",
"Lactose": "Maybe",
"Chili": ""
},
Response to requests
Successful requests
Successful GET requests receive an HTTP 200 OK response with the data requested in the response body.
Unsuccessful requests
Requests with invalid credentials will receive an HTTP 403 Prohibited response, while requests to the wrong URL will receive an HTTP 404 Not Found response.
Making Locations requests
To get a list of your Adaco properties, use the request:
GET <ROOT>/Locations
Response body
If your request is accepted then Fourth sends an HTTP 200 OK response with an array of properties.
[ { "Description": "Hotel Deluxe", "LocationId": 1 }, { "Description": "Hotel Klasy Średniej", "LocationId": 2 }, { "Description": "Hotel Barato", "LocationId": 3 } ]
Member | Type | Description |
---|---|---|
Description |
string |
The name of the Adaco property. E.g. “Hotel Deluxe” |
LocationId |
number |
The number of the Adaco property E.g. 2 |
Making Site requests
To get a list of your Adaco outlets for a property (in this example, "1"), use the request:
GET <ROOT>/Locations/1/Sites
Response body
If your request is accepted then Fourth sends an HTTP 200 OK response with an array of sites for the specified property.
[ { "RevenueCenter": "1|1, 1|2, 1|99, 1|10", "SiteId": 1, "SiteName": "PIZZERIA ITALIANO" }, { "RevenueCenter": "2|1, 2|2, 2|99", "SiteId": 2, "SiteName": "L 'ESCARGOT BRASSERIE" }, { "RevenueCenter": "3|1, 3|2", "SiteId": 3, "SiteName": "GOLF SHOP" } ]
Member | Type | Description |
---|---|---|
RevenueCenter | string |
A comma separated list of any POS revenue centers associated with the Adaco outlet. |
SiteId | number |
The number of the Adaco outlet; for example, 200. |
SiteName | string |
The name of the Adaco outlet; for example, All Day Dining Restaurant. |
Making RetailItems requests
To get a list of retail items for a specific Adaco outlet (in this example, at property 1 and outlet 20), use the request:
GET <ROOT>/Locations/1/Sites/20/retailItems
Response body
If your request is accepted then Fourth sends an HTTP 200 OK response with an array of retail items for the specified outlet.
[ { "Allergen": [ "Milk" ], "BarCodes": [ { "BarCode": "000039804", "Symbology": "CODE39" }, { "BarCode": "0000398041", "Symbology": "CODE39" }, { "BarCode": "0398040001010", "Symbology": "EAN13" } ], "BinNumber": null, "Brand": null, "CategoryName": "BEVERAGES - SOFT", "CategoryNumber": 1200013, "CostPrice": 315, "CreatedDate": "09-02-2016 12:53:47 GMT-05:00", "CustomAllergen": { "Eggs": "No", "Fish": "No", "Milk": "Maybe" }, "CustomDietaryGuidelines": { "Pork": "No", "Alcohol": "No" }, "CustomIntolerance": { "Gluten": "No", "Lactose": "Maybe", "Chili": "" }, "Description": "7UP CAN 150ML ", "DetailNumber": 1, "DietaryGuidelines": [], "Intolerance": [ "Lactose" ], "LanguageDescriptions": [ { "Name": "fr-FR", "Value": "7UP CAN 150ML " } ], "ModifiedDate": "09-01-2018 13:19:50 GMT-05:00", "OnOrder": 0, "ParStock": -0.03333333333333333, "PLU": "4532x", "POSFields": [ { "Name": "ServiceCharge", "Value": "RC3" }, { "Name": "MenuGroup", "Value": "2" }, { "Name": "WeightedItem", "Value": "Y" }, { "Name": "LabelText", "Value": "SS" }, { "Name": "Tax", "Value": "10" } ], "Price": 0, "ProductNumber": 39804, "ReOrder": 0, "RetailAttributes": "", "SKU": null, "SegmentName": "Food and Bev", "SegmentNumber": 26, "SellingPrice": 12.5, "SellingUnit": "CA", "SellingWeight": 0, "ShortDescription": "7UP CAN 15", "StockQuantity": 0, "SubCategoryName": "CANS & BOTTLES", "SubCategoryNumber": 1 }, { "Allergen": [ "Milk" ], "BarCodes": [ { "BarCode": "000039809", "Symbology": "CODE39" } ], "BinNumber": "123", "Brand": null, "CategoryName": "BEVERAGES - SOFT", "CategoryNumber": 1200013, "CostPrice": 10, "CreatedDate": "09-02-2016 12:53:47 GMT-05:00", "CustomAllergen": { "Eggs": "No", "Fish": "No", "Milk": "Maybe" }, "CustomDietaryGuidelines": { "Pork": "No", "Alcohol": "No" }, "CustomIntolerance": { "Gluten": "No", "Lactose": "Maybe", "Chili": "" }, "Description": "7UP CAN 300ML ", "DetailNumber": 1, "DietaryGuidelines": [], "Intolerance": [ "Lactose" ], "LanguageDescriptions": [ { "Name": "fr-FR", "Value": "7UP CAN 300ML " } ], "ModifiedDate": "27-03-2018 03:18:24 GMT-04:00", "OnOrder": 0, "ParStock": -1, "PLU": "0398090102", "POSFields": [ { "Name": "ServiceCharge", "Value": "0" }, { "Name": "MenuGroup", "Value": "2" }, { "Name": "WeightedItem", "Value": "N" }, { "Name": "LabelText", "Value": "10" }, { "Name": "Tax", "Value": "10" } ], "Price": 0, "ProductNumber": 39809, "ReOrder": 0, "RetailAttributes": "", "SKU": null, "SegmentName": "Food and Bev", "SegmentNumber": 26, "SellingPrice": 2.5, "SellingUnit": "CN", "SellingWeight": 0, "ShortDescription": "LEMONADE", "StockQuantity": 0, "SubCategoryName": "CANS & BOTTLES", "SubCategoryNumber": 1 } ]
Member | Type | Description |
---|---|---|
Allergen |
Array |
This array is deprecated for new integrations. Please use CustomAllergen instead for allergen information. The array shows allergens that are listed as either yes and maybe in the CustomAllergen object; for example, Milk. |
BarCodes |
Array |
Each item can be assigned zero or more bar codes. These are returned as a collection of pairs including the Bar Code Symbology and the Bar Code Value. For example: "BarCode" : "123456789018", |
BinNumber |
String |
A customer assigned bin number; for example, 123. |
Brand |
String |
For example, Heinz. |
CategoryName |
String |
The name of the category to which the item is assigned; for example, Wines. |
CategoryNumber |
Number |
The number of the category to which the item is assigned. |
CostPrice |
Decimal |
The location level purchase cost of the item. This is location wide and not site specific. |
CreatedDate |
DateTime |
The date and time that the product or product detail was created expressed in UTC. |
CustomAllergen | Object |
An object that contains name : value pairs with allergen information for the item. For example, this indicates there is no fish in the item: "Fish" : "No" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
CustomDietaryGuidelines | Object |
An object that contains name : value pairs with dietary guidelines for the item. For example, this indicates there is pork in the item: "Pork" : "Yes" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
CustomIntolerance | Object |
An object that contains name : value pairs with intolerance information for the item. For example, this indicates there is gluten in the item: "Gluten" : "Yes" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
Description |
String |
The full description of the product as defined in the Adaco product master. For example, Cloudy Bay Chardonnay. |
DetailNumber |
Number |
The Adaco Product Detail Number. Each product in Adaco can have multiple product details assigned for different purchase unit configurations. |
DietaryGuidelines |
Array |
This array is deprecated for new integrations. Please use CustomDietaryGuidelines instead for dietary guidelines. The array shows guidlines that are listed as either yes and maybe in the CustomDietaryGuidelines object; for example, Pork. |
Intolerance |
Array |
This array is deprecated for new integrations. Please use CustomIntolerance instead for intolerance information. The array shows intolerances that are listed as either yes and maybe in the CustomIntolerance object; for example, Gluten. |
LanguageDescriptions |
Array |
A collection of name : value pairs including the culture code and language description for an item (an item can have multiple language descriptions). For example: "LanguageDescriptions": [{ |
ModifiedDate |
DateTime |
The date and time that the product or product detail was last modified expressed in UTC. |
OnOrder (optional) |
Decimal |
The quantity of the item on order expressed in the selling unit. On order quantity will include outstanding internal requisitions or outstanding purchase orders. If you want this field in the response, you must include the full query parameter in your request. |
PLU |
String |
The PLU is typically the code assigned to the item within the POS system. The PLU is the primary key for the RetailItems collection. A single Product detail in Adaco can have 4 different PLUs; one assigned to each of the possible selling units. If more than one PLU is assigned to a single product detail a separate record for each PLU is returned. |
POSFields |
Array |
Customer defined custom fields specifically required by the 3rd party system. These are returned as a collection of Name : Value pairs. For example: { “Meal Period” : “Lunch” }, |
ParStock |
Decimal |
The optimal stock holding quantity of the item. |
Price (optional) |
Decimal |
The weighted average inventory cost of the item expressed in the selling unit; e.g. $12.50. This value is specific to each Site (Adaco outlet). If you want this field in the response, you must include the full query parameter in your request. |
ProductNumber |
Number |
The Adaco product number. |
ReOrder |
Decimal |
The minimum stock holding quantity for the item at which additional stock should be ordered. |
RetailAttributes (optional) |
Collection |
Customer defined retail attributes. These are returned as a collection of Name : Value pairs. E.g. Size : Large, Colour : Blue. Note in Adaco versions prior to 4.6.63 this field is returned as a single concatenated string value. If you want this field in the response, you must include the full query parameter in your request. |
SKU |
String |
A customer-defined identifier for the item. |
SegmentName |
String |
The name of the segment to which the item is assigned. For example, Beverages. |
SegmentNumber |
Number |
The number of the segment to which the item is assigned. In Adaco items are assigned to a 3 tier classification of Segment > Category > Sub-categories. A segment contains one or more categories, which can contain one or more sub-categories. |
SellingPrice |
Decimal |
The selling price of the PLU / Item E.g. $25.00. |
SellingUnit |
String |
The unit of measure code of the sales unit. For example, EA, BX, BO. |
SellingWeight | Decimal | The selling weight in ounces. This field is deprecated, and new integrations should not use it. |
ShortDescription |
String |
An alternative description for the item which may be more appropriate for inclusion on a customer facing POS receipt. For example, House White. |
StockQuantity |
Decimal |
The quantity of the item on hand within the specified outlet expressed in the selling unit. For example, 12.5. |
SubCategoryName |
String |
The name of the sub-category to which the item is assigned. For example, White Wines. |
SubCategoryNumber |
Number |
The number of the sub-category to which the item is assigned. |
Making MenuItem requests
To get a list of menu items for a specific Adaco outlet (in this example, at property 1 and outlet 20), use the request:
GET <ROOT>/Locations/1/Sites/20/MenuItems
Response body
If your request is accepted then Fourth sends an HTTP 200 OK response with an array of menu items for the specified outlet.
[ { "Allergen": [ "Eggs", "Dairy", "Fish" ], "BarCodes": [], "Categories": [ { "CategoryName" : "Prepared goods", "CategoryNumber" : 1200034, "IsMainCategory" : true, "SegmentName" : "Deli", "SegmentNumber" : 28, "SubCategoryName" : "Sandwiches", "SubCategoryNumber" : 4 } ], "CostPrice": 11.42, "CreatedDate": "03-04-2017 08:13:00 GMT-04:00", "CriticalDetails": "", "CustomAllergen": { "Eggs": "Yes", "Fish": "Yes", "Dairy": "Yes" }, "CustomDietaryGuidelines": { "Pork": "No", "Alcohol": "No" }, "CustomIntolerance": { "Gluten": "Yes", "Lactose": "Yes", "Chili": "No" }, "Description": "SMOKED SALMON SANDWICH", "DietaryGuidelines": [], "Intolerance": [ "Gluten", "Lactose" ], "LanguageDescriptions": [ { "Name": "en-GB", "Value": "SMOKED SALMON SANDWICH" }, { "Name": "is-IS", "Value": "SMOKED SALMON SANDWICH" } ], "Method": "", "MicrobiologicalStatement": "", "ModifiedDate": "12-03-2018 09:31:00 GMT-04:00", "Nutrition": [], "OnOrder": 0, "ParStock": -1, "PLU": "445566", "POSFields": [ { "Name": "ServiceCharge", "Value": "RC004" }, { "Name": "MenuGroup", "Value": "1" }, { "Name": "WeightedItem", "Value": "Y" }, { "Name": "LabelText", "Value": "SMOKED SALMON SANDWICH" }, { "Name": "Tax", "Value": "10" } ], "PreparedSize": "10.000DZ", "Price": 11.42, "ReOrder": 0, "RecipeNumber": 519383, "SellingPrice": 12.95, "SellingUnit": "1.000EA", "ServingSuggestions": "", "ShortDescription": "", "StockQuantity": 0, "UsageType": "Recipe" }, { "Allergen": [ "Dairy" ], "BarCodes": [], "Categories": [ { "CategoryName" : "Prepared goods", "CategoryNumber" : 1200046, "IsMainCategory" : true, "SegmentName" : "Deli", "SegmentNumber" : 28, "SubCategoryName" : "Pizza", "SubCategoryNumber" : 6 } ], "CostPrice": 0, "CreatedDate": "16-02-2007 00:00:00 GMT-05:00", "CriticalDetails": "", "CustomAllergen": { "Eggs": "No", "Fish": "No", "Dairy": "Yes" }, "CustomDietaryGuidelines": { "Pork": "Maybe", "Alcohol": "No" }, "CustomIntolerance": { "Gluten": "Yes", "Lactose": "Yes", "Chili": "" }, "Description": "PIZZA PESTO", "DietaryGuidelines": [ "Pork" ], "Intolerance": [ "Gluten", "Lactose" ], "LanguageDescriptions": [ { "Name": "en-GB", "Value": "PIZZA PESTO" } ], "Method": "", "MicrobiologicalStatement": "", "ModifiedDate": "13-12-2017 05:08:00 GMT-05:00", "Nutrition": [], "OnOrder": 0, "ParStock": -1, "PLU": "501671", "POSFields": [ { "Name": "ServiceCharge", "Value": "RC004" }, { "Name": "MenuGroup", "Value": "2" }, { "Name": "WeightedItem", "Value": "Y" }, { "Name": "LabelText", "Value": "PIZZA PESTO" }, { "Name": "Tax", "Value": "10" } ], "PreparedSize": "1.000EA", "Price": 0, "ReOrder": 0, "RecipeNumber": 501671, "SellingPrice": 9.52, "SellingUnit": "1.000EA", "ServingSuggestions": "", "ShortDescription": "", "StockQuantity": 0, "UsageType": "Recipe" } ]
Member | Type | Description |
---|---|---|
Allergen |
Array |
This array is deprecated for new integrations. Please use CustomAllergen instead for allergen information. The array shows allergens that are listed as either yes and maybe in the CustomAllergen object; for example, Dairy. |
BarCodes |
Array |
Each item can be assigned zero or more bar codes. These are returned as a collection of pairs including the Bar Code Symbology and the Bar Code Value. For example, EAN13, 123456789018. |
Categories | Array | Array of segment, category, and subcategory information. Recipes can be assigned to multiple categories and sub categories. |
Categories.CategoryName |
String |
The name of the Category to which the item is assigned. For example, Wines. |
Categories.CategoryNumber |
Number |
The number of the category to which the item is assigned. |
Categories.IsMainCategory | Boolean |
Menu items can be tagged with multiple categories, one of which will be the default or "main" category. You can choose to use the full categorization in your system; however, if you only need to (or want to use) one in your system, then use the main categorization. This is the true value; for example: "IsMainCategory" : true |
Categories.SegmentName |
String |
The name of the segment to which the item is assigned. For example, Beverages. |
Categories.SegmentNumber |
Number |
The number of the segment to which the item is assigned. In Adaco items are assigned to a 3 tier classification of Segment > Category > Sub-categories. A segment contains one or more categories, which can contain one or more sub-categories. |
Categories.SubCategoryName |
String |
The name of the sub-category to which the item is assigned. For example, White Wines. |
Categories.SubCategoryNumber |
Number |
The number of the sub-category to which the item is assigned. |
CostPrice |
Decimal |
The location level purchase cost of the item. This is location wide and not site specific. |
CreatedDate |
DateTime |
The date and time that the product or product detail was created expressed in UTC. |
CriticalDetails |
String |
A plain text field with RTF tags removed. |
CustomAllergen | Object |
An object that contains name : value pairs with allergen information for the item. For example, this indicates there is no fish in the item: "Fish" : "No" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
CustomDietaryGuidelines | Object |
An object that contains name : value pairs with dietary guidelines for the item. For example, this indicates there is pork in the item: "Pork" : "Yes" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
CustomIntolerance | Object |
An object that contains name : value pairs with intolerance information for the item. For example, this indicates there is gluten in the item:/ "Gluten" : "Yes" The value maybe is equivalent to "may contain"; and a null value is equivalent to "unknown". See also the section on Food sensitivity. |
Description |
String |
The full name of the recipe in Adaco. For example, Cheese and Tomato Pizza. |
DietaryGuidelines |
Array |
This array is deprecated for new integrations. Please use CustomDietaryGuidelines instead for dietary guidelines. The array shows guidlines that are listed as either yes and maybe in the CustomDietaryGuidelines object; for example, Pork. |
Intolerance |
Array |
This array is deprecated for new integrations. Please use CustomIntolerance instead for intolerance information. The array shows intolerances that are listed as either yes and maybe in the CustomIntolerance object; for example, Gluten. |
LanguageDescriptions |
Array |
A collection of name : value pairs including the culture code and language description for an item (an item can have multiple language descriptions). For example: "LanguageDescriptions":[{ |
Method |
String |
A plain text field with RTF tags removed. |
MicrobiologicalStatement |
String |
A plain text field with RTF tags removed |
ModifiedDate |
DateTime |
The date and time that the product or product detail was last modified expressed in UTC. |
Nutrition (optional) |
Array |
A collection of Name : Value pairs which will contain the name of each nutrient and the value of the nutrient present in the item. For example: { "Name" : "Calories", Note: This field is optional and will only be populated if you include the nutrition query parameter in your request. |
OnOrder |
Decimal |
The quantity of the item on finally approved but not yet issued internal requisitions expressed in selling units. |
ParStock |
Decimal |
The optimal stock holding quantity of the item. |
PLU |
String |
The PLU is typically the code assigned to the item within the POS system. The PLU is the primary key for the MenuItems collection. |
POSFields |
Array |
Customer-defined custom fields specifically required for a partner or other third party system. These are returned as a collection of Name : Value pairs. For example: { "Meal Period" : "Lunch" }, |
PreparedSize |
String |
The prepared quantity and unit for the recipe. For example, 12 kg. |
Price |
Decimal |
The recipe Cost per Serving is the average across all sites. Where a recipe contains an inactive or uncosted ingredient the CostPrice returned could be null. |
ReOrder |
Decimal |
The minimum stock holding quantity for the item at which additional stock should be ordered. |
RecipeNumber |
Number |
The Adaco recipe number. |
SellingPrice |
Decimal |
The selling price of the item. The selling price can be specific for the site or, where there is no site-specific selling price, the default selling price is returned. For example, $12.95. |
SellingUnit |
String |
The portion size of the item; For example, 200g. |
ServingSuggestions |
String |
A plain text field with RTF tags removed. |
ShortDescription |
String |
An alternative description for the item which may be more appropriate for inclusion on a customer facing POS receipt. For example, Mushroom Pizza. |
StockQuantity |
Decimal |
The stock on hand for the item within the specified site expressed in selling units. |
UsageType |
String |
Used As Recipe, Add-On, Menu etc. |
Making PLU requests
To get a list of sales items using the specified PLU for a property (in this example, property 1), use the request:
GET <ROOT>/Locations/1/PLU/15620
Response body
If your request is accepted then Fourth sends an HTTP 200 OK response with an array of sales items by PLU for the specified property.
[ { "AdacoItemNumber": "39809-1", "ItemType": "Product", "Outlets": [ { "CostPrice": 1.25, "InventoryOnHand": 126 , "OnOrder": 36, "OutletName": "PIZZERIA ITALIANO", "OutletNumber": 1, "SellingPrice": 2.5 }, { "CostPrice": 1.26, "InventoryOnHand": 11, "OnOrder": 24, "OutletName": "L'ESCARGOT BRASSERIE", "OutletNumber": 2, "SellingPrice": 2.5 }, { "CostPrice": 1.25, "InventoryOnHand": 17, "OnOrder": 0, "OutletName": "GOLF SHOP", "OutletNumber": 3, "SellingPrice": 2.5 } ], "PLU": "0398090102", "PLUDescription": "7UP CAN 300ML ", "PLUShortDescription": "LEMONADE", "Status": "Active", "Unit": "Can" } ]
Member | Type | Description |
---|---|---|
AdacoItemNumber |
String |
Either the Adaco product number or the Adaco recipe number. For products the product number will be appended with the product detail number, separated by a hyphen; for example, 123-1. |
ItemType |
String |
Will return either Product or Recipe according to the Adaco item to which the PLU is assigned. |
Outlets |
Collection |
A collection containing each outlet where the returned item is listed in the inventory guide. |
Outlets.CostPrice |
Number |
The cost of the item in the specified outlet. |
Outlets.InventoryOnHand |
Number |
The current on-hand inventory of the item within the specified outlet. |
Outlets.OnOrder |
Number |
The number of units on order for the specified outlet. |
Outlets.OutletName |
String |
The name of the Adaco outlet. |
Outlets.OutletNumber |
Integer |
The number of the Adaco outlet. |
Outlets.SellingPrice |
Number |
The designated selling price for the item within the specified outlet. Recipes can be sold at different prices in different outlets. |
PLU |
String |
The PLU which is submitted in the request. |
PLUDescription |
String |
The name of the retail product or recipe against which the PLU is assigned. |
PLUShortDescription |
String |
An optional second, abbreviated name for the item. Typically this is the name that is exposed to and used by the POS system. |
Status |
String |
Either Active or Inactive. |
Unit |
String |
The unit of measure to which the PLU is assigned; for example, Each. |