Crewshop Schiphol

The crewshop at Schiphol is a shop were crew (pilots, steward) can buy all kind of product like tobacco, perfume, alcohol and cosmetics. The shop is located in the flight center at Schiphol.

For the crewshop Bovertis developed a few components:

  • Crewshop handling in Resolut POS 2

  • Server component with website

  • Integration in Resolut BOS (check)

The crewshop at Schiphol provides two type of sales:

  • products that can be bought in the shop and taken immediately

  • product that can be bought but are delivered from the warehouse

When the purchase is started, the cashier must select to start a warehouse sale or shop sale. Warehouse sales are booked on a flight number, shop sales not. It is not allowed to mix sales, responsibility for the cashier.

The warehouse services should process all tickets (sales), if there is not PosTicketAviaPartnerSale object on it, do nothing.

If the object is there, we should create or update the order for this specific flight.

The warehouse service should also track opened orders (flights) and close them one hour (configurable) before departure. The picking order is printed.​

Technical info​

​The POS is using the AirportCrewShopPlugin which can be found in $/ResolutPOS/AddOns/ResolutV2Plugins.

The plugin is calling the CrewShopWebService, in fact GetAllFlightOrders, CloseFlightOrder and OpenFlightOrders WS methods.​

Codebase​

​History

These are the changes for Resolut POS:

the plugin is using a webservice to post crew sales to the server

use parameter CrewShopPlugin_url to set the endpoint on the server (test or prod)

the parameters AviaBackoffice are changed to CrewshopBackoffice

Set parameter AllowNoFlightSales to 1, this allows sales without a boarding card.

​Stocks

The POS can check and show the stock levels of all products on the receipt. The idea is to do this in real time (background), but it is informal only. Theoretically it is possible stock is 0 (or <0) while there is enough stock in the warehouse.

POS

(Shops sales are not in scope for the crewshop)

When a warehouse sale is started, the POS will check the flight data on the server (not in the local database) and check if the flight is not closed (=does not exists or is open). If not closed the user can proceed.

When the transaction is paid the sale is finalized. We have two options:

a- a plugin will update the stocks in the table, the server will poll for new tickets

b- we pass the ticket to a webservice method and the webservice will update the stocks and open/create the flight

Remark

  • When the print fails we should panic otherwise the order will not be delivered.

  • Remind that the crewshop is just a shop within BOS (67)

Parameters

ParameterName Description
​CrewshopSchiphol = 1 ​This enables the crewshop start screen (flight number input)
​CrewShopBackofficeServer
CrewShopBackofficeUser
CrewShopBackofficePassword
CrewShopBackofficeDatabase ​These parameters are used to contact the stock information
CrewShopStockQuery Overrides the default stock query
AllowNoFlightSales = 1 Allows sales without entering a flight number (shop sale)
CrewShopPlugin_URL
TEST SK:
http://172.20.16.92:9098/CrewShopWebService
AirportCrewShopPlugin.dll is needed in C:\POS\Plugins folder.Parameter for CrewShop web service must be set (web service is used for loading of flight orders, sending crew sale tickets, and closing/reopening of flight orders).Sample parameter value:<parameter name=“CrewShopPlugin_URL”>http://172.20.16.92:9098/CrewShopWebService</parameter>

Commands

AppCrewshopStockView - Salesscreen, shows stock information

Crew Shop Service - installation & configuration

To install the windows service for Crew Shop you must run this command as Administrator: CrewShopService.exe install. It will install the service.

Then you must allow configured ports (on which web service / web portal will be self-hosted). See below: sample configuration…

Configure all the required parameters (configuration file: CrewShopService.exe.config).

Run the service (from: services.msc)

Allow ports on which WS/web will be self-hosted, i.e. 8080, 9090 or different ports if these are not available.