De introductie van een webontwerper voor Shopify

In de loop van drie artikelen hier op Tuts + zullen we kijken hoe we een thema kunnen bouwen voor het gehoste e-commerce platform Shopify. Mijn doel is om je uit te rusten met alle vaardigheden die je nodig hebt om te beginnen, en om je een aantal creatieve manieren te tonen om je thema's flexibel en krachtig te maken.

Deze series

Shopify - een gebruiksvriendelijk, op thema's gebaseerd, gehost ecommerceplatform

Dit is wat we in de komende artikelen behandelen:

  • Het Shopify-partnerprogramma
  • Uitstekend e-commerceontwerp
  • De belangrijkste concepten die u nodig hebt om aan de slag te gaan met uw eerste winkelontwerp
  • Hoe een Shopify-thema is opgebouwd
  • Vloeistof: de Shopify-sjabloontaal
  • Geavanceerde technieken om uw thema's flexibel en krachtig te maken
  • Middelen om je thema-gebouw verder te brengen

Het Shopify Partner-programma

Voordat we van start gaan, raad ik u ten zeerste aan om u aan te melden voor een gratis Shopify-partneraccount. Het bouwen van thema's is 100% gratis voor ontwerpers (abonnementen beginnen pas als uw klant zijn winkel laat leven).


Partners - Een gratis lidmaatschap waarmee ontwerpers kunnen beginnen met het bouwen van thema's

Met een partneraccount kun je zoveel mogelijk volledig uitgeruste ontwikkelingswinkels maken als je nodig hebt. Deze hebben geen tijdslimiet en zijn 100% gratis te gebruiken en te testen. U kunt zelfs dummy-betalingen doen om de volledige aankoopstroom te testen. Dit is erg handig wanneer u uw werk onder de aandacht van uw klanten brengt..

Uitstekend e-commerceontwerp

Je hebt Shopify misschien wel gebruikt zonder het echt te realiseren. Als je ooit een titel hebt gekocht van A Book Apart, een t-shirt van United Pixel Workers, een tijdelijke tatoeage van Tattly, koffie van Has Bean of (als ik zo gewaagd ben) een exemplaar van een boek gekocht heb ik -auteur, dan heb je Shopify ervaren.

Zoals je in deze winkels zult zien, zien ze er allemaal heel anders uit. Er zijn geen beperkingen in termen van hoe uw winkel kan verschijnen, het is 100% geheel aan u en uw verbeeldingskracht. In 2013 besloot Shopify om een ​​groot ecommerce-ontwerp te benadrukken en lanceerde de inaugurele Shopify Design Awards. Meer dan 150 thema's werden ingediend en werden beoordeeld door drie zeer gerespecteerde personen uit de webontwerpwereld - Jeffrey Zeldman (oprichter van A List Apart en Happy Cog), Tina Roth-Eisenberg (oprichter van swissmiss, en Tattly) en Daniel Weinand (Co -founder en Chief Design Officer van Shopify).

De top drie thema's waren:

  1. Whipping Post
  2. Greats Brand
  3. Goodwin en Goodwin
Greats Brand - Een perfect voorbeeld van de flexibiliteit van Shopify-thema's

Een andere persoonlijke favoriet van mij, en een eervolle vermelding in de prijzen, is de Pure Fix Cycles-winkel. Naast het presenteren van leuke manieren om producten te filteren, injecteren ze ook plezier in hun ontwerp - een goed voorbeeld hiervan is hun productpagina met glimwielen..

Al deze thema's tonen niet alleen geweldige ontwerpvaardigheden, maar benadrukken ook de flexibiliteit van Shopify-thema's. Er is geen voorgeschreven HTML, klassen of ID's en geen beperkingen qua lay-out. Terwijl veel mensen premium-thema's kiezen voor hun winkels, beginnen veel ontwerpers helemaal opnieuw. De keuze is aan jou.

Sleutelbegrippen

