MyCashflow-verkkokauppateemojen asetuksia ja tuettuja ominaisuuksia voidaan määrittää asetustiedostossa theme.xml. Tässä artikkelissa käydään läpi asetustiedoston sisältö ja käyttäminen teemassa.

Mikäli asetustiedosto puuttuu kaupan teemasta, teemaa ei voi ottaa käyttöön verkkokaupassa.

Asetustiedosto on XML-tiedosto, josta esimerkiksi tietyt Interface-tagit lukevat tarvitsemiaan tietoja. Asetustiedostossa mahdollistetaan myös joidenkin verkkokaupan ominaisuuksien käyttö teemassa (esim. lahjakortit ja tuotesuodattimet).

Sijoita asetustiedosto teeman juurikansioon (esimerkiksi themes/shop/TEEMA/theme.xml).

Seuraavissa esimerkeissä käytetään mallina MyCashflow'n Barebones-oletusteeman asetuksia.

Asetustiedoston rakenne

Asetustiedosto sisältää 4 päätason elementtiä:

  • <Version/>: teeman versionumero
  • <Settings/>: teemaa koskevia yleisiä asetuksia
  • <Features/>: teemassa tuetut ominaisuudet
  • <ImageSizes/>: eri yhteyksissä käytettäviä kuvakokoja (esim. tuotesivujen ja -listojen kuvat)

Alla näet esimerkin asetustiedoston perusrakenteesta:

<?xml version="1.0"?>
<Theme>
  <Version>1</Version>
  <Settings>
    ...
  </Settings>
  <ImageSizes>
    ...
  </ImageSizes>
  <Features>
    ...
  </Features>
</Theme>

Seuraavissa kappaleissa käydään läpi tarkemmin elementtien sisältöä.

Versiointi

<Version/>-elementissä voit pitää tietoa teeman kehityksestä. Voit päivittää versionumeron aina tehtyäsi muutoksia ja luoda teemaan myös erillisen readme.md-tiedoston, jossa kerrot versioittain tekemistäsi muutoksista.

Version perusteella lisätään myös {MinifyJS}- ja {MinifyCSS}-tageille versioparametri v=x. Kun parameteri on läsnä, muutokset teeman CSS/JavaScript-tiedostoihin eivät tallennu välimuistiin, mikä helpottaa teemamuutosten tekemistä.

<?xml version="1.0"?>
<Theme>
  ...
  <Version>1</Version>
  ...
</Theme>

Metatiedot

Asetusten <Doctype standard="HTML5/XHTML"/>-kentässä määritetään teeman jokaisen sivun HTML-dokumenttityyppi. Kentän arvo voi olla HTML5 tai XHTML (oletus).

Dokumenttityyppimääritys sisällytetään teemaan käyttäen {Doctype}-tagia, joka tulostaa valmiin dokumenttityyppimäärityksen (esim. <!doctype html>).

<?xml version="1.0"?>
<Theme>
  ...
  <Settings>
    <Doctype standard="HTML5"/>
  </Settings>
  ...
</Theme>

Kuvat

Asetusten <NoImage file="i/noImage.jpg"/>-kentässä määritetään oletusarvoinen tuotekuva kaikille tuotteille, joilla ei ole omia tuotekuvia. Tuotekuvatagit, kuten {ProductImages}, tulostavat kentän file-attribuutissa määritetyn kuvan.

Kuvan sijainti pitää määrittää suhteessa verkkokaupan tiedostohakemiston /files-kansioon. Alla olevassa esimerkissä kuva noImage.jpg sijaitsee i-nimisessä alikansiossa files-kansion sisällä.

<?xml version="1.0"?>
<Theme>
  ...
  <Settings>
    <Images>
      <NoImage file="i/noImage.jpg" />
    </Images>
  </Settings>
  ...
</Theme>

Lisäksi <ImageSizes/>-elementissä voidaan määrittää eri yhteyksissä käytettäviä kuvakokoja:

  • <Mini/>: käytössä esimerkiksi ostoskorin pikkukuvissa
  • <List/>: käytössä tuotelistojen tuotteilla
  • <Normal/>: käytössä tuotesivun tuotekuvalla
  • <Big/>: käytössä tuotekuvan suurennoksilla
  • <OpenGraph/>: käytössä OpenGraph-metatietoihin tulostettavalla kuvalla (hyvä olla iso)
  • <BrandList/>: käytössä tuotemerkin logoa tulostettaessa navigaatioissa ja listoissa
  • <BrandNormal/>: käytössä tuotesivun {ProductBrand}-tagilla
  • <CampaignImage/>: käytössä kampanjoiden sekä tuoteryhmien ja -merkkien kampanjakuvilla
  • <CheckoutLogo/>: käytössä kassan toimitus- ja maksutapalogoilla
<?xml version="1.0"?>
<Theme>
  ...
  <ImageSizes>
    <Mini width="32" height="32"/>
    <List width="162" height="162"/>
    <Normal width="258" height="258"/>
    <Big width="900" height="600"/>

    <OpenGraph width="1500" height="1500"/>
    
    <BrandList width="32" height="32"/>
    <BrandNormal width="162" height="162"/>
    
    <CampaignImage width="383"/>
    <CheckoutLogo width="270" height="90"/>
  </ImageSizes>
  ...
