# Introduction

This document describes the standard interfaces between the Shoxl Shop and ERP systems.

In this interface, a distinction is made between batch interfaces and real-time interfaces (web services). Batch interfaces are used for the transport of large amounts of data, which must be immediately (and therefore locally) available when the visitor navigates through the shop.

Real-time interfaces are used to retrieve current data from the ERP system. Typically, this data cannot be prepared because it changes too often or because it is based on complex calculations or rules.

Shoxl has the following **batch interfaces** with ERP systems:

Gross price information&#x20;

* Customers&#x20;
* Orders

Shoxl has the following **real-time interfaces** with ERP systems:

* Retrieving customer-specific prices and stock
* Retrieve calculation of complete order (shopping cart)
* Sending orders&#x20;
* Retrieving order history&#x20;
* Retrieving invoice history

This translates into the following Webservices (Methods):

| Name                  | Description                                                                                                                                                                                                                                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| CalculateOrder        | We use this method to calculate the order in real time against the business rules defined in the ERP system. Extra orderlines can be returned, for example service fees, shipping costs and/or administrative fees.                                                                                                            |
| GetInvoiceHistory     | Using this method we want to receive the outstanding invoices of the given customer.                                                                                                                                                                                                                                           |
| GetOrderHistory       | Using filters we want to receive the orders of a customer. These orders will come directly from the ERP system and can contain our web orders but also orders placed in the shop or by phone.                                                                                                                                  |
| GetOrderHistoryDetail | With this method we want to receive the order details of a given order number.                                                                                                                                                                                                                                                 |
| GetProductInformation | With this method, we want to receive real time product information from the ERP system. It contains customer-specific product information like pricing and discount information. Also stock information is returned. We will use this method to show real time product information on the product detail page in the web shop. |
| PlaceOrder            | This is method is used to place an order. We will sent again the complete order given from the last CalculateOrder result including billing and shipping address information.                                                                                                                                                  |

Thus, orders can be prepared for the ERP system via the batch interface as well as offered to that system via a web service.

All data is offered directly to the shop. So there is no local management or post-processing of data; all management is done in the ERP system. The only exception is customer data: this data can be viewed and supplemented in Vendisto ERP. The background to this is the shop's role in issuing shop access data. In addition, orders entered in the shop can be viewed if required. However, subsequent changes of orders in the ERP system are not visible in Vendisto.

## SOAP vs REST API

For the realtime interface between shop and ERP system we have defined two different ways of communication:&#x20;

* a SOAP interface for which we supply a WSDL document
* a REST interface for which we supply a swagger.json file containing the Open API format of the interface

The connector with the ERP system - that is usually implemented by the ERP party - implements the server endpoints and methods that are defined in the WSDL or swagger.json. The shop implements the client part.

You can find these formats at the [Webservice](https://shoxl.gitbook.io/erp-integration-guide/2021.9/webservice) page.
