Difference between revisions of "Liquid Template Variables - metafields"

From Spiffy Stores Knowledge Base

Line 16: Line 16:
 
=== Metafield Examples ===
 
=== Metafield Examples ===
  
As an example, you might wish to record the physical location of your inventory. You might keep some products in Sydney and others in Melbourne.
+
As an example, you might wish to record the physical location and delivery time for your inventory.
  
 
<html>
 
<html>
Line 34: Line 34:
 
|-
 
|-
 
|inventory
 
|inventory
|location
+
|delivery_time
|Melbourne
+
|2 days
 
|}
 
|}
  
Line 47: Line 47:
 
   <li>Stock Location: {{ inventory['location'] }}</li>
 
   <li>Stock Location: {{ inventory['location'] }}</li>
 
   <li>Stock Location: {{ inventory.location }}</li>
 
   <li>Stock Location: {{ inventory.location }}</li>
 +
</ul>
 +
</pre>
 +
 +
The delivery time for the stock can also be displayed with this code.
 +
 +
<pre>
 +
{% assign inventory = product.metafields.inventory %}
 +
{% assign key = 'delivery_time' %}
 +
<ul>
 +
  <li>Delivery Time: {{ inventory[key] }}</li>
 +
  <li>Delivery Time: {{ inventory['delivery_time'] }}</li>
 +
  <li>Delivery Time: {{ inventory.delivery_time }}</li>
 
</ul>
 
</ul>
 
</pre>
 
</pre>

Revision as of 14:39, 20 February 2015

The Liquid template variable metafields is associated with the following Liquid objects:

  • shop
  • product
  • variant
  • page
  • blog
  • collection
  • customer
  • order

The metafields object allows you to store extra information about your store, products, collections, orders, customers, blogs and pages. You can choose exactly what sort of information you wish to save and the exact format in which it's saved. This makes for a very powerful tool to assist you in the task of managing your store.

A metafield is made up of a key and a value organized with other keys and values under a common namespace. An optional description can also be store with the key and the value. Values can be stored as either strings or integers.

Metafield Examples

As an example, you might wish to record the physical location and delivery time for your inventory.

namespace key value
inventory location Sydney
inventory delivery_time 2 days

You can use the following code in your product.liquid template to display the metafield information.

{% assign inventory = product.metafields.inventory %}
{% assign key = 'location' %} 
<ul>
  <li>Stock Location: {{ inventory[key] }}</li>
  <li>Stock Location: {{ inventory['location'] }}</li>
  <li>Stock Location: {{ inventory.location }}</li>
</ul>

The delivery time for the stock can also be displayed with this code.

{% assign inventory = product.metafields.inventory %}
{% assign key = 'delivery_time' %} 
<ul>
  <li>Delivery Time: {{ inventory[key] }}</li>
  <li>Delivery Time: {{ inventory['delivery_time'] }}</li>
  <li>Delivery Time: {{ inventory.delivery_time }}</li>
</ul>