This article describes the http APIs available to support the order process. It gives an overview of existing providers, and log tracing of API calls.
...
API | In params | Response | Provider name |
---|---|---|---|
GetPrice | Authentication information A list of part numbers | Price and currency for each part. NLA code for each part. Replacement information for each part. Result codes (message and error on each part) | <PriceProvider> |
GetAvailability | Authentication information A list of part numbers | List of availabilities for each part (if several warehouses) Result codes (message and error on each part) | <AvailabilityProvider> |
GetAddresses | Authentication information | List of addresses List of order types Temporary address permission (optional) Result code (message and error on each address) | <AddressProvider> |
AddToOrderCart | Authentication information A list of part numbers | Order line results Result codes | <AddToOrderCartProvider> |
PlaceOrder / ValidateOrder | Authentication information Order (header and order lines) | Order (updated if needed with NLA and replacements) Result codes (message on order, error on order, message on order line, error on order lines) | <PlaceOrderProvider> <ValidateOrderProvider> (version 5.0) |
GetOrderTypes | Authentication information | List of Order Types | <PlaceOrderProvider> <ValidateOrderProvider> (version 5.0) |
GetDeliveryOptions | Authentication information Order (header and order lines) | List of Delivery Options valid for the order | <PlaceOrderProvider> <ValidateOrderProvider> (version 5.0) |
GetOrders | Authentication information | Orders, one line per order Result codes | <OrderHistoryProvider> |
GetOrderDetails | Authentication information Order number | Order header, order lines, shipment lines Result codes | <OrderDetailProvider> |
Signin | ReturnUrl | Success or failure status | <AutenticateProvider> |
Authenticate | SesssionId | User record; name, id, permissions etc. | <AutenticateProvider> |
PlaceOrder / ValidateOrder
...
Code Block |
---|
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="PostCustomPlaceOrderServiceSoapBinding" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000"> <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000" /> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="http://www.domain.com/WebServices/CustomOrderService/post" binding="basicHttpBinding" bindingConfiguration="PostCustomPlaceOrderServiceSoapBinding" contract="CustomPlaceOrderService.CustomOrderServicePostPort" name="CustomOrderServicePost" /> </client> </system.serviceModel> |
Tracing
Every API provides the possibility to write trace logs. Trace log is turned on using the below xml in profile.config.
Code Block |
---|
<PriceProvider>
<CustomPriceProvider save-external-order-to-server-database="true" delete-old-trace-log-after-number-of-folder="30" trace-folder="F:\Signifikant\Log\APIXml\" delete-old-trace-log-after-number-of-folder="60" impersonation="true" domain="localhost" user-name="xyz" password="xyz" />
</PriceProvider> |
The tracing will place two files for each call, one request and one response, in this location. Log files will be placed in sub folders per date and old log files will be deleted after 30 folders by default. Default value can be changed by using delete-old-trace-log-after-number-of-folder="30".
Files will be named according to this example:
Code Block |
---|
Request_PlaceOrder_e1f540ea-f4f8-4e8e-a123-76d451d5dba8_28.xml
Response_PlaceOrder_e1f540ea-f4f8-4e8e-a123-76d451d5dba8_28.xml |
e1f540ea-f4f8-4e8e-a123-76d451d5dba8 is the GUID of the session. _28 is a counter which will be kept the same for request and respose.
The Request and Response log files will contain the exact content of the calls and responses in xml or json (depending on API). Response file will also contain a response time to measure time for other end point to reply.See separate article: API logs
Authentication in API calls
...