Net als bij alle systemen heeft Shopify een aantal sleutelbegrippen die de moeite van het begrijpen waard zijn voordat we in een teksteditor duiken. Laten we beginnen met kijken naar hoe we onze winkel organiseren.

producten

Elke online winkel heeft producten nodig en Shopify is niet anders. Producten zijn ons basisstation in Shopify en centraal in themagebouw.

Kortom, een product is alles wat u wenst te verkopen. Elk product in een winkel heeft een aantal kenmerken - de meest voorkomende vier zijn titel, beschrijving, prijs en een afbeelding. Andere kenmerken die een product kan bezitten, zijn gewicht, kleur en maat. Al deze kunnen via de online beheerder worden geopend, aangemaakt en bijgewerkt.


Het dashboard - Gemakkelijke toegang tot producten, collecties en instellingen

Binnen Shopify kan elk product ook een aantal varianten hebben. Standaard heeft elk product dat u maakt één variant, u kunt er eenvoudig meer toevoegen als u dat wilt. Als we het voorbeeld van onze t-shirt opnieuw gebruiken, kunnen we zeggen dat het drie kleurenvarianten heeft (zwart, wit en groen) en drie maatvarianten (klein, middelgroot en groot). Dit zal op zijn beurt resulteren in het kunnen verkopen van:

  • Klein zwart t-shirt
  • Middelgroot zwart t-shirt
  • Groot zwart t-shirt
  • Klein wit t-shirt
  • Gemiddeld wit t-shirt
  • Groot wit t-shirt
  • Klein groen t-shirt
  • Middelgroot groen t-shirt
  • Groot groen t-shirt

Je hebt ook de mogelijkheid om specifieke details in te stellen voor elke combinatie. U kunt bijvoorbeeld een andere prijs instellen voor het kleine groene t-shirt in vergelijking met het grote groene t-shirt.

Varianten bewerken gebeurt via het productbeheerdersscherm

Varianten zijn een erg krachtige functie van Shopify en stellen u in staat uw producten op verschillende interessante manieren binnen uw sjablonen weer te geven.

collecties

Nadat u producten aan uw winkel hebt toegevoegd, wilt u deze mogelijk indelen in collecties. Ik beschrijf een verzameling als een "logische groepering van producten". Andere platforms kunnen de termcategorie gebruiken.

Collecties zijn niet verplicht, maar zijn erg handig. Elk product kan in een of meerdere collecties zitten, zodat u uw producten effectief kunt categoriseren. Zoals ik zeg, hoeven producten niet tot een verzameling te behoren, het is puur optioneel.

Collecties - Een logische groepering van producten

Als we Best Made Co. als voorbeeld nemen, kunnen we zien dat ze de volgende collecties gebruiken om hun producten te categoriseren:

  • Kleding
  • Accessoires & badges
  • Tassen & koffers
  • Boeken en kaarten
  • Home goederen
  • Kamp benodigdheden

Het is heel goed mogelijk dat een tas in zowel de collecties "Tassen & Cases" als "Camp Supplies" kan zitten.

Naast het handmatig definiëren van collecties, biedt Shopify een aantal andere manieren waarop we producten automatisch kunnen toevoegen. Een voorbeeld hiervan is om alle producten op te nemen waar de prijs lager is dan $ 10. Er zijn veel meer attributen die we kunnen gebruiken:

  • Product titel
  • Product type
  • Productverkoper
  • Product prijs
  • Product tag
  • Vergelijk tegen de prijs
  • Gewicht
  • Inventaris voorraad
  • Variant's titel

Voor vergelijkingen kunnen we het volgende gebruiken:

  • is gelijk aan
  • is groter dan
  • is minder dan
  • begint met
  • eindigt met
  • bevat

