Developers
  • Introduction
  • Integration
    • Spring Boot Starter
      • Overview
      • Setup your project
      • Product search
      • Invoicing
      • Merchant side invoicing
      • Merchant side purchase control
      • Loyalty cards
      • Home delivery
      • Marketing & Offers
    • Custom Integration
      • Overview
      • Connection node
        • Get node version endpoint
        • Get node health endpoint
      • Product search
        • Pageable product list search endpoint
        • Product bacrode search endpoint
        • Product name search endpoint
        • Product category search endpoint
      • Invoicing
        • Receive invoice endpoint
      • Merchant side invoicing
        • Create receipt endpoint
        • Confirm receipt payment endpoint
      • Merchant side purchase control
        • Receive purchase check endpoint
        • Send purchase check result
        • Ask for purchase check data resend
      • Loyalty cards
        • Loyalty card registration endpoint
        • Loyalty card bonus endpoint
      • Home delivery
        • Receive order endpoint
        • Receive order update endpoint
        • Update order status
        • Find order by id
        • Find order by invoice id
        • Find order by institution invoice id
      • Marketing & Offers
        • Find offers endpoint
  • General
    • Data object descriptions
      • HealthStatus
      • DefaultOffer
      • DiscountOffer
      • ProductRelatedOffer
      • OfferType
      • OfferClassification
      • Order
      • OrderStatusChangeLog
      • ColorTheme
      • LoyaltyCard
      • DefaultLoyaltyCard
      • BonusLoyaltyCard
      • LoyaltyCardType
      • LoyaltyCardValidationType
      • Shipment
      • ShipmentStatus
      • Category
      • Addition
      • Address
      • Currency
      • BuyerParty
      • Campaign
      • CampaignCode
      • ClientCard
      • Information
      • Inspection
      • Invoice
      • LangCode
      • Price
      • Product
      • Quantity
      • SellerParty
      • Total
      • TotalVAT
      • Translatable
      • Receipt
      • ReceiptProduct
      • ReceiptLoyaltyCard
      • ReceiptCategory
      • VAT
    • Request & Responses
      • NodeHealthResponse
      • NodeVersionResponse
      • OfferSearchRequest
      • PickupOrderStatusChangeRequest
      • LoyaltyCardBonusResponse
      • LoyaltyCardBonusRequest
      • LoyaltyCardRegistrationResponse
      • LoyaltyCardRegistrationRequest
      • PurchaseControlCheckResendRequest
      • PurchaseControlResult
      • PurchaseControlCheckResponse
      • PurchaseControlCheckRequest
      • ReceiptPaymentConfirmationRequest
      • InstitutionRequest
      • Pageable
      • PageRequest
      • CreateReceiptRequest
      • ProductSearchRequest
    • Campaign standard
Powered by GitBook
On this page
  • General Flow
  • Configuration
  • Implementation

Was this helpful?

  1. Integration
  2. Spring Boot Starter

Merchant side purchase control

This functionality allows to get full control over the purchase check

Implementation is OPTIONAL

Purchase check rules are divided into two groups.

  • Product specific rules will be sent along with product data request.

  • Store based rules can be configured in Smarts manager UI.

General Flow

  • Smarts asks from merchant if the purchase check is needed by sending shopping cart information to merchant.

  • Merchant will response with purchase check decision.

    • Smarts will lock app and shows the purchase check notification to client.

  • Merchant send the purchase check result to Smarts.

    • Smarts will unlock the app

    • Purchase control supervisor is able to make changes from client shopping cart.

    • Purchase control supervisor is able to cancel the shopping process.

  • After purchase check client will be directed to payment process.

App lock will expire after 4 hours and app will be unlocked. This might be happen when client will not appear to purchase check or merchant will not send purchase check result back to Smarts.

Configuration

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

Implementation

You only need to create a new class, implement PurchaseControlAdapter interface and fill all required methods. API endpoints for purchase check 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.requests.PurchaseControlCheckRequest;
import ee.smarts.common.v1.responses.PurchaseControlCheckResponse;
import ee.smarts.starter.adapter.PurchaseControlAdapter;
import org.springframework.stereotype.Component;

@Component
public class PurchaseControlAdapterImpl implements PurchaseControlAdapter {
    @Override
    public PurchaseControlCheckResponse check(PurchaseControlCheckRequest request) {
        // implement this method

        return null;
    
} 
}

Send purchase check results back to Smarts by calling send method fromPurchaseControlResultSender

import ee.smarts.common.v1.requests.PurchaseControlCheckRequest;
import ee.smarts.common.v1.responses.PurchaseControlCheckResponse;
import ee.smarts.starter.adapter.PurchaseControlAdapter;
import org.springframework.stereotype.Component;
import lombok.RequiredArgsConstructor;

@Component
@RequiredArgsConstructor
public class PurchaseControlStoreSideSender{

    private final PurchaseControlResultSender resultSender
    
    public void sendResult(PurchaseControlResult result) {
        resultSender.send(result);
    } 
}
PreviousMerchant side invoicingNextLoyalty cards

Last updated 5 years ago

Was this helpful?