Lessen uit het bouwen van Shopify-thema's

Ik heb Shopify eerst gebruikt niet lang nadat het in 2006 werd gelanceerd. Ik vond het een eenvoudig te gebruiken en concurrerend geprijsd gehost e-commerceplatform. Maar vooral, de thema-functie is wat ik het leukst vond. Laten we eens kijken naar een paar eenvoudige technieken die u controle geven over uw Shopify-thema's en uw klanten een nog mooiere ervaring bieden.

Shopify-thema's (hierna simpelweg thema's genoemd) zijn eenvoudig te construeren. Naast onze dagelijkse hulpmiddelen voor HTML, CSS en JavaScript, gebruiken thema's een sjabloondocument met de naam Vloeistof. Ik wil verder gaan dan de basis in dit artikel om je een paar technieken te laten zien die ik onlangs heb gebruikt om je Shopify-thema-ontwikkeling super op te laden. Als u niet bekend bent met thema's, kunt u meer informatie vinden op de Shopify Wiki.


De verzamelingenpagina beheren

Alle Shopify-kassa's worden veilig gehost in het Shopify-domein.

Met thema's kunt u uw huis, collecties en afzonderlijke productpagina's beheren. Hier is een typische Shopify-URL die een enkel product weergeeft:

http://store.theheadsofstate.com/products/chicago-travel-poster

'The Heads of State' is een liefdevol geproduceerde Shopify-site die hun producten heel goed laat zien. De bovenstaande URL neemt je mee naar hun Chicago Travel Poster, maar als je, net als ik, een beetje een URL-pedant bent, kom je misschien in de verleiding om terug te hacken naar:

http://store.theheadsofstate.com/products/

Deze URL brengt u naar een pagina die er niet-ontworpen uitziet in vergelijking met de rest van de site. Ik betwijfel ten zeerste dat dit te wijten is aan een gebrek aan denken van de ontwerpers. Het is eigenlijk de schuld van Shopify; thema's ondersteunen momenteel geen native sjabloon voor de beschikbare pagina op / producten (of / collecties - de twee zijn in deze context uitwisselbaar). In plaats daarvan wordt in het standaardlay-outbestand een lijst met beschikbare collecties weergegeven.

Gelukkig kan men snel de controle over deze pagina terugkrijgen en deze in zijn voordeel gebruiken. In de thema's layout.liquid bestand, kunt u vervangen content_for_layout met het volgende codefragment:

 % if template == 'list-collections'% % include 'collection-listing'% % else% content_for_layout % endif%

Maak vervolgens een bestand met de naam collection-listing.liquid en sla het op in de map met fragmenten. Als iemand de website bezoekt / collecties of / producten pagina, ons lay-outbestand wordt gerenderd en bevat ons eigen fragment in plaats van de standaardvermelding.

Hier is een kort voorbeeld van hoe u de collectielijst kunt restylen met uw eigen markup. Merk op dat we toegang hebben tot de Shopify verzamelingen ID op deze pagina:

 

Productcollecties

    % voor verzameling in collecties% % tenzij collectie.handle == 'voorpagina'%
  • collection.title % endunless% % endfor%

U kunt meer informatie vinden over de variabelen die beschikbaar zijn in de verzamelingen verzameling op het uitstekende Shopify-spiekbriefje. Merk op hoe we de logica van Liquid gebruiken om de verzameling uit te sluiten met een handvat van fronptage. Dit is een vaak gebruikte verzameling in thema's voor het weergeven van items op de startpagina, maar we sluiten deze uit omdat deze meer voor administratiedoeleinden wordt gebruikt dan een logische groepering van gerelateerde producten. Met deze techniek kunt u de styling consistent houden en extra gegevens of ontwerpelementen toevoegen zoals u wilt.


Alternatieve lay-outs

... woordslakken staan ​​bekend als handgrepen.

