Promo Standards is a set of APIs to connect a supplier and distributor.
Providing information about Products, Inventory, Products Pricing, OrderStatus, Shipping Notification and to also create Purchase Orders.
We have implemented the following APIs
- Inventory
- Invoice
- Media Content
- Order Shipment Notification
- Order Status
- Product Data
- Product Pricing and Configuration
- Purchase Order
Official site of a PromoStandard: https://promostandards.org/
APIs Lists and it's documentation: https://promostandards.org/service/overview/
Authentication
Authentication details can be found/created in admin under sales > customer account.
AccountCode, PromoPassword and PromoAuthorize fields. Only authorized accounts can access the API's
The default user for an account will be used for visibility and pricing calculations, orders will also be placed with this user. If you haven't configured a user it will default to the first user.
Override Price - Used to create purchase order.
- ODSNet Price - Takes ODSNet Prices based on the user
- Requested Price - Takes requested price from Purcahse order request
- Reject Order - Reject order if requested price does not match with ODSNet price
The below errors can be returned due to authenticating issues when using Promo Standards.
Code | Description |
115 | wsVersion not found |
100 | ID (customerID) not found |
105 | Authentication Credentials failed |
110 | Authentication Credentials required |
104 | This account is unauthorized to use this service. Please contact the service provider |
999 | Account (customerId) does not have any associated user. |
999 | Any internal server error |
Inventory
Documentation link : https://promostandards.org/service/view/16/
getFilterValues ()
Will return all available filters (partId, labelSize, partColor) for a successful request
getInventoryLevels ()
Will return available stock from SAP for a successful request
Below are the errors you can receive when using this api.
Code | Description |
120 | The following field(s) are required (productId) |
600 | Product Id (productId) not found |
630 | Product part not found for this product (productId) |
999 | Any internal server error |
Invoice
Documentation link: https://promostandards.org/service/view/20/
This API will return the customer's invoices from SAP.
Users can filter invoices by QueryType.
queryType | Short Name | Description |
1 | PO Number Search | Search for invoices by purchase order number |
2 | Invoice Number Search | Search for invoice by invoice number |
3 | Date Search | Search for invoices with an invoice date specified by the requestedDate |
4 | Available Date Time Search | Search for invoices that were made available by a date time greater than the value specified by availableTimeStamp |
Below are the errors you can receive when using this api.
Code | Description |
120 | The following field(s) are required (queryType) |
903 | No Invoices were found for the requested criteria |
999 | Any internal server error |
Media Content
Documentation link : https://promostandards.org/service/view/11/
getMediaContent()
Will return available media for passed product and filters.
getMediaDateModified()
Will return products which media has changed after passed date.
Below are the errors you can recieve when using this api.
Code | Description |
120 | The following field(s) are required (productId) |
160 | No Results Found |
999 | Any internal server error |
Order Shipment Notification
Documentation link: https://promostandards.org/service/view/6/
getOrderShipmentNotification:
This API returns detailed information on Order Shipments along with the status from SAP.
It is filtered based on QueryType you enter, check field mapping excel, or API documentation.
Below are the errors you can receive when using this api.
Code | Description |
120 | The following field(s) are required (queryType) |
999 | Any internal server error |
Order Status
Documentation link: https://promostandards.org/service/view/1/
Start with API Endpoints:
getOrderStatusDetails:
This API will return detailed information of an Order, including the status from SAP.
It will filter orders based on QueryType entered, check field mapping excel or API documentation.
getOrderStatusTypes:
This API will return a list of Order Statuses from SAP which we support.
Below are the errors you can receive when using this api.
Code | Description |
120 | The following field(s) are required (queryType) |
120 | Invalid Date format for statusTimeStamp |
999 | Any internal server error |
Product Data
Documentation link: https://promostandards.org/service/view/18/
Start with API Endpoints:
getProduct:
This function will provide detailed product information for its parts(GenericItems) by passing a ProductId or any additional optional subset filtering provided at the request.
Pass required parameters to the request and It will return MainProduct (GenericDefault). and all GenericItmes of the main product which are called product parts.
In the request partId, colorName, apparelStyle, and labelSize parameters are used to do filters on GenericItems (product parts).
All the products are display based on customer visibility and its pricing, if pricing doesn't exist then the product will not display in response.
It will display only those products which are active and available for sale.
getProductDateModified:
This function will provide a list of ProductGenericCode(ProductId) and optional ProductDetailSkuCode(Part Ids) for all items which have changed since the date supplied in the request.
The ProductId and PartIds are display based on customer visibility and pricing, if pricing doesn't exist then it will not display in the response.
It will display only where the productId and PartId are active and available for sale.
getProductCloseOut
This function will provide a list of ProductGenericCode(ProductId) and optional ProductDetailSkuCode(Part Ids) for all items where currently the ProductDetailActiveFlag is N.
A list of inactive products.
getProductSellable
This function will provide a list of ProductGenericCode(ProductId) and optional ProductDetailSkuCode(Part Ids) along with their status of available to sell (Sellable TRUE or FALSE).
If you pass Sellable True in the request it will return a list of products which are available for sale
If you pass Sellable false in the request it will return a list of products that are not available for sale.
You can filter it by a specific part Id.
Below are the errors you can receive when using this api.
Code | Description |
120 | The following field(s) are required (productId) |
130 | Product Id not found |
140 |
|
999 | Any internal server error |
Product Pricing and Configuration
Documentation link: https://promostandards.org/service/view/8/
getConfigurationAndPricing:
This API will return information about product pricing and configuration.
You can filter records by PartId, check mapping excel, and API documentation for this.
getFobPoints:
This API will return information about product fob points - as of now used company collection address.
You can filter records by productId.
Below are the errors you can receive when using this api.
120 | The following field(s) are required (productId, currency, priceType, configurationType) |
400 | productID not found |
999 | Any internal server error |
Purchase Order
Documentation link : https://promostandards.org/service/view/15/
getSupportedOrderTypes()
This will return the order types supported by ODSNet.
As of now only Blank is supported.
sendPO()
This will create an order in ODSNet, there are some fields that we currently do not use.
If you don't specify pricing, it will be calculated from ODSNet.
Please see below a successful request and response.
Please see below a a failed request.
The below errors can be found if there is an issue with the details used when placing a purchase order.
Code | Description |
220 | Field is not supported: OrderType. |
120 | The following field(s) are required : ShipTo - ContactDetails(address1,country,postalCode), FreightDetails, LineItemArray(lineItem,productId,partId,Quantity) |
999 | Can not create order. You do not have default/shipping address. |
999 | Can not create order. Your cart is empty. Make sure the products you order are visible to your account and have correct pricing. |
999 | Requested carrier service not found. |
999 | Your country area postcode not found in our system for this order, please update order or please goto My Account and change your postcode, if you have choose alternate address please enter valid postcode. |
999 | Sorry we cannot ship ‘Products (Invalid Products)’ to this area, please check our Delivery Terms. Please remove these items from your basket and proceed to checkout. If you are still having problems please contact our customer services. |
999 | Country (CountryName) maximum order weight limit is (MaximumOrderWeight) (WeightUnit), your order weight (TotalWeight) (WeightUnit), please remove some item or cancel order. |
999 | Unable to calculate Delivery charge for this order address, please add new address or contact administrator. |
999 | UPS service maximum number of packages limit exceeded (50). This could be the size of your order. Please select non-UPS services. |
999 | Requested paymentTerms not found. |
999 | ProductId (productId) not found. |
999 | PartId (partId) not found. |
999 | PartId (partId) quantity must be greater than zero. |
999 | PartId (partId) does not belong to productId (productId) |
999 | PartId (partId) quantity must be greater than zero. |
999 | PartId (partId) is not visible to this account. |
999 | Max quantity is allowed is (maxquantity). Please change quantity for the product (partId). |
999 | PartId (partId) does not have price associated to this account. (Applicable ONLY - PromoOverridePrice = Reject Order/ODSNet Price) |
999 | PartId (partId) requested price (unitPrice) does not match with actual price (ODSNetPrice) (Applicable ONLY - PromoOverridePrice = Reject Order AND unitPriceSpecified) |
999 | PartId (partId) extendedPrice must be multiplication of unitPrice and Quantity Value. (Applicable ONLY - PromoOverridePrice = Reject Order/Requested Price- unitPriceSpecified AND extendedPriceSpecified) |
999 | PartId (partId) unitPrice must be greater than zero. (Applicable ONLY - PromoOverridePrice = Requested Price AND unitPriceSpecified) |
999 | PartId (partId) extendedPrice must be greater than zero. (Applicable ONLY - PromoOverridePrice = Requested Price AND unitPriceSpecified AND extendedPriceSpecified) |
999 | Any internal server error |
ODSNet changes
The below changes have been made to the ODSnet platform in relation to Integrating the Promo standards API's.
Database changes
Table | Name | Data Type |
---|---|---|
Accounts | PromoPassword | nvarchar(50) |
Accounts | PromoAuthorize | bit |
Accounts | PromoDefaultUserId | int |
Accounts | PromoOverridePrice | int |
System configuration
This system configuration is for setting the paths on the hosting webserver for the logs of the successful and failed api requests and responses.
MainCategory | SubCategory | SystemConfigType | Notes |
3rd Party Integrations | PromoStandard | PromoStandardLogPath |
|
Windows service
This is a service that can be enabled to purge the above logs so that they do not take up too much storage.
Service Type | Service Name | PurgeNoOfDays |
---|---|---|
ODSTasks | ODSDeletePromoStandardLog | 14 |