Shopify Metaobjects vs. Metafields, Hvad Er Forskellen?

|Sebastian Føns
Hvad er forskellen på Shopify Metafields og Metaobjects?

Metafields tilføjer ekstra data til én bestemt ressource, som et produkt eller en kunde. Metaobjects er selvstændige objekter, der defineres én gang og kan genbruges på tværs af flere produkter, sider eller sektioner.

Hvornår skal man bruge et metafield i stedet for et metaobject?

Brug et metafield, når dataet er unikt for én ressource og ikke skal deles andre steder, for eksempel et produkts vægt, farve eller varenummer.

Hvornår skal man bruge et metaobject i stedet for et metafield?

Brug et metaobject, når samme indhold skal optræde flere steder, for eksempel en forfatterprofil, der refereres fra flere blogindlæg, eller en størrelsesguide, der gælder for hundredvis af produkter.

Kan man opdatere et metaobject ét sted og se ændringen overalt?

Ja, det er selve pointen med et metaobject. Redigerer man et metaobject, opdateres alle steder, der refererer til det, i stedet for at man skal redigere hvert produkt individuelt.

Hvad er en typisk fejl, når man bruger metafields og metaobjects?

Den mest almindelige fejl er at bruge separate metafields til data, der reelt burde have været samlet i ét metaobject, hvilket fører til dobbeltarbejde, hver gang dataet skal opdateres.

Kræver metaobjects kodning at sætte op?

Nej, metaobjects kan sættes op direkte i Shopify-admin under Custom data, uden at det kræver kodning, selvom udviklere ofte bruger dem via Liquid eller GraphQL til mere avancerede løsninger.

Kan et metafield referere til et metaobject?

Ja, det kaldes et metaobject-reference-metafield, og det er præcis den mekanisme, der lader et produkt pege tilbage til et delt metaobject, som en størrelsesguide.

Shopify Metaobjects vs. Metafields, Hvad Er Forskellen?

Metafields og Metaobjects lyder næsten identiske, og det er en af de mest almindelige årsager til forvirring blandt Shopify-brugere, der vil tilpasse deres butik ud over de standard sections der kommer med deres tema. Forskellen handler i bund og grund om ejerskab og genbrug.

Metafields, data der hører til noget bestemt

Et metafield er en simpel, typebestemt værdi, der er knyttet til én specifik ressource, et produkt, en variant, en kunde, en ordre, en side eller et blogindlæg. Det bruges typisk til data, der er unik for netop den ressource, og som ikke skal deles med noget andet.

Eksempler kunne være materialesammensætning, pleje-instruktioner, eller garantiperiode på et bestemt produkt. Shopify levere endda en række færdige "standard"-definitioner til almindelige tilfælde som ISBN-numre og ingredienslister, så man ikke selv behøver at bygge datastrukturen fra bunden.

Metaobjects, data der genbruges på tværs

Et metaobject er derimod et selvstændigt objekt, der ikke er knyttet til en bestemt ressource fra starten. Det defineres én gang og kan derefter refereres fra flere forskellige produkter, sider eller sektioner samtidig.

Et eksempel kunne være en størrelsesguide, der gælder for 200 forskellige t-shirts. Bygger man den som et metaobject, opretter man guiden én gang, og hvert produkt peger blot tilbage til den samme guide via et metaobject-reference-metafield. Skal guiden opdateres senere, redigeres den ét sted, i stedet for 200 separate steder.

Hvornår man vælger det ene frem for det andet

Tommelfingerreglen er ret ligetil, spørg dig selv om dataen er unik for én ressource, eller om den skal deles på tværs af flere.

Er svaret, at dataen er specifikt for ét produkt og ikke skal genbruges andre steder, er et metafield det rigtige valg. Det gælder for eksempel et enkelt produkts vægt, farve eller varenummer.

Er svaret, at det samme indhold optræder flere steder, en forfatterprofil der refereres fra tyve blogindlæg, en forhandler der skal fremgå på flere sider, eller en variantstørrelse der bruges i kollektionsfiltre, er et metaobject det rigtige valg.

Den fejl, mange laver

Den mest almindelige fejl er at bruge metafields til data, der reelt burde have været et metaobject. Et konkret eksempel er en størrelsesguide bygget som et separat metafield på hvert af 200 produkter, hver indeholdende den samme information i JSON-format. Skal guiden opdateres, kræver det 200 individuelle redigeringer i stedet for én.

Den omvendte fejl findes også, men er mindre almindelig. At bruge et metaobject til data, der kun bruges ét sted og aldrig genbruges. Her tilføjer metaobject-laget bare unødvendig kompleksitet, hvor et almindeligt metafield ville have været simplere.

Kort opsummeret

Metafields udvider en eksisterende ressource med ekstra data. Metaobjects definerer en helt ny, selvstændig indholdstype, der kan refereres fra mange steder. Vælger man forkert, ender man typisk med enten dobbeltarbejde ved opdateringer (for mange metafields) eller unødvendig teknisk overhead (for mange metaobjects).

0 kommentarer

Skriv en kommentar

Bemærk, at kommentarer skal godkendes, før de bliver offentliggjort.