Wanneer u voor het eerst aan de slag gaat met thema's, maakt u kennis met het concept lay-outs. Standaard zoekt Shopify naar een standaard lay-outbestand met de naam layout.liquid, die in de toepasselijke naam woont lay-out map.

Er kunnen zich situaties voordoen waarin uw ontwerp een alternatieve lay-out vereist. Eén benadering is om voorwaardelijke instructies te gebruiken om inhoud weer te geven / te verbergen, afhankelijk van een variabele, zoals een bepaald product of een verzamelpagina. Maar een ander alternatief is om een ​​heel ander lay-outbestand te gebruiken. Dit kan een veel eenvoudigere oplossing zijn als je een andere markering nodig hebt. Alles wat u nodig hebt om een ​​alternatieve lay-out af te dwingen, is de volgende code toe te voegen aan de bovenkant van uw sjabloon:

 % layout "product"%

Dit dwingt je sjabloon om een ​​lay-outbestand genaamd te gebruiken product.liquid gelegen in uw thema's lay-outs map.

U kunt ook opgeven dat er geen lay-out wordt gebruikt door op te geven geen, zoals dit:

 % layout "none"%

Productspecifieke sjablonen

Als u WordPress hebt gebruikt, zult u waarschijnlijk bekend zijn met het idee van een naaktslak. Het is een unieke naam voor een specifieke post of pagina die in een URL wordt gebruikt. Bijvoorbeeld: "mijn-eerste-pagina". In Shopify staan ​​woordslakken bekend als handgrepen. Deze worden automatisch gegenereerd wanneer u een product maakt, maar u kunt deze natuurlijk wijzigen als u dat wilt. Onze productgrepen zijn ook beschikbaar voor ons in onze product.liquid sjabloon. We kunnen gebruiken handgrepen om onze productsjabloon te dicteren. Dit is een manier om dit te doen:

 % if product.handle == 'my-new-t-shirt'% % include 'my-new-t-shirt'% % else% // Uw standaardcode voor product.liquid gaat hier % stop als %

In dit voorbeeld controleren we of het product van het huidige verzoek 'mijn nieuwe t-shirt' is en een fragment bevat dat 'mijn nieuwe t-shirt' wordt genoemd als dit waar is. Dit komt neer op het opnemen van een bestand met de naam mijn-nieuwe-t-shirt.liquid die zich in de map met fragmenten bevindt.

Om nog een stap verder te gaan, zou je de standaard kunnen veranderen product.liquid in een fragment. Ik vind deze benadering leuk omdat het je hoofdsjabloon als een logische controller houdt, en mooi presentatie-opmaak in hun eigen bestanden isoleert.

Dit patroon kan enigszins worden aangepast om het te gebruiken toewijzen en geval methoden, zoals dit:

 % assign handle = product.handle% % case handle% % when 'big-t-shirt'% % include 'big-t-shirt'% % when 'small-t-shirt' % % include 'small-t-shirt'% % else% % include 'product-standaard'% % endcase%

U kunt ook de producthendel gebruiken om verschillende CSS-klassen toe te wijzen aan de tag in uw layoutbestanden. Bijvoorbeeld:

 % casussjabloon% % wanneer 'product'%  % else%  % endcase%

Je zou deze techniek natuurlijk kunnen uitbreiden om de tag op basis van een aantal criteria.


Afrekenen CSS

Alle Shopify-kassa's worden veilig gehost in het Shopify-domein. Voor sommigen kan een verwijzing naar een algemene kassa-pagina een beetje schokkend zijn in termen van de gebruikerservaring. Je kunt je checkout echter wel opmaken met CSS. Dit is wat u moet doen:

  1. Maak een bestand met de naam checkout.css in de activamap van uw thema.
  2. Ga naar uw betalingspagina en ga na welke stijlen u wilt negeren met een tool zoals de Chrome Inspector. Mogelijk moet u de !belangrijk regel om de gewenste resultaten te bereiken.

Zorg ervoor dat je de wiki bekijkt voor complete voorbeelden.