Deze staan ​​bekend als 'slimme verzamelingen' in de beheerdersinterface. U kunt collecties op de volgende manieren bestellen:

  • handmatig
  • Door best te verkopen
  • Alfabetisch (A-Z)
  • Alfabetisch (Z-A)
  • Op prijs (hoogste naar laagste)
  • Op prijs (laagste tot hoogste)
  • Op datum (nieuwste tot oudste)
  • Op datum (oudste tot nieuwste)

Ten slotte hebben collecties, net als producten, attributen die we kunnen bewerken vanuit de Shopify-beheerder, inclusief een titel, beschrijving en afbeelding.

Product tags

Naast collecties kunnen we ook tags gebruiken om verdere metadata aan onze producten toe te voegen. Een veelgebruikt gebruik voor tags is om te helpen met het filteren van een verzameling. Laten we dit demonstreren met een voorbeeld met behulp van de Pure Fix Cycles-winkel:


Filteren via tags zoals te zien in de Pure Fix Cycles-winkel

Zoals u kunt zien aan de bovenstaande afbeelding, bevinden we ons in de XXX-verzameling en kunnen we deze filteren met behulp van de vervolgkeuzelijst met tags.

Tags zijn ook een heel nuttige manier om producten aan elkaar te relateren. We zullen later in de serie meer in detail kijken naar hoe u gerelateerde producten kunt weergeven.

Thema's

Met de basisbeginselen van producten, collecties en tags begrepen dat het tijd is om te beginnen kijken naar hoe we thema's construeren. Het goede nieuws is dat als je ooit een website hebt gebouwd (en ik veronderstel dat de meesten van jullie dit lezen, in een of andere vorm), het maken van een Shopify-thema geen onaangename verrassingen zal veroorzaken.

Elk Shopify-thema bestaat uit vier hoofdelementen:

  1. HTML-bestanden (met een .vloeistof uitbreiding)
  2. CSS
  3. JavaScript (optioneel)
  4. Afbeeldingen

Deze bestanden zijn netjes georganiseerd in vijf mappen. Zoals u hieronder zult zien, zijn er slechts een handvol bestanden nodig om aan de slag te gaan. Hier is de basismapstructuur van een Shopify-thema:

├── activa
│ ├── screen.css.liquid
│ ├── site.js.liquid
├── config
│ ├── settings.html
├── lay-outs
│ ├── theme.liquid
├── fragmenten
├── sjablonen
│ ├── 404.liquid
│ ├── article.liquid
│ ├── blog.liquid
│ ├── winkelwagen.liquid
│ ├── collection.liquid
│ ├── list-collections.liquid
│ ├── page.liquid
│ ├── product.liquid
│ ├── product.liquid
│ ├── search.liquid

Ik heb mijn eigen bare-bones-startersthema toegevoegd aan GitHub - voel je vrij om een ​​exemplaar te nemen voor je eigen projecten.

Het is vermeldenswaard dat Shopify-thema's genestelde mapstructuren niet toestaan. Iets anders dat je misschien opvalt, is dat in de hele balk een van de HTML-bestanden niet de gebruikelijke is .html uitbreiding. In Shopify-thema's hebben vrijwel alle HTML-gerichte bestanden een .vloeistof uitbreiding - bijv. product.liquid en index.liquid.

De vloeistof in .vloeistof is de Shopify-sjabloontaal. Het is ontwikkeld door de originele makers van Shopify en is nu beschikbaar als een open source-project op GitHub. Misschien ben je het al tegengekomen omdat het in veel projecten te vinden is, inclusief Mixture en SiteLeaf.

Laten we de mappen en hun rol in een thema dieper bekijken.

Middelen

In de map met items staan ​​al uw afbeeldingen, JavaScript- en CSS-bestanden.

Veel mensen, inclusief mijzelf, scheiden vaak bestanden in submappen op basis van het type, dat wil zeggen een voor CSS, een voor afbeeldingen en een voor JavaScript. Houd er rekening mee dat dit niet mogelijk is in een Shopify-thema; al uw bestanden moeten in de root van de staan middelen map. Ook alle bestanden die u uploadt met thema instellingen via de Shopify-admin (die we later zullen bekijken) worden toegevoegd aan deze map.

