Click & Collect

Another Omnichannel use case that is frequently offered is Click & Collect. Customers can order and pay products online and later pick them up in the local store.
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 and pays products online and receives an 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.
  • The payment status can be retrieved and - if not already done - the employee can capture the money from the reservation.
  • Customer leaves the shop with the goods.
To trigger payments from the portal, the necessary role needs to be configured for the shop employee. 

Create Commerce Case with 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": "ClickCollect_12345"
        },
        "shipping": {
            "address": {
                "city": "Musterstadt",
                "countryCode": "DE",
                "houseNumber": "1",
                "state": "SH",
                "street": "Musterstraße",
                "zip": "12345",
                "name": {
                    "firstName": "Max",
                    "surname": "Mustermann"
                }
            }
        },
        "shoppingCart": {
            "items": [
                {
                    "invoiceData": {
                        "description": "Laptop"
                    },
                    "orderLineDetails": {
                        "productCode": "LNVO-245",
                        "productPrice": 49900,
                        "productType": "GOODS",
                        "quantity": 1,
                        "taxAmount": 19
                    }
                }
            ]
        }
    }
}
Response
{
  "commerceCaseId": "4831274f-fdb7-42cc-a2c6-4215a0183f13",
  "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": "a382873e-2496-423c-a9f5-1f549c431016",
    "shoppingCart": {
      "items": [
        {
          "invoiceData": {
            "description": "Laptop"
          },
          "orderLineDetails": {
            "id": "00287105-5495-4843-bf85-7620a5f7ca8e",
            "productCode": "LNVO-245",
            "productPrice": 49900,
            "productType": "GOODS",
            "quantity": 1,
            "taxAmount": 19
          }
        }
      ]
    },
    "amountOfMoney": {
      "amount": 49900,
      "currencyCode": "EUR"
    },
    "references": {
      "merchantReference": "ClickCollect_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-11T16:49:33.984616012Z",
    "allowedPaymentActions": [
      "ORDER_MANAGEMENT",
      "PAYMENT_EXECUTION"
    ]
  },
  "creationDateTime": "2024-02-11T16:49:33.984616012Z"
}

Create Order for checkout

POST Order
Request
POST/v1/commerce-cases/{commerceCaseId}/checkouts/{checkoutId}/order
{
    "orderType": "FULL",
    "orderReferences": {
        "merchantReference": "ClickCollect12345"
    },
    "paymentMethodSpecificInput": {
        "redirectPaymentMethodSpecificInput": {
            "requiresApproval": true,
            "tokenize": true,
            "paymentProductId": 990,
            "redirectionData": {
                "returnUrl": "yourReturnURL"
            }
        },
        "paymentChannel": "ECOMMERCE"
    }
}

The Order can also be initialized when creating Commerce Case and Checkout by setting autoExecuteOrder = true.

Retrieve Checkout in Commerce Portal

The Checkout can be retrieved in the Commerce Portal using the Checkout reference or personal information of the customer as filter:

Checkout with matching reference will be shown:

Click on the checkout to display details:

Check Payment Status

Deliver Items to capture payment and to update item status

If the Order was done as a reservation (for redirect payments: requiresApproval = true) in the webshop, the payment can captured and the Checkout items are marked as delivered using the Checkout actions:

Perform deliver

Deliver status notification

For the Click & Collect use case it makes sense to perform the Order as a reservation since it can be cancelled by the customer before collecting the item(s) in your local store. The Deliver / Capture can be done using the Commerce Portal as well as directly from your systems using the respective endpoints from the Commerce Platform.