Przejdź do głównej treści
Repozytorium GitHub: https://github.com/KlipFit/kleep-spm

Instalacja


Proces ten należy wykonać tylko raz, przy pierwszej instalacji SDK w projekcie. W celu zapoznania się z instrukcjami dotyczącymi kolejnych aktualizacji prosimy o zajrzenie do sekcji Aktualizacja.
  1. Dodaj następujący pakiet: https://github.com/KlipFit/kleep-spm
  2. Zmień regułę zależności na: do następnej wersji głównej

Uprawnienia


Dodaj następujące uprawnienie do projektu w pliku info.plist: NSCameraUsageDescription

Użycie


Metoda 1: requestSize

Ta metoda umożliwia implementację logiki CTA.
parametrpriorytetopis
productIDwymaganyIdentyfikator Twojego produktu
retailerNamewymaganyNazwa sprzedawcy
customerIDopcjonalnyIdentyfikator CRM, używany do analityki
trackingIDopcjonalnyID użytkownika używany przez zewnętrzne rozwiązanie śledzące
Schemat logiki Ten schemat wyjaśnia, jak aktualizować CTA otwierające Kleep. https://www.figma.com/board/BlurZ01lR3JBQZeTUU98TE/Mobile---CTA-Logic?node-id=0-1&t=ccXWciNziIdfhgew-1 Przykład implementacji
import Klipfit

struct ContentView: View {
    @State var isOpenView = false
        
    var body: some View {
        VStack {
            Spacer()
            Button("Open Kleep") {
                isOpenView = true
            }
            Spacer(minLength: 40)
            
            Button("obtenir la taille") {
                Klipfit.shared.requestSize(productID: String, retailerName: String, trackingID: String, customerID: String) { kleepResult in
                    switch kleepResult {
                    case .notSupported:
	                    // Hide CTA
                        print("NotSupported")
                    case .noRecommendationYet:
	                    // Display CTA with neutral label
                        print("NoRecommendationYet")
                    case .recommendationFound(let result):
	                    // Display CTA with size reco
                        print("RecommendationFound: ", result)
                    }
                }
            }
	            Spacer()
        }
        .sheet(isPresented: $isOpenView) {
            KlipFitFindSizeView { result, variantID in 
								// addToCart(variantID)
	          }
        }
    }
}

Metoda 2: loadView

Ta metoda jest wywoływana po kliknięciu CTA. Umożliwia załadowanie różnych ekranów. Programista integrujący SDK powinien umieścić je w bottom sheet.
parametrpriorytetopis
productIDwymaganyIdentyfikator Twojego produktu
retailerNamewymaganyNazwa sprzedawcy
customerIDopcjonalnyIdentyfikator CRM, używany do analityki
trackingIDopcjonalnyID używany przez zewnętrznego dostawcę śledzenia
Przykład implementacji
struct KlipFitFindSizeView: UIViewControllerRepresentable {
		
		public var onResult: KleepOnResultCompletion

    func makeUIViewController(context: Context) -> KlipftNavigationController {
        guard let viewController =
        KlipftNavigationController.loadView(
                productID: String,
                retailerName: String,
                language: KleepLanguageCode, // .fr .en .es .it .pt .nl 
                trackingID: "",
                customerID: "",
                stocks: [String : Bool]?,
                onResult: onResult
        )
        else {
            fatalError("ViewController not implemented in storyboard")
        }
        viewController.navigationBar.isHidden = true
        return viewController
    }
    func updateUIViewController(_ uiViewController: KlipftNavigationController, context: Context) {
    }
    typealias UIViewControllerType = KlipftNavigationController
}

Metoda 3: track

Ta metoda umożliwia śledzenie niestandardowych zdarzeń.
parametrpriorytetopis
eventNamewymaganyNazwa zdarzenia do śledzenia
paramsopcjonalnyInformacje powiązane ze zdarzeniem
import Klipfit

Klipfit.shared.track(eventName: String, params: [String: Any]? = nil)
Chcemy śledzić 3 zdarzenia:
eventNameWyzwalacz
product_viewedPo wyświetleniu strony produktu (PDP)
product_added_to_cartPo dodaniu produktu do koszyka
checkout_completedPo potwierdzeniu zamówienia po płatności
product_viewed Parametry (CSV) Przykład
{
		productId: str
}
product_added_to_cart Parametry (CSV) Przykład
{
    productId: str,
    variantId: str,
    cart: [
	    {
		    productId: "123ABC456",
		    variantId: "123ABC456-00R",
				sku: "XYZ",
		    size: "S",
		    quantity: 2,
		    price: {
						amount: "50",
				    currencyCode: "EUR"		    
		    }
	    },
	    {
		    productId: "123ABC456",
		    variantId: "123ABC456-00R",
		    sku: "XYZ",
		    size: "S",
		    quantity: 1,
		    price: {
				    amount: "40",
				    currencyCode: "USD"
				}
	    }
	    ...
    ],
}
checkout_completed Parametry (CSV) Przykład
{
    orderId: "000001",
    cart: [
	    {
		    lineItemId: "000001#1",
		    productId: "123ABC456",
		    variantId: "123ABC456-00R",
				sku: "XYZ",
		    size: "S",
		    quantity: 2,
		    price: {
						amount: "50",
				    currencyCode: "EUR"		    
		    }
	    },
	    {
			  lineItemId: "000000#2",
		    productId: "123ABC456",
		    variantId: "123ABC456-00R",
		    sku: "XYZ",
		    size: "S",
		    quantity: 1,
		    price: {
				    amount: "40",
				    currencyCode: "USD"
				}
	    }
	    ...
    ],
}