config

Als u aan uw eerste thema werkt, hoeft u misschien niet het config map. Maar naarmate je verder komt met je thema-gebouw zul je het ongelooflijk handig vinden. Deze map is de thuisbasis van de settings.html het dossier. Je zult merken dat dit het enige bestand is dat doet eindigen in een .html uitbreiding.

Als je het opent in een teksteditor, zul je dat zien als een standaard settings.html bestand bevat formulierelementen zoals bestandsupdates, selectievakjes, selectielijsten en tekstinvoer. Met dit bestand kunnen themaontwerpers invoervelden maken voor verkopers om gegevens met betrekking tot hun thema te bewerken.

Om dit verder uit te leggen, stellen we dat we het mogelijk wilden maken om de achtergrondkleur van de winkel te wijzigen. We kunnen dit doen door een tekstinvoer toe te voegen in onze settings.html bestand als volgt:

De ingevoerde waarde, of de standaardwaarde zoals gespecificeerd in het waardeattribuut, is nu toegankelijk in onze sjablonen met behulp van de globale (beschikbaar in elke sjabloon) instellingen variabele op de volgende manier:

settings.text_color

Maak je geen zorgen als dit nu een beetje buitenaards voelt, tegen het einde van de serie is het volkomen logisch.

Thema's kunnen worden bewerkt via de online editor

lay-outs

De lay-outmap bevat meestal één bestand met de naam theme.liquid, hoewel het meer kan bevatten zoals we later zullen bespreken.

Lay-outs zijn erg krachtig omdat ze ons in staat stellen om alle gemeenschappelijke elementen van onze site in één bestand te definiëren. Wanneer een pagina wordt aangevraagd, wikkelt Shopify dit bestand rond het relevante micro sjabloon om een ​​enkele pagina weer te geven.

Een van de belangrijkste voordelen van lay-outs is dat ze ons in staat stellen onze code mooi en DROOG te houden (Do not Repeat Yourself), stelt ons in staat om globale veranderingen snel aan te brengen en maakt het werken met onze innerlijke microsjablonen minder ingewikkeld, omdat we te maken hebben met kleinere delen van de code.

Er zijn twee belangrijke Liquid-tags die u in een Shopify-lay-outbestand moet opnemen. De eerste is content_for_header. Deze variabele moet in het gedeelte van uw lay-outbestand worden geplaatst. Met deze tag kan Shopify elke noodzakelijke code in de documentkop invoegen, zoals een script voor het bijhouden van statistieken en CSS-bestanden voor de beheerde "ingelogde" beheerbalk

De tweede tag is content_for_layout. Dit is meestal te vinden in het midden van uw sjabloon op het punt waar u wilt dat uw microsjabloon verschijnt.

snippets

Fragmenten zijn bestanden die stukjes herbruikbare code bevatten, deze hebben ook de .vloeistof bestandsextensie.

Ik vind vaak dat themaontwerpers fragmenten op verschillende manieren gebruiken. Persoonlijk is de aanpak die ik volg:

  • De code verschijnt op elke pagina van de site - plaats de code in een lay-outbestand
  • De code verschijnt slechts eenmaal op een specifieke pagina - plaats de code in de relevante microsjabloon
  • De code verschijnt op meer dan één pagina maar niet op elke pagina - plaats de code in een fragmentbestand

Voorbeelden van goed gebruik van fragmenten zijn sociale links en paginablokken. Fragmenten kunnen eenvoudig in onze sjablonen worden opgenomen met behulp van de tag Vloeistof % include 'snippetname'%. Merk op dat u de. Niet hoeft toe te voegen .vloeistof extensie wanneer naar het bestand wordt verwezen.

templates

