<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering on OKCKnet</title><link>/categories/engineering/</link><description>Recent content in Engineering on OKCKnet</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 12 Dec 2024 02:45:00 +0300</lastBuildDate><atom:link href="/categories/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Shopify: How to find orders containing bundles in Shopify Flow?</title><link>/blog/work/shopify-how-to-find-containing-bundles-in-shopify-flow/</link><pubDate>Thu, 12 Dec 2024 02:45:00 +0300</pubDate><guid>/blog/work/shopify-how-to-find-containing-bundles-in-shopify-flow/</guid><description>&lt;p&gt;If you want to find orders containing bundles in Shopify Flow and send an internal email, you can use the following steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to Shopify Flow page on your store.&lt;/li&gt;
&lt;li&gt;Create a new flow.&lt;/li&gt;
&lt;li&gt;Select Trigger: Shopify &amp;gt; Start when: &lt;code&gt;Order Created&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then + Add an action: Flow &amp;gt; For each &lt;code&gt;item in order.lineItems&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then + Add a condition: Check if &lt;code&gt;Line item group title not empty and exists&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then + Add an action: &lt;code&gt;Send an internal email&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After these steps, Shopify Flow will send an email for each order that contains a bundle.&lt;br&gt;
You can customize the email content and recipients as you wish.&lt;/p&gt;</description></item><item><title>Shopify: Liquid Snippet for Loading CSS Asynchronously</title><link>/blog/work/shopify-liquid-snippet-for-loading-css-asynchronously/</link><pubDate>Wed, 18 Oct 2023 22:30:00 +0300</pubDate><guid>/blog/work/shopify-liquid-snippet-for-loading-css-asynchronously/</guid><description>&lt;p&gt;Shopify recently added section.index to the Liquid API. This is a great addition that allows you to do things like selectively load CSS based on the section index. This is useful for things like loading CSS asynchronously, which can help improve your page speed scores.&lt;/p&gt;
&lt;p&gt;If you want to load CSS asynchronously on Shopify, you can use this Liquid snippet:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;css.liquid&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-liquid"&gt; {%- liquid
 assign css = css | default: false
 assign section_index = section_index | default: 3
 -%}

 {%- if section_index &amp;gt; 2 -%}
 &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;{{- css | asset_url-}}&amp;quot; media=&amp;quot;print&amp;quot; onload=&amp;quot;this.media='all'&amp;quot;&amp;gt;
 &amp;lt;noscript&amp;gt;
 {{- css | asset_url | stylesheet_tag -}}
 &amp;lt;/noscript&amp;gt;
 {%- else -%}
 {{- css | asset_url | stylesheet_tag -}}
 {%- endif -%}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, you can render this snippet in your theme with this code:&lt;/p&gt;</description></item><item><title>Hugo: Dynamic Image Rendering with URL Replacement</title><link>/blog/work/hugo-dynamic-image-rendering-with-url-replacement/</link><pubDate>Mon, 16 Oct 2023 07:40:00 +0300</pubDate><guid>/blog/work/hugo-dynamic-image-rendering-with-url-replacement/</guid><description>&lt;p&gt;If you want to use Hugo to dynamically render images with URL replacement and lazy loading, here is the code.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;{{ $card__show_image := .Params.show_image }}
{{ $cardImageURL := &amp;quot;&amp;quot; }}
{{ if and (eq $card__show_image &amp;quot;true&amp;quot;) (.Params.images) }}
 {{ with .Params.images }}
 {{ range $image := . | first 1 }}
 {{ $cardImageURL = replaceRE &amp;quot;(=w|s)(2400|1600)&amp;quot; &amp;quot;$1360&amp;quot; $image }}
 {{ end }}
 {{ end }}
 &amp;lt;img src=&amp;quot;{{ $cardImageURL | absURL }}&amp;quot; alt=&amp;quot;{{ .LinkTitle }}&amp;quot; decoding=&amp;quot;async&amp;quot; loading=&amp;quot;lazy&amp;quot;&amp;gt;
{{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;rsquo;m using this code on my blog to render images with lazy loading and responsive image sizes on different part of my blog, like cards, cover images etc.&lt;/p&gt;</description></item><item><title>Shopify: How to Hide a Product, Page or Post from Search?</title><link>/blog/work/shopify-how-to-hide-a-product-page-or-post-from-search/</link><pubDate>Thu, 12 Oct 2023 02:45:00 +0300</pubDate><guid>/blog/work/shopify-how-to-hide-a-product-page-or-post-from-search/</guid><description>&lt;p&gt;If you want to hide a product, page or post (item) from search or seo, here are steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to Custom Data page on store&lt;/li&gt;
&lt;li&gt;Add a new &lt;strong&gt;definition&lt;/strong&gt; with name SEO Visibility&lt;/li&gt;
&lt;li&gt;Change &lt;strong&gt;Namespace and key&lt;/strong&gt; as ‘seo.hidden’&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;Integer&lt;/strong&gt; type with one value and validations (min: 0, max: 1).&lt;/li&gt;
&lt;li&gt;Activate Storefront access.&lt;/li&gt;
&lt;li&gt;Then go to item and set SEO Visibility metafield value as 1.&lt;/li&gt;
&lt;li&gt;Done ✅&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After these steps, Shopify will add this code to setted product / page / post etc.&lt;/p&gt;</description></item><item><title>Most Common User Journey Pain Points and Resolutions</title><link>/blog/work/most-common-user-journey-pain-points-and-resolutions/</link><pubDate>Wed, 11 Oct 2023 20:00:00 +0300</pubDate><guid>/blog/work/most-common-user-journey-pain-points-and-resolutions/</guid><description>&lt;p&gt;User journey represents the route a website visitor follows, beginning from their initial arrival to the ultimate conversion. Ideally, this path should be seamless, intuitive, and satisfying, though this isn&amp;rsquo;t always the case. Within this article, we will explore common issues experienced along the user journey and discuss how these challenges can be effectively addressed through the application of web design best practices.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-1-unclear-value-proposition"&gt;Issue 1: Unclear Value Proposition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-2-complex-navigation"&gt;Issue 2: Complex Navigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-3-slow-page-load-times"&gt;Issue 3: Slow Page Load Times&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-4-poor-readability"&gt;Issue 4: Poor Readability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-5-lack-of-social-proof"&gt;Issue 5: Lack of Social Proof&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/work/most-common-user-journey-pain-points-and-resolutions/#issue-6-no-clear-call-to-action"&gt;Issue 6: No Clear Call to Action&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="issue-1-unclear-value-proposition"&gt;Issue 1: Unclear Value Proposition&lt;/h2&gt;
&lt;p&gt;One of the initial elements that captures a user&amp;rsquo;s attention on your website is your value proposition: it must communicate what you provide, how you address their needs, and why you stand out among competitors. When your value proposition is unclear, vague, or hidden, it puts at risk both the user&amp;rsquo;s engagement and trust. To alleviate this issue, your task is to craft a clear and compelling value proposition that answers the user&amp;rsquo;s fundamental query: &amp;ldquo;What&amp;rsquo;s in it for me?&amp;rdquo; Furthermore, you should prominently display it on your homepage, above the initial screen view, and reinforce it with visual aids like images, icons, or videos.&lt;/p&gt;</description></item></channel></rss>