W tym instruktażu omówimy, jak korzystać z dynamicznych zmiennych pochodzących z Data Layer w Vue.js Pokażemy również, jak te zmienne można wykorzystać w kodzie, np. do wyświetlania różnych elementów na stronie w zależności od tego, czy użytkownik jest zalogowany, oraz jak korzystać z danych produktów na stronie karty produktu.
Zmienne dostępne na froncie:
Ogólne zmienne z Data Layer (front):
-
$one.account: Zawiera informacje o koncie użytkownika.-
isAuthenticated: Sprawdza, czy użytkownik jest zalogowany. -
user.name,user.email: Zawierają dane użytkownika, jeśli jest zalogowany. -
manager: Informacje o menedżerze, jeśli użytkownik jest powiązany z kontem menedżera. -
logout(): Metoda do wylogowania użytkownika.
-
-
$one.cart: Zawiera dane o koszyku.-
currentCart: Obecny koszyk użytkownika. -
totalCartPrice: Całkowita cena koszyka. -
addToCart(productId, amount, where, cartId): Metoda do dodania produktu do koszyka.
-
-
$one.wishlist: Zawiera dane o liście życzeń.-
currentWishlist: Obecna lista życzeń użytkownika. -
addToWishlist(productId, amount, wishlistId): Dodaje produkt do listy życzeń.
-
-
$one.config: Zawiera informacje o konfiguracji platformy.-
isRegistrationEnabled: Czy rejestracja jest włączona. -
isPlatformOpened: Czy platforma jest otwarta.
-
-
$one.catalog: Zawiera dane o katalogu produktów.-
categories: Lista kategorii produktów.
-
- $one.account.client.tin - zwraca nip organizacji
Zmienne na karcie produktu:
Na karcie produktu dostępne są następujące zmienne:
-
id: Identyfikator produktu. -
name: Nazwa produktu. -
price: Cena produktu. -
attributes: Lista atrybutów produktu. -
manufacturer: Producent produktu. -
photos: Zdjęcia produktu. -
seo: Dane SEO produktu. -
relatedProducts: Powiązane produkty. -
shippingTime: Czas dostawy. -
shortDescription: Krótki opis produktu. -
additionalTechnicalDescription: Dodatkowy opis techniczny.
Przykład dynamicznego HTML na podstawie autoryzacji użytkownika
Poniżej znajduje się przykład kodu, który wyświetla różne elementy na stronie w zależności od tego, czy użytkownik jest zalogowany, czy nie. Wykorzystuje on zmienną $one.account.isAuthenticated do sprawdzenia, czy użytkownik jest zalogowany, a następnie wyświetla odpowiedni baner promocyjny.
Kod:
<template v-if='$one.account. isAuthenticated'>
<!-- Zalogowany użytkownik -->
<div class="right-col">
<figure>
<img src="https://static.klient- preprod.one.unity.pl/cms/ 49294a8ffa464353a1320ce347a9f5 0d- 01b64c7f1de64fc0b4abca7a49354c e0-promobar.jpg" alt="promobar" />
</figure>
</div>
</template>
<template v-else>
<!-- Niezalogowany użytkownik -->
<div class="right-col">
<a href="/registration">
<figure>
<img src="https://static. onecommerce.shop/cms/ 10b358fb45b449bbaaee1958a302e9 bf-baner7.png" alt="promobar" />
</figure>
</a>
</div>
</template>
Wyjaśnienie:
-
<template v-if='$one.account.: Sprawdzamy, czy użytkownik jest zalogowany przy użyciu zmiennejisAuthenticated'> $one.account.isAuthenticated. Jeśli tak, wyświetlamy baner dla zalogowanych użytkowników. -
<template v-else>: Jeśli użytkownik nie jest zalogowany, wyświetlamy alternatywny baner promocyjny oraz link do rejestracji. -
v-ifiv-else: To standardowe dyrektywy Vue, które pozwalają na warunkowe renderowanie elementów w zależności od stanu danych.
Przykład użycia zmiennych produktu na karcie produktu
Możemy również wykorzystać zmienne dotyczące produktu, takie jak name, price, photos, aby dynamicznie wyświetlać dane na karcie produktu.
Kod:
<h1>{{ product.name }}</h1>
<p>Cena: {{ product.price }} {{ $one.utils.currency.symbol }}</p>
</div>
Wyjaśnienie:
-
{{ product.name }}: Wyświetla nazwę produktu. -
{{ product.price }} {{ $one.utils.currency.symbol }}: Wyświetla cenę produktu wraz z symbolem waluty, który pochodzi z$one.utils.currency.symbol.
Zastosowanie zmiennych w praktyce
Dzięki dynamicznemu wyświetlaniu elementów na podstawie zmiennych z Data Layer możesz tworzyć bardziej spersonalizowane doświadczenia dla użytkowników np:
-
Dostosowywanie widoku na podstawie segmentu użytkownika za pomocą
$one.account.user.hasSegment().
Podsumowanie
Dynamiczny HTML z Vue.js pozwala na elastyczne i interaktywne tworzenie treści w CMS z wykorzystaniem zmiennych pochodzących z Data Layer. W tym instruktażu pokazaliśmy:
- Jak sprawdzać, czy użytkownik jest zalogowany, i warunkowo wyświetlać treści.
- Jak dynamicznie wyświetlać informacje o produkcie na karcie produktu.
- Jak korzystać z pętli i wyświetlać dane z Data Layer na froncie.
To pozwala na budowanie dynamicznych i spersonalizowanych stron w prosty i czytelny sposób.
Komentarze
Komentarze: 0
Zaloguj się, aby dodać komentarz.