RamBase REST APIs
API resource for searching products. Note that quantity for calculating prices will get the default value 1 if omitted. If you provice forObjectType and forObjectId, you will get prices based on the customer and currency of the document.
HTTP method | GET |
URI | https://api.rambase.net/sales/product-search?keywords={keywords}&in={in}&forObjectType={type}&forObjectId={id}&forQuantity={qty} |
Supported formats | Xml, Html, Json (ex. $format=json) |
Maximum page size ($top) | 80 |
Custom fields | Custom fields supported |
Successful HTTP status code | 200 |
API resource identifier | 5354, version 9 |
The following body must be added to the request. Mouse over fieldnames for description and other useful information about the fields. Note that fields in bold are required/mandatory.
The query string is placed after the resource URL, seperated with a questionmark (?). The query string is composed of a series of query parameters with values. See the page about query parameters on how to use these parameters.
keywords String, optional | Space seperater list of keywords to search for. |
in String, optional |
Commalist of fields to search. Possible values are: ProductName, ProductDescription, CustomersProductName, ReplacementName. Default value are: "ProductName,ProductDescription".
Default: ProductName,ProductDescription |
forObjectType String, optional | Type of object |
forObjectId Integer, optional |
Identifier of the object
Minimum: 100000 |
forQuantity Decimal, optional |
Quantity used to calculate lowest and suggested prices.
Minimum: 0, Default: 1 |
$showDomainDescriptions Boolean, optional | Set to "true" to include domain descriptions for fields using domain values. See the Domain values page for more information. Default value is false. |
$lang String, optional | Specifies the language used in the response, following the 3-letter ISO-639-1 [lll] |
$access_token String, optional | After successful login you get an access token which needs to be provided in all API requests. Even though it is possible to pass this token as query parameter, we recommended passing it using the HTTP request header as described in Authorization. Note that all access tokens have an expiration time. |
$db String, optional | Set the database/company for the request |
$expand String, optional | Use to include output fields that are not returned by default in the response. Accepts a comma-separated list of expandable field names. See the Expand and Select page for more information. |
$select String, optional | Use to define the fields to return in the response. Accepts a comma-separated list of field names. See the Expand and select page for more information. |
$useMinimumVersion Integer, optional | Used to run a new version of an API resource when your API client is running a deprecated API resource. See the Breaking changes page for more information. |
$format String, optional | Set the format of the response to use for the request. Accepted values are "xml", "html", "jsonstream", "json" |
$showCustomFields Boolean, optional | Set to "true" to include custom fields. Default value is false. |
$top String, optional | Specifies number of rows to return in each page. Maximum limit is specific for each API resource. Default value is 10. |
$pageKey String, optional | Use to navigate to first, previous, next or last page in list. Add $expand=PagingDetails to add the different keys to the response. |
$filter String, optional | Use to filter the result list, see the Filtering and sorting page for more information. |
$orderby String, optional | Use to order the result list, see the Filtering and sorting page for more information. |
$inlinecount String, optional | Set to "allpages" to include total number of rows in the response. Possible values are: "allpages", "none" |
Read more about filters and sorting on how to use filter parameters and named filters.
ActiveProducts() Named filter | Active products. Products that can be sold or produced. |
ExpiredProducts() Named filter | Expired and discontinued products |
NewAndActiveProducts() Named filter | New and active products |
NewProducts() Named filter | Products pending documentation or approval |
CountryOfOriginCode String | Two-character code (ISO 3166) identifying the default country where the product is produced. This value is inherrited from the assigned goods reception(s). If not country of origin is specified for the goods reception(s), country of origin is retrieved from the product. If assigned to multiple goods receptions with different origin, the field will be empty. |
CreatedAt Datetime | Date and time of creation. Available macros: now(), startOfDay(), endOfDay(), currentDate(), currentMonth(), currentYear(), startOfMonth(), endOfMonth(), startOfYear(), endOfYear(), startOfWeek(), endOfWeek(), previousYear(), previousMonth() |
CreatedBy Integer | Employee identifier. Available macros: currentUser() |
CustomField1 String | Custom field for grouping, sorting, categorizing and other purposes. |
CustomField2 String | Custom field for grouping, sorting, categorizing and other purposes. |
CustomField3 String | Custom field for grouping, sorting, categorizing and other purposes. |
Description String | Description of the product. |
ExclusivelyForCustomerId Integer | Customer identifier. |
ExpectedPurchaseLeadTime Integer | The expected lead time, in number of days, from ordering from supplier to delivery. Used in different purchase processes, typically when supplier is unknown. Note that this might differ from the standard lead times defined on the different suppliers.. |
ExternalReference String | External reference of the product. Typically used for storing product identifier for same product in external system. |
GlobalTradeItemNumber String | Global Trade Item Number (GTIN) is a 14 digit identifier for trade items (comprising among others of the former EAN International and Uniform Code Council). Examples of types of GTIN are UPC, EAN, JAN, ISBN. |
IsNonStock Boolean | True if this is a non-physical product which are no using assignments from the assignment archive. |
ManufacturerId Integer | Manufacturer identifier. |
ManufacturerShortName String | Shortname/code of the manufacturer. |
Name String | Name of the product. |
ProductClassificationId String | Product classification identifier. |
ProductId Integer | Product identifier. |
SalesStandardLeadTime Integer | The standard lead time, in number of days, from customer places order to delivery. |
SalesType Integer | Defines if an article is of one of the types: Sales, Sales and rental, Rental, Subscription. |
Status Integer | Status of the product. |
TotalAvailableStockQuantity Decimal | Quantity on hand which is not assigned. The total number of the product that are physically located in all warehouse locations and are currently available for new orders or fulfilling production needs. |
TotalStockQuantity Decimal | Quantity on hand. The total number of units that are physically located at all locations at the current time. This includes items already assigned to fulfilling production needs or sales orders. So, this number may differ from the available quantity. |
Type String | Type of product. |
Weight Decimal | The weight of the product in kilograms. |
Read more about filters and sorting on how to use sortable parameters
CountryOfOriginCode String | Two-character code (ISO 3166) identifying the default country where the product is produced. This value is inherrited from the assigned goods reception(s). If not country of origin is specified for the goods reception(s), country of origin is retrieved from the product. If assigned to multiple goods receptions with different origin, the field will be empty. |
CreatedAt Datetime | Date and time of creation |
CreatedBy Integer | Employee identifier |
CustomField1 String | Custom field for grouping, sorting, categorizing and other purposes. |
CustomField2 String | Custom field for grouping, sorting, categorizing and other purposes. |
CustomField3 String | Custom field for grouping, sorting, categorizing and other purposes |
Description String | Description of the product |
ExclusivelyForCustomerId Integer | Customer identifier |
ExpectedPurchaseLeadTime Integer | The expected lead time, in number of days, from ordering from supplier to delivery. Used in different purchase processes, typically when supplier is unknown. Note that this might differ from the standard lead times defined on the different suppliers. |
ExternalReference String | External reference of the product. Typically used for storing product identifier for same product in external system. |
GlobalTradeItemNumber String | Global Trade Item Number (GTIN) is a 14 digit identifier for trade items (comprising among others of the former EAN International and Uniform Code Council). Examples of types of GTIN are UPC, EAN, JAN, ISBN |
IsNonStock Boolean | True if this is a non-physical product which are no using assignments from the assignment archive |
ManufacturerId Integer | Manufacturer identifier |
ManufacturerShortName String | Shortname/code of the manufacturer |
Name String | Name of the product |
ProductClassificationId String | Product classification identifier |
ProductId Integer | Product identifier |
SalesStandardLeadTime Integer | The standard lead time, in number of days, from customer places order to delivery. |
SalesType Integer | Defines if an article is of one of the types: Sales, Sales and rental, Rental, Subscription |
Status Integer | Status of the product |
TotalAvailableStockQuantity Decimal | Quantity on hand which is not assigned. The total number of the product that are physically located in all warehouse locations and are currently available for new orders or fulfilling production needs |
TotalStockQuantity Decimal | Quantity on hand. The total number of units that are physically located at all locations at the current time. This includes items already assigned to fulfilling production needs or sales orders. So, this number may differ from the available quantity. |
Type String | Type of product |
Weight Decimal | The weight of the product in kilograms. |
Requesting this resource will yield the following response. Mouse over fieldnames (or fieldgroups) for descriptions and other useful information about the fields. Fields colored in grey is expandable fields.
Please note that some fields may be removed from the response, based on user roles/duties/permissions.
Title
Title of search result. The content of this field is dependent on where the result was matched. If hit was in product name/description, title will be the name of the product. If hit was in customers product name, title will be the customers product name etc.
>{String}</Title>In
Where this search result was found. Possible values here are PRODUCT, CUSTOMERSPRODUCTNAME, REPLACEMENTNAME and SUPPERLIERSPRODUCTNAME. Note that possible values will be affected by whats speified in the query parameter "in".
>{String}</In>ProductId
Product identifier
>{Integer}</ProductId>Name
Name of the product
>{String}</Name>Description
Description of the product
>{String}</Description>CustomField1
Custom field for grouping, sorting, categorizing and other purposes.
>{String}</CustomField1>CustomField2
Custom field for grouping, sorting, categorizing and other purposes.
>{String}</CustomField2>CustomField3
Custom field for grouping, sorting, categorizing and other purposes
>{String}</CustomField3>InternalNote
Internal note regardig the product. Should not be exposed to customers.
>{String}</InternalNote>Type
Defines if an article is of one of the types: Sales, Sales and rental, Rental, Subscription
Possible domain values can be found here
>{Integer}</Type>MinimumGrossMargin
The minimum gross margin, in percent, for the product
>{Decimal}</MinimumGrossMargin>StandardLeadTime
The standard lead time, in number of days, from customer places order to delivery.
>{Integer}</StandardLeadTime>AssignInMultipleOf
Sometimes the products are packed together in a way that makes it preferrable to keep them together when selling. When RamBase starts the process of assigning sales to stock or purchase backlog, this field is taken into consideration. If the available quantity is not in this multiple, the rest quantity will be requested for procurement.
Ex. a product is set up to be assigned in multiple of 3. When selling 7 pcs of this product, 6 is assigned to stock or purchase backlog, while the last one is always requested for procurement (even though you have 100 in stock). Note that you can still manually override this behaviour and assign everything to stock or purchase backlog.
StockQuantity
Quantity on hand. The total number of units that are physically located at all locations at the current time. This includes items already assigned to fulfilling production needs or sales orders. So, this number may differ from the available quantity.
>{Decimal}</StockQuantity>AvailableStockQuantity
Quantity on hand which is not assigned. The total number of the product that are physically located in all warehouse locations and are currently available for new orders or fulfilling production needs
>{Decimal}</AvailableStockQuantity>ProductId
Product identifier
>{Integer}</ProductId>ProductLink
Product reference
>{String}</ProductLink>Revision
Revision number
>{String}</Revision>ProductLink
Product reference
>{String}</ProductLink>Paging
Detailed paging information for this list.
>PageSize
Number of elements in the list, as defined in $top. Default is 10.
>{Integer}</PageSize>Position
Position of the first element in the list
>{Integer}</Position>Page
Page index
>{Integer}</Page>FirstPage
Link to the first page in the list. $pageKey is set to FirstPageKey.
>{String}</FirstPage>PreviousPage
Link to the previous page in the list. $pageKey is set to PreviousPageKey.
>{String}</PreviousPage>NextPage
Link to the next page in the list. $pageKey is set to NextPageKey.
>{String}</NextPage>LastPage
Link to the last page in the list. $pageKey is set to LastPageKey.
>{String}</LastPage>Size
Total number of records in the list. Use $inlinecount=allpages in the request uri to include this
>{Integer}</Size>Title
Title of search result. The content of this field is dependent on where the result was matched. If hit was in product name/description, title will be the name of the product. If hit was in customers product name, title will be the customers product name etc.
": "{String}",In
Where this search result was found. Possible values here are PRODUCT, CUSTOMERSPRODUCTNAME, REPLACEMENTNAME and SUPPERLIERSPRODUCTNAME. Note that possible values will be affected by whats speified in the query parameter "in".
": "{String}",ProductId
Product identifier
": "{Integer}",Status
Status of the product
Possible domain values can be found here
": "{Integer}",Name
Name of the product
": "{String}",Type
Type of product
Possible domain values can be found here
": "{String}",Description
Description of the product
": "{String}",CustomField1
Custom field for grouping, sorting, categorizing and other purposes.
": "{String}",CustomField2
Custom field for grouping, sorting, categorizing and other purposes.
": "{String}",CustomField3
Custom field for grouping, sorting, categorizing and other purposes
": "{String}",InternalNote
Internal note regardig the product. Should not be exposed to customers.
": "{String}",Type
Defines if an article is of one of the types: Sales, Sales and rental, Rental, Subscription
Possible domain values can be found here
": "{Integer}",MinimumGrossMargin
The minimum gross margin, in percent, for the product
": "{Decimal}",StandardLeadTime
The standard lead time, in number of days, from customer places order to delivery.
": "{Integer}",AssignInMultipleOf
Sometimes the products are packed together in a way that makes it preferrable to keep them together when selling. When RamBase starts the process of assigning sales to stock or purchase backlog, this field is taken into consideration. If the available quantity is not in this multiple, the rest quantity will be requested for procurement.
Ex. a product is set up to be assigned in multiple of 3. When selling 7 pcs of this product, 6 is assigned to stock or purchase backlog, while the last one is always requested for procurement (even though you have 100 in stock). Note that you can still manually override this behaviour and assign everything to stock or purchase backlog.
StockQuantity
Quantity on hand. The total number of units that are physically located at all locations at the current time. This includes items already assigned to fulfilling production needs or sales orders. So, this number may differ from the available quantity.
": "{Decimal}",AvailableStockQuantity
Quantity on hand which is not assigned. The total number of the product that are physically located in all warehouse locations and are currently available for new orders or fulfilling production needs
": "{Decimal}"ProductId
Product identifier
": "{Integer}",ProductLink
Product reference
": "{String}"Revision
Revision number
": "{String}"ProductLink
Product reference
": "{String}"Paging
Detailed paging information for this list.
": {PageSize
Number of elements in the list, as defined in $top. Default is 10.
": "{Integer}",Position
Position of the first element in the list
": "{Integer}",Page
Page index
": "{Integer}",FirstPage
Link to the first page in the list. $pageKey is set to FirstPageKey.
": "{String}",PreviousPage
Link to the previous page in the list. $pageKey is set to PreviousPageKey.
": "{String}",NextPage
Link to the next page in the list. $pageKey is set to NextPageKey.
": "{String}",LastPage
Link to the last page in the list. $pageKey is set to LastPageKey.
": "{String}",Size
Total number of records in the list. Use $inlinecount=allpages in the request uri to include this
": "{Integer}"
List of available operations/actions for this resource.
See the operations documentation for more information about API operations.
Possible error codes the response might return:
Error 101013 HTTP 404 | Sub-module not found |
Error 102704 HTTP 404 | Formula parameter was not found |
Error 101420 HTTP 404 | Setting definition not found |
Error 102747 HTTP 400 | Error in formula: {0} |