</Theme>

Kassa

Teeman ominaisuuksien <Checkout/>-osiossa määritetään teemassa tuetut kassan tyypit.

Asetukset <SinglePage supported="true/false" /> ja <MultiPage supported="true/false"/> määrittävät teemassa käytettävissä olevat kassat. Jos asetustiedostossa on määritetty esim. <SinglePage supported="false"/>, teemassa ei ole mahdollista käyttää yksisivuista kassaa, vaikka se olisi version asetuksissa valittuna, vaan teemassa on aina käytössä vain monisivuinen kassa. Jos teema ei sisällä valitun kassan sivupohjia, kauppa käyttää automaattisesti järjestelmän sisäistä, vastaavaa kassaa.

Jos molemmat kassat ovat käytettävissä, version asetuksissa voidaan valita kassan tyyppi. Kun version asetuksissa ei vielä ole tehty mitään valintaa, käytössä oleva kassa määritetään default="default"-attribuutin avulla.

<?xml version="1.0"?>
<Theme>
  ...
  <Features>
    <Checkout>
      <SinglePage supported="true" />
      <MultiPage supported="true" default="default" />
    </Checkout>
  </Features>
  ...
</Theme>

Tuotelistat

Teeman asetusten <ProductList/>-osiossa määritetään tuotelistojen sivutusvalikossa valittavissa olevat sivukoot.

Asetus vaikuttaa vain tuotesuodattimia käyttävien tuotelistojen sivutustyökaluihin.

Sivutusvalikko tulostetaan tuotelistojen yhteyteen {PaginationLimit}-tagilla.

Esimerkiksi alla olevalla asetuksella asiakas voi valita tuotelistan yksittäisen sivun pituudeksi 25, 50 tai 100 tuotetta.

<?xml version="1.0"?>
<Theme>
  ...
  <Settings>
    <ProductList>
      <PageSizes>
        <PageSize>25</PageSize>
        <PageSize>50</PageSize>
        <PageSize>100</PageSize>
      </PageSizes>
    </ProductList>
  </Settings>
  ...
</Theme>

Tuotelistojen maksimipituus on 100 tuotetta.

Lahjakortit

<GiftCards supported="true/false"/>-asetuksen avulla verkkokaupassa mahdollistetaan lahjakorttien laajennettu tuki.

Kun <GiftCards/>-asetuksella on arvo true

  • {CartTotal}-tagi tulostaa ostoskorin välisumman mukaanlukien alennukset
  • {CartOpenTotal}-tagi tulostaa avoimen summan
  • kassalla ei tarvitse valita maksutapaa, jos lahjakortin käytön jälkeen tilauksen loppusumma on 0 €.

Arvolla false

  • {CartTotal}-tagi tulostaa avoimen summan (lahjakortin jälkeen maksettavaa)
  • {CartOpenTotal}-tagi ei tee mitään, koska tagi ei ole käytössä ilman uudistettuja lahjakortteja
  • kassalla pitää valita maksutapa, vaikka tilaukselle ei jäisi maksettavaa.

Lue lisää asetuksen vaikutuksista

<?xml version="1.0"?>
<Theme>
  ...
  <Features>
    <GiftCards supported="true" />
  </Features>
  ...
</Theme>

Tuotepaketit

Teeman ominaisuuksien <ProductBundles supported="true/false"/>-asetus määrittää tuotepakettien toteutustavan.

Arvon ollessa false (tai sen puuttuessa) {ProductShortDesc}-tagi tulostaa tuotepaketit lyhyeen tuotekuvaukseen. Jos arvo on true, tuotepaketit eivät sisälly lyhyeen tuotekuvaukseen, vaan teemaan on lisättävä haluttuun kohtaan {ProductBundles}-tagi, joka tulostaa tuotepakettilistauksen.

Lue lisää tuotepakettien toteuttamisesta teemassa

<?xml version="1.0"?>
<Theme>
  ...
  <Features>
    <ProductBundles supported="true" />
  </Features>
  ...
</Theme>

Barebones-teeman asetustiedosto

Jos olet kehittämässä omaa teemaasi, voit kopioida alta löytyvän Barebones-teeman asetustiedoston suoraan teemasi juurihakemistoon nimellä theme.xml ja tehdä siihen tarvitsemiasi muutoksia.

<?xml version="1.0"?>
<Theme>
  <ImageSizes>
    <Mini width="80" height="80" />
    <List width="180" height="180" />
    <Normal width="600" height="600" />
    <Big width="1200" height="1200" />
  </ImageSizes>
  <Features>
    <Checkout>
      <SinglePage supported="true" default="default" />
      <MultiPage supported="false" />
    </Checkout>
    <GiftCards supported="true" />
    <ProductBundles supported="true" />
    <ProductListFilters supported="true" />
  </Features>
  <Settings>
    <Doctype standard="HTML5" />
    <ProductList>
      <PageSizes>
        <PageSize>25</PageSize>
        <PageSize>50</PageSize>
        <PageSize>100</PageSize>
      </PageSizes>
    </ProductList>
  </Settings>
</Theme>