Skip to main content

Featured Post

How to create customizable products in Shopify for Free (No coding!)

Creating customizable products in your Shopify store not only increase your customer satisfaction, it also increases your conversion rate.  Here is a method to add custom options for your Shopify product and convert it into personalized product - Go to Shopify store page and search for "Advanced Product Customizer" app or you can directly the the Shopify app page by clicking on this link Advanced Product Customizer . Install  Advanced Product Customizer  app for free in your Shopify store  From the application dashboard, enable to app embed block to complete the installation process Click "Product Custom Options"  From the Shopify products list, select the product on which you want to add custom options. Advanced Product Customizer  offers Image Swatch, Color Swatch, Text box, File Upload, Radio, Checkbox, Date Picker and more. Here is the a demo video for adding custom option for a Shopify product -

How to display images of selected product variant in your Shopify store using variant metafields?

In this video we will give you a demo of how to use product variant metafields to show images of selected product variant. For demo purpose, we are using Dawn theme 12.0.0. This is a SEO friendly way to hide other images of product & show only images of selected product variants. 


Shopify global.js code


 filterVariantImages() {
     if (this.currentVariant.featured_image) {
         var featured_url = this.currentVariant.featured_image.src;
         const segments = featured_url.split('/');
         const fileName = segments[segments.length - 1];
         const fileNameWithoutQueryParameters = fileName.split('?')[0];

         //document.querySelectorAll('[data-img-names]').forEach(img => img.style.display = 'none');

         var imageElements = document.querySelectorAll('[data-img-names]')
         for (const imageElement of imageElements) {
             const imgNames = imageElement.getAttribute('data-img-names');
             if (imgNames.toLowerCase().includes(fileNameWithoutQueryParameters.toLowerCase())) {
                 imageElement.style.display = 'block';
             } else {
                 imageElement.style.display = 'none';
             }
         }
     }
 }
 
 

Shopify page liquid code

  
  % if product.selected_or_first_available_variant.metafields.custom.name_of_images != null  %}
            {% assign featuredFilename = product.selected_or_first_available_variant.featured_media | downcase | split: '/' | last %}
          {% assign filename = media | downcase | split: '/' | last %}
          {% assign imageList = "" %}
          {% for variant in product.variants %}
            {% if variant.metafields.custom.name_of_images != null %}
              {% for imageItem in variant.metafields.custom.name_of_images.value %}
                {% assign imageItemName = imageItem | downcase %}
                {% if imageItemName == filename %}    
                  {% for imageItem in variant.metafields.custom.name_of_images.value %}
                      {% assign imageList = imageList | append: imageItem | downcase | append: ", " %}                   
                    {% endfor %}                   
                  {% endif %}                
                {% endfor %}                                    
              {% endif %}
            {% endfor %}   
                       
          {% else %}
          
  • {%- liquid assign media_position = media_position | default: 0 | plus: 1 assign lazy_load = false if media_position > 1 assign lazy_load = true endif -%} {% render 'product-thumbnail', media: media, media_count: media_count, position: media_position, desktop_layout: section.settings.gallery_layout, mobile_layout: section.settings.mobile_thumbnails, loop: section.settings.enable_video_looping, modal_id: section.id, xr_button: true, media_width: media_width, media_fit: section.settings.media_fit, constrain_to_viewport: section.settings.constrain_to_viewport, lazy_load: lazy_load %}
  • {% endif %}

    Comments

    Popular posts from this blog

    Display Tooltip for Combo Box item C#.NET Winforms

    In windows form combo box control sometimes while adidng items dynamically we have items whose width is greater than width of combox box control. In this case for making UI more user friendly we can show tooltip over such item. Here is the sample C# code to display such tooltip:  Add a Tooltip control on the form.  Add following code : this . combo_box1 . DropDownStyle = System . Windows . Forms . ComboBoxStyle . DropDownList; this . combo_box1 . DrawMode = DrawMode . OwnerDrawFixed; this . combo_box1 . DrawItem += new DrawItemEventHandler(combo_box1_DrawItem); this . combo_box1 . DropDownClosed += new EventHandler(combo_box1_DropDownClosed); this . combo_box1 . MouseLeave += new EventHandler(combo_box1_Leave); void combo_box1_DrawItem( object sender, DrawItemEventArgs e) { if (e . Index < 0 ) { return ; } string text = combo_box1 . GetItemText(combo_box1 . Items[...

    Continue executing code after calling ShowDialog() using C#

    In  C# windows form application using ShowDialog() a user can show a form as modal dialog. Here we cannot access the rest application or continue execution of the code until the modal dialog is closed. Sometimes we need to show modal dialog to user and we need to perform some background operations with parent form control without closing the dialog box. For example - we are doing some calculation and on the basis of these calculation we are moving the progress bar control on dialog box. Here is the c# code by which user can continue executing code after showing modal dialog using ShowDialog() - ReaderWriterLockSlim ScanLock = new ReaderWriterLockSlim(); private void Form1_Load ( object sender, EventArgs e) { ScanLock.EnterWriteLock(); UIThread(()=> { WindowsFormsSynchronizationContext.Current.Post(_ => { Form2 frm = new Form2(); frm.ShowDialo...

    Capture or Detect mouse click on or outside Windows Form using C#.NET

    Sometimes in case of Windows form application where we have multiple windows opened and we need to find on which window user has clicked. One method to find this is to capture the mouse click message.  Here is the sample code to close form if mouse click happen outside the form.    public   partial   class   frmTest  :   Form     {           class   Window CaptureChanged   :   NativeWindow         {               public   CaptureChanged   OnCaptureChanged ;               protected   override   void   WndProc ( ref   Message   m )             {             ...