U kunt ook Liquid gebruiken in uw checkout.css het dossier. Ten eerste, hernoem je CSS-bestand in checkout.css.liquid. Dan kunt u Liquid-filters gaan gebruiken. Hier is een voorbeeld:

 / * Voeg uw eigen logo in (upload afzonderlijk naar uw activamap) * / #logo height: 65px; achtergrond: url ('logo-checkout.png' | asset_url | replace: 'http: //', 'https: //') center no-repeat; 

Het is verbazingwekkend hoe een paar wijzigingen in de standaard CSS de generieke kassa kunnen afstemmen op uw eigen ontwerp. Zorg ervoor dat u alle sjablonen van het afrekenproces bekijkt; uw CSS is van toepassing op een aantal schermen.


Thema instellingen

Met thema-instellingen kunnen we de Shopify-beheerder gebruiken om gegevens te beheren die we in onze thema's kunnen gebruiken. Gangbare use-cases zijn strap-lijnen, kleurschema's voor de hele site en het selecteren van op maat gemaakte afbeeldingen die in schuifregisters op de site worden weergegeven. Als u instellingen voor uw thema wilt inschakelen, maakt u eenvoudig een settings.html bestand (let op geen .liquid-extensie) en begin met het toevoegen van de relevante formulierelementen. U kunt bijvoorbeeld het volgende opnemen in uw settings.html bestand kunt bewerken van de riem van de site:

        

Merk op hoe ik de standaardwaarde instel. Dit is belangrijk, vooral als het gaat om CSS-waarden. Om toegang te krijgen tot deze waarde in ons thema, verwijzen wij het eenvoudig in Liquid als volgt:

 

settings.site_strapline

We kunnen ook de thema-instellingen gebruiken in onze belangrijkste CSS-bestanden door de .vloeistof uitbreiding naar ons belangrijkste CSS-bestand. Bijvoorbeeld:

 body kleur: settings.text_color; achtergrondkleur: settings.bg_color; 

Het is erg belangrijk om standaardwaarden voor deze kleuren in uw settings.html het dossier. Als u dit niet doet, wordt uw standaard CSS-bestand gemaakt zonder een waarde. Lees meer op de wiki: http://wiki.shopify.com/Theme_Settings


cart.js

Shopify biedt ook een JavaScript-API en de "winkelwagen" -informatie voor de huidige gebruiker is direct voor ons beschikbaar via een zeer eenvoudige URL. Voeg gewoon de .js uitbreiding naar de winkelwagen-URL om een ​​JSON-weergave van de winkelwagen te krijgen. Hier is een voorbeeld:

 "token": "7b0f09aca710a4ce688325a8add36c6b", "note": null, "attributes": null, "total_price": 0, "total_weight": 100.0, "item_count": 1, "items": ["id": 229848636 , "title": "Insites: The Tour Coasters", "price": 0, "line_price": 0, "quantity": 1, "sku": "", "grams": 100, "vendor": "Viewport Industrieën "," eigenschappen ": null," variant_id ": 229848636," url ":" / products / insites-the-tour "," image ":" http://cdn.shopify.com/s/files/1 /0151/6407/products/png_1.png?783 "," handle ":" insites-the-tour "," require_shipping ": true]," require_shipping ": true

Dit geeft je een extreme hoeveelheid flexibiliteit en creatieve kracht. U kunt een pop-up met JavaScript maken die de inhoud van het winkelwagentje laat zien of een diavoorstelling injecteert waarin de gekozen producten worden gemarkeerd. Natuurlijk kunt u deze dingen in uw sjablonen doen, maar dit geeft u meer opties om een ​​betere gebruikerservaring te bieden.


Conclusie

Zoals met alle platforms, zijn er veel verschillende manieren om hetzelfde probleem aan te pakken, maar ik hoop dat deze zes tips nuttig en nuttig voor u zijn bij het ontwikkelen van uw volgende Shopify-thema.