Ten slotte komen we bij de map waarin u het grootste deel van uw tijd zult doorbrengen. Ik verwijs vaak naar de bestanden in de templates map als micro-sjablonen simpelweg omdat het kleine stukjes code zijn die in ons lay-outbestand worden ingespoten.

Als het merendeel van de markup van uw site is opgenomen in a theme.liquid lay-outbestand dan zijn deze microsjablonen vaak erg klein.

Hier is een lijst met de micro-sjablonen waaruit een thema en het gebruik ervan bestaat:

  • 404.liquid - Gebruikt wanneer een pagina "niet gevonden" is
  • article.liquid - De artikelpagina voor een blogbericht
  • blog.liquid - De archiefvermeldingspagina voor een blog
  • cart.liquid - Een lijstpagina met alle items in uw winkelwagen
  • collection.liquid - Een lijstpagina met alle producten in een specifieke verzameling
  • index.liquid - De 'startpagina' die u kunt aanpassen om een ​​of meer producten, blogitems en verzamelingen weer te geven
  • list-collections.liquid - Een lijstpagina voor al uw productverzamelingen
  • page.liquid - Een basispagina voor inhoud, ideaal voor algemene voorwaarden, over pagina's, enzovoort.
  • product.liquid - Gebruikt om een ​​gespecificeerd product weer te geven
  • search.liquid - De sjabloon om zoekresultaten weer te geven

Templates toewijzen aan URL's in Shopify

Zoals je zult zien, zijn er in totaal tien microsjablonen in de templates map. Gelukkig zijn ze goed genoemd, dus het zou hopelijk duidelijk moeten zijn wanneer ze met hen werken wat ze doen.

Het laatste stukje van de puzzel is weten wanneer deze sjablonen in een winkel worden gerenderd. Het is eigenlijk best rechttoe rechtaan.

Shopify bepaalt welke sjabloon wordt weergegeven op basis van de gevraagde URL. Als je ooit een van de populaire ontwikkelingskaders hebt gebruikt, ben je misschien bekend met het concept routing. Shopify heeft zijn eigen interne routingsysteem en dit bepaalt welke sjabloon naar de browser wordt verzonden.

Hier is een overzicht van welke sjabloon wordt weergegeven zoals bepaald door de URL:

  • / thisisntarealurl → 404.liquid
  • / Blogs / blog-name / article-id-handle → article.liquid
  • / Blogs / blog-name → blog.liquid
  • / cart → cart.liquid
  • / collecties → list-collections.liquid
  • / Collecties / collectie-handle → collection.liquid
  • / Collecties / collectie-handle / tag → collection.liquid
  • / → index.liquid
  • / Pages / page-handle → page.liquid
  • / producten → list-collections.liquid
  • / Products / product-handle → product.liquid
  • / Search? Q = search termijn → search.liquid

De elementen in duiden een variabele aan die van invloed is op de gegevens die in een sjabloon zijn geladen. Als we bijvoorbeeld de / Collecties / collectie-handle URL-patroon een andere set gegevens zou worden weergegeven als we dat hadden gedaan / Collecties / fietsen vergeleken bij / Collecties / auto's.

Zoals u kunt zien, delen een aantal verschillende URL-patronen hetzelfde sjabloonbestand, bijvoorbeeld / producten en / collecties zullen beide de list-collections.liquid sjabloon.

hetzelfde / Collecties /, / Collecties / collectie-handle / en / Collecties / collectie-handle / tag allemaal gebruiken collection.liquid.

Volgende…

Nu we een goed begrip hebben van de belangrijkste concepten in verband met Shopify is het tijd om verder te gaan met meer aan code gerelateerde zaken.

In het volgende deel van deze serie zal ik u kennis laten maken met Liquid, de Shopify-sjabloontaal, en u laten zien hoe u gemakkelijk uw microsjablonen kunt vullen met gegevens uit uw online winkel. Als u in de tussentijd meer wilt leren, is een goede plek om te beginnen shopify.com/fordesigners.