Rune Grønkjærs Blog
Abonnér på mit feed

Tea Commerce Master product

Denne blogpost vil forklare hvordan basisprodukter, de såkaldte Master produkter, fungerer i Tea Commerce.

Hvad er et Master produkt i Tea Commerce?

Først og fremmest skal man forstå, at Tea Commerce produkter bare er ganske almindelige indholdsnoder i Umbraco. Noderne har en række properties, som webudvikleren selv giver dem. Umbraco lader alle sine noder nedarve properties fra noder længere oppe i træstrukturen.

Varianter

For produktnoder betyder det, at man kan lave varianter, som undernoder til en produktnode. Det benytter vi os fx af i Tea Commerce Starter Kit’et, hvor nogle produkter har varianter.

Som man kan se på figur 1 herunder ligger der en rød og en blå variant under “Product A1″. Det giver mulighed for, at lade hovedproduktet indeholde hovedparten af produktinformationerne, så varianterne bare skal have informationer omkring lagerstand, navn og eventuelt andre properties, som afviger fra hovedproduktet. Pilen angiver hvordan varianter arver fra deres hovedprodukt.

Fig. 1 – Varianter i Tea Commerce

Variants in Tea Commerce

Tea Commerce Master product

Med et Tea Commerce Master product går vi skridtet videre og lader et produkt arve fra et produkt, som er placeret et helt andet sted i indholdstræet. Denne type opsætning benytter vi i Tea Commerce Multilanguage Kit’et.

På figur 2 viser jeg hvordan nedarvningen ville foregå hvis den røde variant havde et Master product tilknyttet. På figur 3 kan man se hvordan det foregår uden varianter. Mere om det lidt senere.

Fig. 2 – Master product og varianter i Tea Commerce

Master product and variants in Tea Commerce

Fig. 3 – Master product uden varianter i Tea Commerce

Master product without variants in Tea Commerce

Hvordan sættes Tea Commerce Master products op?

For at få dine produkter til at snakke sammen med et Master product, skal der sættes et par ting op i Tea Commerce og Umbraco. For at se et eksempel på hvordan det ser ud når Master products er sat korrekt op kan du prøve at installere Tea Commerce Multilanguage Kit’et, som benytter Master products.

1. Produktets dokumenttype

De produkter, som skal kunne have et Master product, skal have en property til valg af en anden Umbraco node. Denne property kan vi kalde “Master product” og give den alias’et “masterProduct”. Dets type skal være noget, som kan give os id’et på den Master product noden. Typen kan derfor godt være et almindeligt tekstfelt, men en Content Picker eller en UComponents Multinode tree picker vil være at foretrække for brugeren. Sidstnævnte er specielt god, da den kan begrænse brugerens valgmuligheder.

2. Opsætning i Tea Commerce sektionen

Nu skal du ind under “Generelle indstillinger i Tea Commerce sektionen. Her skal du skrive alias’et, på den property vi lige har lavet, i feltet “Hovedprodukt property alias”. Nu ved Tea Commerce, hvad den skal kigge efter, for at finde produktets Master product.

3. Vælg et Master product på et af dine produkter

Nu skal du have oprettet et Master produkt og derefter lave et produkt, som peger ned på Master produktet med dets “masterProduct” property.

4. Udskriv produktinfo på din produktside

Nu skal vi have hentet nogle informationer om produktet ud på websitets produktvisning. For at hente en property ud fra produktet har Tea Commerce xslt library’et en metode kaldet GetProperty, som klarer ærterne for dig. GetProperty tager to parametre, hvor den første er produktnoden selv og den anden er alias’et på den property man ønsker at hente.

Hvordan fungerer Tea Commerce Master products?

Der er indtil nu tre scenarier hvori Master products bliver brugt. Det ene er GetProperty, som er nævnt herover. Det anden er en anden library metode, GetStock, som benyttes til at hente lagerstanden for et produkt. Det tredje scenarie, hvori Master products bliver brugt, er når et produkt tilføjes til kurven og den nye ordrelinie skal have tilføjet informationer fra produktet.

Fælles for alle tre er måden Tea Commerce vil forsøge at hente informationerne ud fra produktet. Med udgangspunkt i opsætningen i figur 2 kan man forklare det således:
  1. Der forespørges fx efter property’en “productPrice”, på produktet “Red”, med library metoden GetPropert.y
  2. Tea Commerce leder først på noden “Red”. Hvis den har en property kaldet “productPrice” og den property ikke er tom stopper den søgningen.
  3. Har den ikke fundet noget laver den samme søgning op igennem nodetræet med udgangspunkt i noden “Red”. Nu vil den altså gennemsøge blandt anden “Product A1″, men også “Category A”, “Products” osv. Selve søgningen foregår med xpath i Umbraco’s cachede XML, så performance holdes høj.
  4. Har Tea Commerce stadig ikke fundet det den søger, vil den finde “Red” nodens Master product og med udgangspunkt i den vil den lave samme søgning op igennem træet.

Hvad kan Tea Commerce Master products bruges til?

Sprogversionering af Tea Commerce produkter

Hele ideen med Master products i Tea Commerce, har fra starten været, at gøre det let at sprogversionere dine produkter. Ideen i denne situation at lade Master products indeholde alle de informationer om produktet, som ikke er sprogspecifikke. På den måde vil man ikke skulle indtaste disse informationer igen og igen, på samtlige sprog, hvilket også giver store problemer med at holde data konsistente. På det enkelte produkt kan man så fokusere på at taste teskter ind på det sprog man er på. Læs eventuelt lidt mere om dette i denne blogpost omkring sprog, lande og valutaer.

Samme produkt i flere kategorier

Man kan også benytte Master products til at placere samme produkt i flere kategorier. Man vil kunne lave alle produkter uden for det regulære indholdstræ og så lave nogle “tynde” produkter, som bare linker ned til et Master product. De tynde produkter behøver så ikke at have indtastet nogen informationer overhovedet og Tea Commerce vil så hente alle informationer fra deres Master product.

Et konkret eksempel

I nedenstående eksempel vil jeg hente et produkts navn, lagerstand og pris ud. I eksemplet benyttes der varianter, som i figur 2, og for at være sikker på, at jeg får en variant at tage udgangspunkt i, vælger jeg varianten, som jeg ved er en leaf node. En leaf node er en af de yderste noder i træet. Hvis jeg allerede står på en af varianterne vil den pågældende variant blive valgt. Hvis jeg står på hovedproduktet vil den først variant blive valgt. Hvis der slet ikke er varianter vil hovedproduktet selv bare blive valgt.

Eksempel i brugen af Master products


  
  

  
  

  
  

  
  

Tea Commerce links

Dette indlæg blev skrevet i e-commerce, sprog, sprogversionering, Tea Commerce, umbraco, xslt. Føj permalink til favoritter. Følg alle kommentarer her med RSS feedet for dette indlæg. Skriv en kommentar eller smid et trackback: Trackback URL. | Read this in english English version

2 kommentarer

  1. Skrevet 28. september 2011 at 17.19 | Permalink

    Good writing! Intressting to read! :)

  2. Skrevet 30. oktober 2011 at 08.00 | Permalink

    ha ha ha…
    Really intressting to read! :9
    Good!

Smid en kommentar

Your email is never published nor shared. Required fields are marked *

*
*

Du kan benytte disse HTML tags og attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

English version