Merchant side invoicing

Smarts offers merchant side invoice processing.

Implementation is OPTIONAL

General Flow

  1. Customer scans products to shopping cart.

  2. Smarts will send shopping cart to merchant when customer is ready to pay for the purchase.

  3. Merchant will response with generated receipt

  4. Customer will pay for receipt.

  5. Smarts will send receipt payment confirmation to merchant.

Configuration

Visit your store configuration page in Smarts manager UI. Switch store side invoicing to ON position and implement SDK required methods.

Implementation

You only need to create a new class, implement ReceiptAdapter interface and fill all required methods. API endpoints for merchant side invoicing are created automatically and secured with token.

It is important to add @Component annotation on top of the class. There is no restriction for class name or location in your project. Our SDK will find your implementation based on the interface (DI).

import ee.smarts.common.v1.Entities.receipt.Receipt;
import ee.smarts.common.v1.requests.CreateReceiptRequest;
import ee.smarts.common.v1.requests.ReceiptPaymentConfirmationRequest;
import ee.smarts.starter.adapter.ReceiptAdapter;
import org.springframework.stereotype.Component;
@Component
public class ReceiptAdapterImpl implements ReceiptAdapter {
@Override
public Receipt create(CreateReceiptRequest request) {
// implement this method
return null;
}
@Override
public void confirmationListener(ReceiptPaymentConfirmationRequest request) {
// implement this method
}
}

There is additional step for customer in payment process when using merchant side invoicing. Smarts shows generated receipt to customer before they are able to pay for the purchase.