# Liquid Drops
With every template Shoperb supplies a set of data, which are grouped into objects called Drops. Every drop has set of available fields, and all of them are described below. We are using both global and private drops.
# Global Drops
Shoperb has the following set of Drop types:
- Account
- Address
- Array < Collection
- Attribute
- BlogPost
- Cart
- CartItem
- Categories < Collection
- Category
- Collection
- Country
- Currency
- Customer
- Image
- Integration
- Integrations < Collection
- Language
- Link
- MediaFile
- Menu
- Menus < Collection
- Meta
- Order
- OrderItemAttribute < Attribute
- OrderItem
- OrderReturn (order_return)
- Page
- Pages < Collection
- Paginate
- PaymentMethod (payment_method)
- Plan (Subscription plan)
- Plans (Subscription plans)
- ProductAttribute < Attribute
- ProductCollection
- ProductCollections < Collection
- Product
- ProductType
- ProductTypes (product_types) < Collection
- Products < Collection
- Review
- Search
- ShippingItem
- ShippingMethod (shipping_method)
- ShippingParcel (shipping_parcel)
- Shop
- Subscription
- ThemeSectionBlocks < Collection
- ThemeSection
- ThemeSectionImage < Image
- ThemeSectionSettings < ThemeSettings
- ThemeSettings
- Url::Get
- Url::Post
- VariantAttribute < Attribute
- Variant
- Variants < Collection
- Vendor
# Private Drops
Private drops are made available only for specific templates.
# Account
# account.shops
Returns list of account's shops.
# Address
# address.first_name
Returns addresses's owners first name.
<span>{{ address.first_name }}</span>
<span>John</span>
# address.last_name
Returns addresses's owners last name.
<span>{{ address.last_name }}</span>
<span>Doe</span>
# address.full_name
Returns addresses's owners full name.
<span>{{ address.full_name }}</span>
<span>John Doe</span>
# address.company
Returns addresses's company name.
<span>{{ address.company }}</span>
<span>Perfectline</span>
# address.email
Returns addresses's owners email.
<span>{{ address.email }}</span>
<span>john.doe@example.com</span>
# address.phone
Returns addresses's owners phone.
<span>{{ address.phone }}</span>
<span>777555772</span>
# address.full_address
Returns addresses's address1 and address2 fields concatenated.
<span>{{ address.full_address }}</span>
<span>Meistri 12, fourth floor</span>
# address.company_with_phone
Returns addresses's company name and phone fields concatenated.
<span>{{ address.comapny_with_phone }}</span>
<span>Perfectline, 777555772</span>
# address.city_state_with_zip
Returns addresses's city, state, and zip fields concatenated.
<span>{{ address.city_state_with_zip }}</span>
<span>Tallinn, Harjumaa, 13517</span>
# address.street
Alias for full_address.
# address.address1
Returns addresses's address1 field.
<span>{{ address.address1 }}</span>
<span>Meistri 12</span>
# address.address2
Returns addresses's address2 field.
<span>{{ address.address2 }}</span>
<span>Fourth floor</span>
# address.city
Returns addresses's city field.
<span>{{ address.city }}</span>
<span>Tallinn</span>
# address.state
Returns addresses's state's name.
<span>{{ address.state }}</span>
<span>Harjumaa</span>
# address.country
Returns addresses's country's name.
<span>{{ address.country }}</span>
<span>Estonia</span>
# address.state_code
Returns addresses's state's code.
<span>{{ address.state_code }}</span>
<span>HR</span>
# address.country_code
Returns addresses's country's code.
<span>{{ address.country_code }}</span>
<span>EE</span>
# address.url
Returns addresses's url for editing.
<a href="{{ address.url }}">Edit Address</a>
<a href="/addresses/1/edit">Edit Address</a>
# Attribute
# attribute.id
Returns attributes's id.
<span>{{ attribute.id }}</span>
<span>1</span>
# attribute.handle
Returns attribute's handle.
<span>{{ attribute.handle }}</span>
<span>color</span>
# attribute.name
Returns attribute's name.
<span>{{ attribute.name }}</span>
<span>Color</span>
# attribute.value
Returns attribute's value.
<span>{{ attribute.value }}</span>
<span>Green</span>
# BlogPost
# blog_post.id
Returns blog posts's id.
<span>{{ blog_post.id }}</span>
<span>1</span>
# blogpost.name
Returns blogposts's name.
<span>{{ blogpost.name }}</span>
<span>My First Blog Post</span>
# blogpost.handle
Returns blogpost's handle.
<span>{{ blogpost.handle }}</span>
<span>my-first-blog-post</span>
# blogpost.image
Returns Blogpost's main image. Can be used as preview image
# blogpost.content
Returns blogpost's content (html).
<span>{{ blogpost.content }}</span>
<span><p>Some content</p><p>Some more content</p></span>
# blogpost.published_at
Returns blogpost's published_at time.
<span>{{ blogpost.published_at }}</span>
<span>2018-04-26T11:49:39</span>
# blogpost.next
Returns blogpost's next blogpost.
# blogpost.prev
Returns blogpost's previous blogpost.
# blogpost.next_prev_stat
# blogpost.url
Returns blogpost's url.
<a href="{{ blogpost.url }}">Read more</a>
<a href="/blog-posts/my-first-blog-post">Read more</a>
# Cart
# cart.total
Returns cart's total amount.
<span>{{ cart.total }}</span>
<span>103.17</span>
# cart.weight
Returns cart's weight.
<span>{{ cart.weight }}</span>
<span>1.45</span>
# cart.discount_code
Returns cart's discount code.
<span>{{ cart.discount_code }}</span>
<span>nipitiri</span>
# cart.quantity
Returns cart's product count.
<span>{{ cart.quantity }}</span>
<span>7</span>
# cart.requires_shipping?
Returns whether cart requires shipping or not.
<span>{{ cart.requires_shipping? }}</span>
<span>true</span>
# cart.items
Returns list of cart's cartitems.
# cart.notes
Returns cart's notes.
<span>{{ cart.notes }}</span>
<span>some comment left by the user</span>
# CartItem
# cartitem.id
Returns cartitems's id.
<span>{{ cartitem.id }}</span>
<span>1</span>
# cartitem.sku
Returns cartitem's sku.
<span>{{ cartitem.sku }}</span>
<span>SKU-7587337</span>
# cartitem.name
Returns cartitem's name.
<span>{{ cartitem.name }}</span>
<span>Blue T-Shirt</span>
# cartitem.quantity
Returns cartitem's quantity.
<span>{{ cartitem.quantity }}</span>
<span>3</span>
# cartitem.weight
Returns single cartitem's weight (not multiplied by quantity).
<span>{{ cartitem.weight }}</span>
<span>0.17</span>
# cartitem.price
Returns cartitem's price (not multiplied by quantity).
<span>{{ cartitem.price }}</span>
<span>13.17</span>
# cartitem.discount_price
Returns cartitem's discounted price.
<span>{{ cartitem.discount_price }}</span>
<span>10.17</span>
# cartitem.active_price
Returns cartitem's active price.
<span>{{ cartitem.active_price }}</span>
<span>10.17</span>
# cartitem.discount?
Returns whether cartitem has discount applied.
<span>{{ cartitem.discount? }}</span>
<span>true</span>
# cartitem.discount_start
Returns cartitem's discounts start time.
<span>{{ cartitem.discount_start }}</span>
<span>3</span>
# cartitem.discount_end
Returns cartitem's discounts end time.
<span>{{ cartitem.discount_end }}</span>
<span>3</span>
# cartitem.total
Returns cartitem's total price (multiplied by quantity).
<span>{{ cartitem.total }}</span>
<span>40.2</span>
# cartitem.total_weight
Returns cartitem's weight (multiplied by quantity).
<span>{{ cartitem.total_weight }}</span>
<span>3</span>
# cartitem.requires_taxing?
Returns whether cartitem requires taxing.
<span>{{ cartitem.requires_taxing? }}</span>
<span>true</span>
# cartitem.requires_shipping?
Returns whether cartitem requires shipping.
<span>{{ cartitem.requires_shipping? }}</span>
<span>true</span>
# cartitem.digital?
Returns whether cartitem is digital.
<span>{{ cartitem.digital? }}</span>
<span>false</span>
# cartitem.vendor
Returns cartitem's vendor.
# cartitem.type
Returns cartitem's type.
# cartitem.product
Returns cartitem's product.
# cartitem.variant
Returns cartitem's variant.
# Categories
# categories.roots
Returns list of root categories.
# Category
# category.id
Returns category's id.
<span>{{ category.id }}</span>
<span>1</span>
# category.name
Returns category's name.
<span>{{ category.name }}</span>
<span>Category Name</span>
# category.handle
Returns category's handle.
<span>{{ category.handle }}</span>
<span>category-handle</span>
# category.parent
Returns category's parent category.
# category.level
Returns category's level.
<span>{{ category.level }}</span>
<span>1</span>
# category.url
Returns category's url.
<a href="{{ category.url }}">{{ category.name }}</a>
<a href="/categories/category-handle">Category Name</a>
# category.image
Returns category's image.
# category.root
Returns category's top parent category.
# category.root?
Returns whether category is root category.
<span>{{ category.root? }}</span>
<span>true</span>
# category.current?
Returns whether category is the category currently open with category url.
<span>{{ category.current? }}</span>
<span>true</span>
# category.open?
Returns whether category is child of current category.
<span>{{ category.open? }}</span>
<span>false</span>
# category.parents
Returns list of categories category belongs to.
# category.children
Returns list of categories under category.
# category.children?
Returns whether category has children.
<span>{{ category.children? }}</span>
<span>false</span>
# category.products
Returns list of products under category.
# category.products_with_children
Returns list of products under category and category's child-categories.
# Collection
# collection.each
# collection.count
Returns the number of items in the collection
# collection.size
Returns the number of items in the collection
# collection.any?
Returns true if the collection has at least one item
# collection.many?
Returns true if the collection has more than one item
# collection.one?
Returns true if collection has one item.
# collection.empty?
Returns true if the collection is empty
# collection.first
Returns the first item in the collection
# collection.last
Returns the last item in the collection
# collection.pluck(key)
# Country
# country.code
Returns country's code.
<span>{{ country.code }}</span>
<span>EE</span>
# country.name
Returns country's name.
<span>{{ country.name }}</span>
<span>Estonia</span>
# country.iso3
Returns country's iso3.
<span>{{ country.iso3 }}</span>
<span>EST</span>
# country.eu
Returns whether country is in EU.
<span>{{ country.eu }}</span>
<span>true</span>
# country.na
Returns whether country is in North America.
<span>{{ country.na }}</span>
<span>false</span>
# country.abstract
Returns whether country is abstract.
<span>{{ country.abstract }}</span>
<span>false</span>
# country.states_json
Returns country's states in json.
<span>{{ country.states }}</span>
<span>[{"name":"Harjumaa","code":"EE-37"},{"name":"Tartumaa","code":"EE-78"},...]</span>
# Currency
# currency.name
Returns currency's name.
<span>{{ currency.name }}</span>
<span>Euro</span>
# currency.code
Returns currency's code.
<span>{{ currency.code }}</span>
<span>EUR</span>
# currency.symbol
Returns currency's symbol.
<span>{{ currency.symbol }}</span>
<span>€</span>
# Customer
# customer.name
Returns customer's full name.
<span>{{ customer.name }}</span>
<span>John Doe</span>
# customer.first_name
Returns customer's first name.
<span>{{ customer.first_name }}</span>
<span>John</span>
# customer.last_name
Returns customer's last name.
<span>{{ customer.last_name }}</span>
<span>Doe</span>
# customer.email
Returns customer's email address.
<span>{{ customer.email }}</span>
<span>john.doe@gmail.com</span>
# customer.accepts_newsletter?
Returns if customer accepts newsletters.
<input type="checkbox" id="newsletter" name="customer[newsletter]"
value="1" {% if customer.accepts_newsletter? %}checked="checked"{% endif %}>
<input type="checkbox" id="newsletter" name="customer[newsletter]"
value="1" checked="checked" />
# customer.registred?
Returns whether customer is registered.
<span>{{ customer.registered? }}</span>
<span>true</span>
# customer.discount_pct
Returns customer's discount percentage.
<span>{{ customer.discount_pct }}</span>
<span>20</span>
# customer.last_billing_address
Returns customer's last billing address.
# customer.last_shipping_address
Returns customer's last shipping address.
# customer.addresses
Returns list of addresses under customer.
# customer.orders
Returns list of orders under customer.
# customer.logged_in?
Returns whether customer is logged in.
<span>{{ customer.logged_in? }}</span>
<span>true</span>
# customer.recommended_products
Returns list of recommended products for customer.
# customer.company?
Returns whether customer is a company.
<span>{{ customer.company? }}</span>
<span>false</span>
# customer.personal?
Returns whether customer is a person.
<span>{{ customer.personal? }}</span>
<span>true</span>
# customer.company_name
Returns customer's company name.
<span>{{ customer.company_name }}</span>
<span>Company OÜ</span>
# customer.vat_number
Returns customer's vat_number.
<span>{{ customer.vat_number }}</span>
<span>37887287</span>
# Image
# image.width
Returns image's width.
<span>{{ image.width }}</span>
<span>1280</span>
# image.height
Returns image's height.
<span>{{ image.height }}</span>
<span>720</span>
# image.url
Returns image's url.
<img src="{{ image.url }}">
<img src="https://...">
# image.aspect_ratio
Returns image's aspect ratio.
<img src="{{ image.aspect_ratio }}">
<img src="https://...">
# Integration
# integration.id
Returns integration's id.
<span>{{ integration.id }}</span>
<span>1</span>
# integration.name
Returns integration's name.
<span>{{ integration.name }}</span>
<span>Google Analytics</span>
# integration.handle
Returns integration's handle.
<span>{{ integration.handle }}</span>
<span>google-analytics</span>
# integration.code_layout
Returns integration's html.
<span>{{ integration.code_layout }}</span>
<span><script "type"="javascript">...</script></span>
# integration.count
Returns integration's count.
<span>{{ integration.count }}</span>
<span>1</span>
# Integrations
# integrations.head
Returns list of integrations for head tag.
# integrations.start_body
Returns list of integrations for start of body tag.
# integrations.end_body
Returns list of integrations for end of body tag.
# Language
# language.name
Returns language's name.
<span>{{ language.name }}</span>
<span>Estonian</span>
# language.code
Returns language's code.
<span>{{ language.code }}</span>
<span>EST</span>
# language.active?
Returns whether language is active.
<span>{{ language.active? }}</span>
<span>true</span>
# Link
# link.url
Returns link's url.
<a href="{{ link.url }}">{{ link.name }}</a>
<a href="/about">About</a>
# link.index_action?
Returns whether link is an index action.
<span>{{ language.index_action? }}</span>
<span>false</span>
# link.menu
Returns link's menu.
# link.name
Returns link's name.
<span>{{ link.name }}</span>
<span>About</span>
# link.handle
Returns link's handle.
<span>{{ link.handle }}</span>
<span>about</span>
# link.object
Returns link's object.
<span>{{ link.object.id }}</span>
<span></span>
# link.object?
Returns whether link has object.
<span>{{ link.object? }}</span>
<span>false</span>
# link.parent
Returns link's parent.
# link.children
Returns list of links under link.
# link.children?
Returns whether link has children.
<span>{{ link.children? }}</span>
<span>true</span>
# link.style
Returns link's style.
One of home, search, product, products, category, page, blog_posts, blog_post, collection, collections, custom, blank
<span>{{ link.style }}</span>
<span>page</span>
# MediaFile
# mediafile.id
Returns mediafile's id.
<span>{{ mediafile.id }}</span>
<span>1</span>
# mediafile.mime
Returns mediafile's mime type.
<span>{{ mediafile.mime }}</span>
<span>application/text</span>
# mediafile.extension
Returns mediafile's extension.
<span>{{ mediafile.extension }}</span>
<span>txt</span>
# mediafile.filename
Returns mediafile's filename.
<span>{{ mediafile.filename }}</span>
<span>my-file.txt</span>
# mediafile.url
Returns mediafile's url.
<a href="{{ mediafile.url }}">{{ mediafile.filename }}</a>
<a href="...">my-file.txt</span>
# mediafile.image?
Returns whether mediafile is an image.
<span>{{ mediafile.image? }}</span>
<span>false</span>
# Menu
Selecting menu for examples {% assign menu = menus['footer'] %}
# menu.id
Returns menu's id.
<span>{{ menu.id }}</span>
<span>1</span>
# menu.name
Returns menu's name.
<span>{{ menu.name }}</span>
<span>My Menu</span>
# menu.handle
Returns menu's handle.
<span>{{ menu.handle }}</span>
<span>my-menu</span>
# menu.links
Returns list of all of menu's links.
# menu.root_links
Returns list of menu's root links.
# Menus
# menus.links
# Meta
# meta.title
Returns meta's title.
<head>
<title>{{ meta.title }}</title>
</head>
<head>
<title>My Product</title>
</head>
# meta.description
Returns meta's description.
<head>
<meta name="description" content="{{ meta.description }}">
</head>
<head>
<meta name="description" content="My Products description">
</head>
# meta.keywords
Returns meta's keywords.
<head>
<meta name="keywords" content="{{ meta.keywords }}">
</head>
<head>
<meta name="keywords" content="My Products keywords">
</head>
# Order
# order.name
# order.number
# order.token
# order.email
# order.total
# order.total_items
# order.total_wo_discount
# order.subtotal
# order.subtotal_wo_discount
# order.total_shipping
# order.total_taxes
# order.requires_shipping?
# order.requires_taxation?
# order.created_at
# order.state
# order.notes
# order.discount_code
# order.neto_discount
# order.bruto_discount
# order.shipping_method
# order.payment_method
# order.billing_address
# order.shipping_address?
# order.shipping_address
# order.items
# order.customer
# order.currency
# order.url
# order.payment_url
# order.invoice_url
return the url for the order invoice
# OrderItem
# orderitem.name
Returns the name of the product associated with the item, relative to time of order.
# orderitem.quantity
# orderitem.qty
# orderitem.sku
# orderitem.attributes
# orderitem.weight
# orderitem.width
# orderitem.height
# orderitem.depth
# orderitem.price
# orderitem.subtotal
# orderitem.total
# orderitem.total_weight
# orderitem.total_taxes
# orderitem.requires_shipping?
# orderitem.digital?
# orderitem.url
# orderitem.requires_taxation?
# orderitem.category
# orderitem.product_id
# orderitem.product_name
Returns the current name of product, or nil if the product was deleted
# orderitem.image
Returns the image associated with the item or null.
# OrderItemAttribute
# orderitemattribute.
# OrderReturn (order_return)
# order_return.delivery_date
# order_return.comment
# order_return.items
# order_return.parcel
# order_return.url
# order_return.state
# order_return.generate_parcel_url
# Page
# page.id
Returns page's id.
<span>{{ page.id }}</span>
<span>1</span>
# page.name
Returns page's name.
<span>{{ page.name }}</span>
<span>About</span>
# page.handle
Returns page's handle.
<span>{{ page.handle }}</span>
<span>about</span>
# page.content
Returns page's content.
{{ page.url }}
<HTML...>
# page.url
Returns page's url.
<a href="{{ page.url }}">{{ page.name }}</a>
<a href="/about">About</a>
# Pages
Collection
# pages.
# Paginate
# paginate.pages
number of pages
# paginate.total
total results,
# paginate.last
last element index
# paginate.size
size of collection
# paginate.offset
how many results are skipped
# paginate.first
first page number
# paginate.page
number of current page
# paginate.previous
previous page link
# paginate.next
next page link
# paginate.parts
an array of links. Part may include:
Key | Description |
---|---|
title | the title of the part, as numer, or … if an ellipsis |
is_link | boolean to know if the part is a link |
url | url to the page of the part |
current | boolean to check if this is the current page |
# paginate.collection
collection of your objects used with {% paginate object by number %}
declaration for the current page
# PaymentMethod (payment_method)
# payment_method.name
Returns payment_method's name.
<span>{{ payment_method.name }}</span>
<span>Swedbank</span>
# payment_method.provider
Alias for name.
# payment_method.state
Returns payment_method's state (active or hidden).
<span>{{ payment_method.state }}</span>
<span>active</span>
# payment_method.invoice_instructions
Returns payment_method's invoice instructions.
<span>{{ payment_method.invoice_instructions }}</span>
<span>Text to put on invoices</span>
# payment_method.checkout_instructions
Returns payment_method's checkout instructions.
<span>{{ payment_method.checkout_instructions }}</span>
<span>Text to put on checkout</span>
# Plan - Subscription Plan
# plan.name
Returns name of the plan
# plan.price
Returns the price of the plan
# plan.interval
Returns the interval of the plan (month/year)
# plan.description
Returns the description of the plan
# plan.interval_count
Returns how many times the plan will be auto-renewed
# plan.setup_cost
Return plan setup price, if any
# plan.trial_interval
Returns how much time trial is for plan
# plan.create_subscription_url
Returns the url for subscription creation page of given plan
# plan.custom_fields
Returns the values of a specific custom field of the plan
{{ plan.custom_fields.delivery_time.set_values.first }}
In this example, it is assumed that plan has a custom field named delivery_time
. To access the valur
of the field, we are using set_values
which returns an array of values, then using first
to
get the first value in the array.
# Plans - Subscription Plans
Returns a collection of the subscriptions belonging to the store.
# Plans | sort
Sort plans according to chosen attribute
{{ plans | sort: "price" }}
Get a collection of subscription plans sorted by price ascending
# ProductAttribute
Returns an Attribute drop
# Product
# product.id
Returns product's id.
<span>{{ product.id }}</span>
<span>1</span>
# product.name
Returns product's name.
<span>{{ product.name }}</span>
<span>My Product</span>
# product.handle
Returns product's handle.
<span>{{ product.handle }}</span>
<span>my-product</span>
# product.url
Returns product's url.
<a href="{{ product.url }}">{{ product.name }}</a>
<a href="/products/my-product">My Product</a>
# product.reviews_url
Returns the URL for product reviews page.
<a href="{{ product.reviews_url }}">See all</a>
<a href="/products/my-product/reviews">See all</a>
# product.max_price
Returns product's max price.
<span>{{ product.max_price }}</span>
<span>13.17</span>
# product.min_price
Returns product's min price.
<span>{{ product.min_price }}</span>
<span>11.17</span>
# product.price
Alias for min price.
# product.min_discount_price
Returns product's min discount price.
<span>{{ product.min_discount_price }}</span>
<span>8.17</span>
# product.max_discount_price
Returns product's max discount price.
<span>{{ product.min_discount_price }}</span>
<span>9.17</span>
# product.min_active_price
Returns product's min active price.
<span>{{ product.min_active_price }}</span>
<span>8.17</span>
# product.max_active_price
Returns product's max active price.
<span>{{ product.max_active_price }}</span>
<span>9.17</span>
# product.market_price
<span>{{ product.market_price }}</span>
<span>19.99</span>
# product.available?
Returns whether product is available.
<span>{{ product.available? }}</span>
<span>true</span>
# product.reviewable?
Returns true if the product is reviewable by current customer.
<span>{{ product.reviewable? }}</span>
<span>true</span>
# product.rating
Returns the average review rating for the product.
<span>{{ product.rating }}</span>
<span>4.5</span>
# product.description
Returns product's description.
<span>{{ product.description }}</span>
<span>My Products description</span>
# product.options
Returns product's attributes values.
<span>{{ product.options }}</span>
<span></span>
# product.category
Returns product's category.
# product.vendor
Returns product's vendor.
# product.type
Returns product's type.
# product.variants
Returns list of product's variants.
# product.available_variants
Returns list of product's available variants.
# product.image
Returns product's image.
It is possible to get different sizes of the image, by using image.size-*
. Possible sizes
are 160, 240, 480, 720 and 2048px wide.
Example:
{{ product.image.size-240.url }}
# product.images
Returns list of product's images.
# product.attributes
Returns list of product's attributes.
# product.variant_properties
Returns list of product's variant attributes.
# product.others_in_category
Returns list of products in category.
# product.similar_products
Returns list of similar products.
# product.tags
Returns list of product's tags.
# product.reviews
Returns list of product's reviews.
# product.variant_attributes
Returns a hash with a map of all possible attributes, title and values.
Example:
{
attribute.not_translated_name: {
title: "Attribute translated name",
values: ["One", "Two"]
}
}
# Products
Collection
# ProductCollection
# productcollection.id
Returns productcollection's id.
<span>{{ productcollection.id }}</span>
<span>1</span>
# productcollection.name
Returns productcollection's name.
<span>{{ productcollection.name }}</span>
<span>My Collection</span>
# productcollection.handle
Returns productcollection's handle.
<span>{{ productcollection.handle }}</span>
<span>my-collection</span>
# productcollection.image
Returns productcollection's image.
# productcollection.url
Returns productcollection's url.
<a href="{{ productcollection.url }}">{{ productcollection.name }}</a>
<a href="/collections/my-collection">My Collection</a>
# productcollection.description
Returns productcollection's handle.
<span>{{ productcollection.handle }}</span>
<span>my-collection</span>
# productcollection.products
# ProductCollections
Collection
# ProductType
# producttype.id
Returns producttype's id.
<span>{{ producttype.id }}</span>
<span>1</span>
# producttype.name
Returns producttype's name.
<span>{{ producttype.name }}</span>
<span>My Product Type</span>
# producttype.handle
Returns producttype's handle.
<span>{{ producttype.handle }}</span>
<span>my-product-type</span>
# ProductTypes (product_types)
Collection
Returns list of ProductType
# product_types.each
# Review
# review.title
Returns the title of the review
Example:
<span>{{ review.title }}</span>
Output:
this is a review title
# review.body
Returns the body of the review in plain text
Example:
<span>{{ review.body }}</span>
Output:
This just an example for a body of a review
# review.rating
Returns rating for the review, as integer.
Example:
<span>{{ review.rating }}</span>
Output:
4
# review.created_at
Returns the date, in full format.
Example:
<span>{{ review.created_at }}</span>
Output:
Tue, 23 Apr 2019 08:32:07 UTC +00:00
Can be used with a filter to format the string, using ruby time formatting
<span>{{ review.created_at | date: '%B %e %Y' }}</span>
Output:
April 23 2019
# review.customer
Returns the name of the customer who wrote the review
Example:
<span>{{ review.customer }}</span>
Output:
John Doe
# review.product
Example:
<span>{{ review.product }}</span>
Returns the product associated with the review
# Search
# search.size
Returns the size (number) of results
Example:
<span>{{ search.size }}</span>
Output:
5
# ShippingMethod (shipping_method)
# shipping_method.name
# shipping_method.rate
# shipping_method.provider
# shipping_method.provider_box
# shipping_method.tracking_number
# ShippingParcel (shipping_parcel)
can only be used inside email templates
# shipping_parcel.barcode
# shipping_parcel.number
# shipping_parcel.state
# shipping_parcel.order
# shipping_parcel.shipping_items
# Shop
Shoperb has various elements that apply on the higher store/account level. These are things like store name, contact information, as well as other elements that are related to checkout, languages and currencies.
# shop.name
Returns shop's name.
<span>{{ shop.name }}</span>
<span>My Shop</span>
# shop.email
Returns shop's email.
<span>{{ shop.email }}</span>
<span>email@example.com</span>
# shop.domain
Returns shop's domain.
<span>{{ shop.domain }}</span>
<span>my-shop</span>
# shop.meta_title
Returns shop's meta title.
<head>
<title>{{ shop.meta_title }}</title>
</head>
<head>
<title>My Shop</title>
</head>
# shop.meta_keywords
Returns shop's meta keywords.
<head>
<meta name="keywords" content="{{ shop.meta_keywords }}">
</head>
<head>
<meta name="keywords" content="META Keywords Content">
</head>
# shop.meta_description
Returns shop's meta description.
<head>
<meta name="description" content="{{ shop.meta_description }}">
</head>
<head>
<meta name="description" content="META Description Content">
</head>
# shop.current?
# shop.metric?
Propose changing to shop.weight_system that Returns either metric or imperial
# shop.reviews?
Returns true if reviews are enabled in current store.
# shop.address
Returns shop's address.
# shop.language
Returns shop's language.
# shop.current_locale
Returns shop's current locale.
<span>{{ shop.current_locale }}</span>
<span>en-US</span>
# shop.possible_languages
Propose changing to shop.available_languages
# shop.currency
Returns shop's currency.
# shop.account
Returns shop's account.
# shop.customer_accounts
Shoperb has three options for managing customer accounts. Customer accounts can be either required
, optional
or disabled
.
Most common use case is to show or hide account links from navigation when customer accounts are disabled. For that we can use a simple boolean check. In the following statement if customer accounts is either required or optional, we show account link.
{% if shop.customer_accounts? %}
<a href="{{ url.account }}">{{ 'account.my_account' | translate }}</a>
{% endif %}
In more complex cases you may want to use the more specific customer account values. While there is very little reason to expose the specific string by using shop.customer_accounts
you do get same results as above by using string comparison.
{% if shop.customer_accounts != "disabled" %}
<a href="{{ url.account }}">{{ 'account.my_account' | translate }}</a>
{% endif %}
# shop.account_types
Shoperb has two customer account types - personal
and business
accounts. You can as well use a value of both
that applies when either account type is enabled.
{% if shop.account_types == "both" %}
<div>Content that applies to both <strong>Personal</strong> and <strong>Business</strong> customer accounts</div>
{% elsif shop.account_types == "personal" %}
<div>Content that applies to both <strong>Personal</strong> customer accounts</div>
{% elsif shop.account_types == "business" %}
<div>Content that applies to both <strong>Business</strong> customer accounts</div>
{% endif %}
# ThemeSection
# themesection.id
# themesection.blocks
# themesection.settings
# themesection.type
# ThemeSectionBlocks
Collection
# themesectionblocks.each
# ThemeSectionImage
Image
# themesectionimage.each
# ThemeSectionSettings
ThemeSettings
# themesectionsettings.each
# ThemeSettings
# themesettings.
# Url::Get
always Returns locale url (e.g. /en/orders
)
# url.root
Returns the url for index
# url.products
Returns the url for products
# url.collections
Returns the url for store collections
# url.cart
Returns the url for cart page
# url.signup
Returns the url for signup page
# url.login
Returns the url for login page
# url.logout
Returns the url for logout page
# url.account
Returns the url for account page
# url.recover
Returns the url for password recover
# url.reset
Returns the url for password reset
# url.orders
Returns the url for orders
# url.addresses
Returns the url for user addresses
# url.new_address
Returns the url for new address creation
# url.search
Returns the url for search page
# url.blog
Returns the url for blog page
# url.brands
Returns url to brands (vendors) page
# url.current_url
Returns the url for the current page
# url.current_path
Returns the path part of the current url (e.g. /en/account
)
# url.canonical_url
Returns canonical url for the current url
# url.canonical_path
Returns canonical relative url for the current url
# url.current_host
Returns the current host (e.g. localhost
) or domain
# url.billing_payment_methods
Returns the url for user payment methods page
# url.new_billing_payment_method
Returns the url for creating a new billing method
# Url::Post (form_actions)
# form_actions.cart_add
Poosible params:
- variant - variant id
- amount - how much you wish to add
- by_subscription - (optional) if you want say that this item will be bought by subscription
- item_original_id - (optional) if customer has bought item by subscription (free) and now wants to pay money for it
- other - (optional) - is a hash of other variant data if you want to add several items in one request. Key is variant id, value is a hash of amount, by_subscription, item_original_id Send params in a format {variant: your_variant_id, amount: your_amount} If customer
# form_actions.cart_checkout
# form_actions.cart_update
# form_actions.signup
# form_actions.new_login
# form_actions.account
# form_actions.password_request
# form_actions.password_change
# form_actions.reviews
# form_actions.variants
# form_actions.address_create
# form_actions.auth_input
# Variant
# variant.id
Returns variant's id.
<span>{{variant.id}}</span>
<span>1</span>
# variant.name
Returns variant's name.
<span>{{variant.name}}</span>
<span>color: green, size: M</span>
# variant.price
Returns variant's price.
<span>{{variant.price}}</span>
<span>11</span>
# variant.discount_price
Returns variant's discount price.
<span>{{variant.discount_price}}</span>
<span>10</span>
# variant.discount?
Returns whether variant has discount.
<span>{{variant.discount?}}</span>
<span>true</span>
# variant.discount_period?
Returns whether variant's discount works during a certain time.
<span>{{variant.discount_period?}}</span>
<span>true</span>
# variant.discount_start
Returns when variant's discount starts to work.
<span>{{variant.discount_start}}</span>
<span>2018-05-10T00:00:00</span>
# variant.discount_end
Returns when variant's discount stops working.
<span>{{variant.discount_end}}</span>
<span>2018-05-10T00:00:00</span>
# variant.current_price
Returns variant's current_price.
<span>{{variant.current_price}}</span>
<span>10</span>
# variant.available?
Returns whether variant is in stock.
<span>{{variant.available?}}</span>
<span>true</span>
# variant.sku
Returns when variant's sku.
<span>{{variant.sku}}</span>
<span>SKU-0001</span>
# variant.stock
Returns variant's stock count.
<span>{{variant.stock}}</span>
<span>25</span>
# variant.weight
Returns variant's weight.
<span>{{variant.weight}}</span>
<span>100</span>
# variant.width
Returns variant's width.
<span>{{variant.width}}</span>
<span>100</span>
# variant.height
Returns variant's height.
<span>{{variant.height}}</span>
<span>100</span>
# variant.depth
Returns variant's depth.
<span>{{variant.depth}}</span>
<span>100</span>
# variant.digital
Returns whether variant is digital.
<span>{{variant.digital}}</span>
<span>false</span>
# variant.url
Returns variant's digital file url.
<a href="{{variant.url}}">DOWNLOAD</a>
<a href="...">DOWNLOAD</a>
# variant.options
Returns variant's attribute's values as a list.
{% for option in variant.options %}
<span>{{ option }}</span>
{% endfor %}
<span>green</span>
<span>M</span>
# variant.image
Returns variant's image.
# variant.images
Returns list of variant's images.
# variant.attributes
Returns list of variant's attributes.
# VariantAttribute
Attribute
# Variants
# variants.order_by_price
Returns list of variants ordered by price.
# variants.order_by_sku
Returns list of variants ordered by sku.
# Vendor
Should be renamed to brands
# vendor.id
Returns vendor's id.
<span>{{vendor.id}}</span>
<span>1</span>
# vendor.name
Returns vendor's name.
<span>{{vendor.name}}</span>
<span>Acme</span>
# Subscription
Return the subscription of the user
# subscription.id
Returns subscription id
# subscription.plan
Returns subscription plan drop
# subscription.state
Returns the status of the subscription
<span>{{subscription.state}}</span>
<span>active</span>
# subscription.auto_collection?
Returns boolean which shows if subscription is automatically charging money each month.
# subscription.active?
Returns boolean which shows if subscription is active right now.
# subscription.in_trial?
Returns boolean which shows if subscription is in trial period right now.
# subscription.qty
Returns how many times the subscription is for
<span>{{subscription.qty}}</span>
<span>3</span>
# subscription.starts_at
Returns when subscriptions has been started.
<span>{{subscription.starts_at}}</span>
<span>2019-07-11T09:34:01.015Z</span>
Can also be configured to use specific date format
<span>{{subscription.starts_at | date: '%d %b %Y' }}</span>
<span>11 Jul 2019</span>
# subscription.ends_at
Returns when subscription has been ended.
# subscription.trial_starts_at
Returns when subscription trial has been started.
# subscription.trial_ends_at
Returns when subscription trial has been ended.
# subscription.deleted?
Returns boolean which shows if subscription is deleted.
# subscription.delete_url
Returns url to delete subscription.
# SubscriptionPlan
# subscription_plan.id
Returns subscription plan id
# subscription_plan.name
Returns subscription plan name.
# subscription_plan.invoice_name
Returns subscription plan name for invoice.
# subscription_plan.description
Returns subscription plan description.
# subscription_plan.handle
Returns subscription plan handle.
# subscription_plan.interval
Returns subscription plan interval which can be year, month or day. Usually it is month.
<span>{{subscription_plan.interval}}</span>
<span>month</span>
# subscription_plan.interval_count
Returns after how many intervals next billing period will be called.
# subscription_plan.price
Returns how much subscription costs.
# subscription_plan.setup_cost
Returns how much subscription creation costs.
# subscription_plan.trial_interval
Returns subscription plan trial interval which can be year, month or day.
# subscription_plan.trial_interval_count
Returns after how many trial intervals trial period lasts.
# subscription_plan.create_subscription_url
Returns url to create new subscription.
# PaymentCard
# paymentcard.id
Returns payment card id.
# paymentcard.url
Returns url to edit/show payment card.
# paymentcard.last4
Returns the last 4 digits of the card
<span>{{ paymentcard.last4 }}</span>
Output:
<span>4590</span>
# paymentcard.delete_url
Returns url to delete payment card.
# paymentcard.service
Returns payment card service name. Right now the only value is stripe
# paymentcard.card
Returns hash data with card information. Example:
{
"name"=>nil,
"brand"=>"Visa",
"last4"=>"4242",
"country"=>"US",
"exp_year"=>2022,
"exp_month"=>11,
"type"=>"credit"
}