Technical documentation - Order process based on basic functionality and database

This article describes the basic providers available to support order process, cross sales, sales statistics. It gives an overview of existing providers.

Overview of basic providers

The following basic providers using Server database, email or built in functions exist.

Provider name

Comment

Provider name

Comment

<PriceProvider>

Get price on parts

<AvailabilityProvider>

Get availability on parts

<AddressProvider>

Get addresses for customers or users

<AddToOrderCartProvider>

Add parts to order cart

<OrderValidationProvider>

Version 5.0: Validate order

<PlaceOrderProvider>

Version 4.x: Validate and Place order

Version 5.x: Place order

<OrderHistoryProvider>

Get order history list

<OrderDetailProvider>

Get order details, deliveries and track and trace information

<CrossSalesProvider>

Get cross sales/upsales parts for a part based on part and part’s context

<OrganizationImportProvider>

Import users and organizations into database

<AuthenticationProvider>

Authenticate user

<StatisticsProvider>

Get sales statistics on parts, part assemblies and catalogues per user, customer or globally

<OrderAttachmentProviderToCustomer>

Used to generate attachment to confirmation email sent to customer

<OrderAttachmentProviderToOEM>

Used to generate attachment to confirmation email sent to OEM

Configuration

Availability provider

Two basic availability providers exist; database and csv.

The database provider will fetch availability from the Server database.

<AvailabilityProvider> <AssertDbAvailabilityProvider> </AssertDbAvailabilityProvider> </AvailabilityProvider>

In version 5.1 and later it is possible to define response level if availability is missing and control if warehouses and availability can be edited or not in admin interface.

<AvailabilityProvider> <!-- If availability is missing return a message and a code. Code may be defined as error, warning or information. If error, it will block possibility to add part to order. --> <AssertDbAvailabilityProvider missing-availability-status-code="error"> <!-- If true it is possible to add, edit and detele warehouses in admin. Default is true. --> <WarehouseEditable>true</WarehouseEditable> <!-- If true it is possible to upload and clear availability in admin. Default is true. --> <AvailabilityEditable>true</AvailabilityEditable> </AssertDbAvailabilityProvider> </AvailabilityProvider>

Definition for version 5.0.

<AvailabilityProvider> <AssertDbAvailabilityProvider> <UploadPanelEnabled>true</UploadPanelEnabled> </AssertDbAvailabilityProvider> </AvailabilityProvider>

The csv provider will fetch availability from a csv file placed on the server.

Csv file containing availaibilty shall follow this format.

Price provider

DBPriceProvider

The database provider will fetch prices from the Server database. Prices must be imported into Server database or uploaded using the admin interface of the web viewer. Price lists must be defined in the admin interface for the function to work, and users must be connected to the price list.

In version 5.1 and later it is possible to control response level if availability is missing and if price lists and prices can be edited or not in admin interface.

Definition for version 5.0.

AssertExcelPriceProvider

The Excel price provider will fetch prices from an Excel file located on the server. Price lists must be defined in the admin interface for the function to work, and users must be connected to the price list.

SpecificationPriceProvider

As an option, SpecificationPriceProvider may be used to allow prices to be stored in a specification. Currently this method requres custom imports due to how prices are saved in specifications

This provider will return the price of a part, provided that the part has a specitication with the code _PARTPRICE. This specification will need to hold the price. The database field Decimal shall hold the price and the database field String shall hold the currency (in ISO format).

AddToOrderCartProvider

The AddToOrderCartProvider will add parts to the built in order cart. This provider is needed for the place order providers (also REST) to work.

ValidateOrderProvider

The base ValidateOrderProvider will validate the order by checking price for all parts in the order and summarizing the prices for the parts in the order. If any part is NLA or replaced, ValidateOrderProvider will handle this as per how the Price and Availability providers return information on the included parts.

ValidateOrderProvider is available in version 5.0 and later.

Also see https://signifikant.atlassian.net/wiki/spaces/ASKB/pages/671219713 how delivery options may be configured.

PlaceOrderProvider

PlaceOrderProvider will save orders to database and send email to customer and OEM based on configuration.

In version 4.x this provider will also validate order. Also see https://signifikant.atlassian.net/wiki/spaces/ASKB/pages/671219713 how delivery options may be configured.

How order is attached to send email is defined in OrderAttachmentProviderToOEM and OrderAttachmentProviderToCustomer.

Version 5.1 and later

Version 5.0 and earlier

OrderHistoryProvider

The built in order history provider will use the Server database for storing and displaying a list of placed orders.

OrderDetailProvider

The built in order detail provider will use the Server database for storing and displaying order rows on placed orders.

OrderAttachmentToOEMProvider

This provider is used to configure the attachment to order email.

OrderAttachmentToCustomerProvider

This provider is used to configure the attachment to order email.

Authentication provider

The built in authentication provider will use the Server database to store users and organizations.

Address provider

The built in authentication provider will use the Server database to store addresses on users and organizations.

In version 5.1 and later it is possible to control if address is editable in the admin and under myaccount and mycompany. By default REST providers do not allow edit of address. But if AssertDBAddressProvider is used, it is by default possible to edit the address. In some cases it might though be important to block the possibility to edit addresses, eg if addressses are imported regularely from another system. Editing addresses will then be overwritten by next import.

Organization import provider

The built in organization import provider will allow to import users and organizations using csv, xml or xls. Import can be done in user interface and by running a service.

Statistics provider

The built in statistics provider will use orders saved in Server database to allow to configure sales statistics based parts on presentation view pages.

This function requires add on module for cross sales.

If REST place order provider is used it needs to be configured to save orders in Server database. If not, no sales statistics will be generated.

Cross sales provider

The built in cross sales provider will use the part reference information created in Manager application as a base for cross sales information to be presented on presentation views.

This function requires add on module for cross sales.