Skip to content

Instantly share code, notes, and snippets.

@nikikozak
nikikozak / events.txt
Last active July 31, 2024 09:37
Custom pixels events – Google Tag Manager
//subscribe to events
//Product viewed
analytics.subscribe("product_viewed", (event) => {
window.dataLayer.push({
event: "product_viewed",
timestamp: event.timestamp,
id: event.id,
client_id: event.clientId,
url: event.context.document.location.href,
@nikikozak
nikikozak / global.js
Created May 19, 2023 12:22
Displaying variant metafield on product pages (JavaScript).
const variantAddInfo = document.getElementById(`variantAdditionalInfo`);
if (variantMetafieldInfo[this.currentVariant.id] !== undefined) {
variantAddInfo.textContent = variantMetafieldInfo[this.currentVariant.id];
}
@nikikozak
nikikozak / main-product.liquid
Created May 19, 2023 12:19
Displaying variant metafield on product pages (declaring a variable, storing key-value pairs).
<script>
var variantMetafieldInfo = {};
{% for variant in product.variants %}
variantMetafieldInfo[{{- variant.id -}}] = "{{ variant.metafields.custom.variant_additional_info }}";
{% endfor %}
</script>
@nikikozak
nikikozak / main-product.liquid
Last active May 21, 2023 11:36
Displaying variant metafield on product pages (rendering a newly created block on the product pages).
{%- when 'variant_additional_info'-%}
{% for variant in product.variants %}
{% if variant == product.selected_or_first_available_variant %}
<div id="variantAdditionalInfo">
{{ variant.metafields.custom.variant_additional_info }}
</div>
{% endif %}
{% endfor %}
@nikikozak
nikikozak / main-product.liquid (schema)
Last active May 19, 2023 12:13
Displaying variant metafield on product pages.
{
"type": "variant_additional_info",
"name": "Variant additional info",
"limit": 1
},
@nikikozak
nikikozak / influencers.css
Created February 24, 2023 13:23
CSS file – influencers section
.influencers_container_grid {
display: grid;
grid-template-columns: repeat(1, minmax(0, 1fr));
gap: 3rem;
margin-top: 60px;
}
.influencers_container_grid a {
text-decoration: none;
@nikikozak
nikikozak / influencers.liquid
Last active January 12, 2024 14:51
Metaobjects – displaying a list of entries on the product pages. A code for creating a new section
{{ 'influencers.css' | asset_url | stylesheet_tag }}
{%- style -%}
.section-{{ section.id }}-padding {
padding-top: calc({{ section.settings.padding_top }}px * 0.75);
padding-bottom: calc({{ section.settings.padding_bottom }}px * 0.75);
}
@media screen and (min-width: 750px) {
.section-{{ section.id }}-padding {
{%- when 'description' -%}
{%- if product.description != blank -%}
<div class="product__accordion accordion quick-add-hidden" {{ block.shopify_attributes }}>
<details id="Details-{{ block.id }}-{{ section.id }}">
<summary>
<div class="summary__title">
{% render 'icon-accordion', icon: block.settings.icon %}
<h2 class="h4 accordion__title">
{{ block.settings.heading | default: block.settings.page.title }}
</h2>
@nikikozak
nikikozak / main-product.liquid (schema)
Last active January 13, 2023 12:45
Editing the product description block so that it displays as a collapsible tab.
{
"type": "description",
"name": "t:sections.main-product.blocks.description.name",
"limit": 1,
"settings": [
{
"type": "text",
"id": "heading",
"default": "Collapsible row",
"info": "t:sections.main-product.blocks.collapsible_tab.settings.heading.info",
@nikikozak
nikikozak / size-guide.js
Created January 7, 2023 13:37
JavaScript code for showing and closing the size chart image
const sizeGuideButton = document.getElementById("sizeguide_button")
const sizeGuideImage = document.getElementById("sizeguide_image")
const sizeGuidePopup = document.getElementById("sizeguide_popup")
// Get the image URL from the block settings
sizeGuideImage.src = sizeGuideButton.dataset.imageUrl
// Install event listeners
sizeGuideButton.addEventListener("click", showSizeGuide)
sizeGuidePopup.addEventListener("click", hideSizeGuide)