Click & Reserve

A very common use case for many merchants is Click & Reserve. Customers can order products online and pick them up in their local store later. The payment is done in the local store by card or in cash. The PAYONE Commerce Platform / Commerce Portal can be used as the central system for the employee in the store to retrieve all relevant information about the Checkout.

Process flow

High-level summary:

  • Customer orders product online and receives order confirmation (e.g. with the Checkout-ID as barcode or QR-Code).
  • Customer presents the order confirmation in the local store.
  • Employee retrieves the checkout using the checkout reference or personal information in the Commerce Portal.
  • Customer pays in the store (e.g. with credit card) and leaves the shop with the product.

Create Checkout in Webshop

POST Commerce Case
Request
POST/v1/{merchantId}/commerce-cases
{
    "merchantReference": "Sample-Commerce-Case",
    "customer": {
        "companyInformation": {
            "name": "Customer Company Name"
        },
        "billingAddress": {
            "city": "Musterstadt",
            "countryCode": "DE",
            "houseNumber": "1",
            "state": "SH",
            "street": "Musterstraße",
            "zip": "12345"
        },
        "merchantCustomerId": "Test-Customer",
        "contactDetails": {
            "emailAddress": "max@mustermann.de",
            "phoneNumber": "+1234567890"
        },
        "fiscalNumber": "fiscalNumber",
        "businessRelation": "B2C",
        "locale": "de",
        "personalInformation": {
            "gender": "MALE",
            "name": {
                "firstName": "Max",
                "surname": "Mustermann"
            },
            "dateOfBirth": "19950411"
        }
    },
    "checkout": {
        "amountOfMoney": {
            "amount": 49900,
            "currencyCode": "EUR"
        },
        "references": {
            "merchantReference": "Click_Reserve_12345"
        },
        "shipping": {
            "address": {
                "city": "Musterstadt",
                "countryCode": "DE",
                "houseNumber": "1",
                "state": "SH",
                "street": "Musterstraße",
                "zip": "12345",
                "name": {
                    "firstName": "Max",
                    "surname": "Mustermann"
                }
            }
        },
        "shoppingCart": {
            "items": [
                {
                    "amountOfMoney": {
                        "amount": 49900,
                        "currencyCode": "EUR"
                    },
                    "invoiceData": {
                        "description": "Laptop"
                    },
                    "orderLineDetails": {
                        "productCode": "LNVO-245",
                        "productPrice": 49900,
                        "productType": "GOODS",
                        "quantity": 1,
                        "taxAmount": 19
                    }
                }
            ]
        }
    }
}
Response
{
  "commerceCaseId": "31521fc8-fd88-4b8c-bcf1-072d74da8796",
  "merchantReference": "Sample-Commerce-Case",
  "customer": {
    "companyInformation": {
      "name": "Customer Company Name"
    },
    "merchantCustomerId": "Test-Customer",
    "billingAddress": {
      "city": "Musterstadt",
      "countryCode": "DE",
      "houseNumber": "1",
      "state": "SH",
      "street": "Musterstraße",
      "zip": "12345"
    },
    "contactDetails": {
      "emailAddress": "max@mustermann.de",
      "phoneNumber": "+1234567890"
    },
    "fiscalNumber": "fiscalNumber",
    "businessRelation": "B2C",
    "locale": "de",
    "personalInformation": {
      "dateOfBirth": "19950411",
      "gender": "MALE",
      "name": {
        "firstName": "Max",
        "surname": "Mustermann"
      }
    }
  },
  "checkout": {
    "checkoutId": "eb32000e-5084-4b47-8627-f70059902fb0",
    "shoppingCart": {
      "items": [
        {
          "amountOfMoney": {
            "amount": 49900,
            "currencyCode": "EUR"
          },
          "invoiceData": {
            "description": "Laptop"
          },
          "orderLineDetails": {
            "id": "ff27d785-18a0-45bf-8ff6-a336bef30c63",
            "productCode": "LNVO-245",
            "productPrice": 49900,
            "productType": "GOODS",
            "quantity": 1,
            "taxAmount": 19
          }
        }
      ]
    },
    "amountOfMoney": {
      "amount": 49900,
      "currencyCode": "EUR"
    },
    "references": {
      "merchantReference": "Click_Reserve_12345"
    },
    "shipping": {
      "address": {
        "city": "Musterstadt",
        "countryCode": "DE",
        "houseNumber": "1",
        "state": "SH",
        "street": "Musterstraße",
        "zip": "12345",
        "name": {
          "firstName": "Max",
          "surname": "Mustermann"
        }
      }
    },
    "checkoutStatus": "OPEN",
    "statusOutput": {
      "paymentStatus": "WAITING_FOR_PAYMENT",
      "isModifiable": true,
      "openAmount": 0,
      "collectedAmount": 0,
      "cancelledAmount": 0,
      "refundedAmount": 0,
      "chargebackAmount": 0
    },
    "creationDateTime": "2024-02-09T17:51:22.883283461Z",
    "allowedPaymentActions": [
      "ORDER_MANAGEMENT",
      "PAYMENT_EXECUTION"
    ]
  },
  "creationDateTime": "2024-02-09T17:51:22.883283461Z"
}

Retrieve Checkout in Commerce Portal

Once the product is ready for pick up, the customer will receive a notification. In the local store the Checkout can be retrieved by searching for the Checkout Reference:

Checkout with matching reference will be shown:

Click on the Checkout to display the details:

Update after Terminal Payment

After the terminal payment is completed (using the same merchantReference from the Checkout), the payment will be linked to the Checkout (near time) and the Checkout will be updated:

The POS payment will only be linked to the existing Checkout if the same merchantReference from the Checkout that was previously created is provided in the authorization message. In most cases the ECR system has to provide the respective reference to the terminal.