Blue Sphere
Blue Sphere
  • 13
  • 57 860
Add Recommended Products to Cart Drawer No App - Shopify Upsells Complementary and Related Products
This video shows a free way to add a recommended products section to the cart drawer of a Shopify store, without the use of an app.
This is a way to add upsells to your cart drawer, which can increase your Store's average order value.
You can add both subsets of Shopify's recommended products: the related products and the complementary products.
Enjoy.
Fiverr gig: www.fiverr.com/s/R7zV9zN
Email: projectcoder10@gmail.com
Recommended Products Section Code:
bit.ly/3ZklIE9
Schema Settings Object Including Schema Block:
bit.ly/3MZs04U
Schema Settings Object Without Schema Block:
bit.ly/3ZnK8g3
Medium Article:
medium.com/@projectcoder10/how-to-add-recommended-products-to-the-cart-drawer-in-shopify-without-an-app-cea5d963c63f
Timecodes
0:00 - Intro
0:22 - Recommended Products Section Demo
01:36 - Shopify Recommended Products Overview
06:03 - Enable/Disable Section
09:06 - Pro Version Overview
12:23 - Create Recommended Products Section
20:39 - Outro
Переглядів: 33

Відео

Prevent Non-Latin Alphabet Characters in Shipping Address at Checkout - Shopify
Переглядів 672 місяці тому
This video shows a way to prevent non-Latin alphabet and non-allowed characters from being entered in the shipping address fields in Shopify. LatinLock App: apps.shopify.com/latinlock Timecodes 0:00 - Intro 0:36 - App Intro 1:22 - App Enable Instructions 2:33 - App Walk-Through 4:21 - App Customization 6:32 - Outro
Add a Shopify Brands Logo Slider - No App
Переглядів 3272 місяці тому
This video shows how to add a Shopify brands logo slider. Access the slider code for the pro version: johne10.gumroad.com/l/shopify-brands-logo-slider-pro Access the slider code for the basic version: johne10.gumroad.com/l/shopify-bands-logo-slider-basic Email: projectcoder10@gmail.com Timecodes 0:00 - Intro 0:34 - Pro Version 4:53 - Basic Version 5:05 - Create Slider Section 6:03 - Add Provide...
Reduce JavaScript Execution Time and Increase Page Speed scrore - Shopify Speed Optimization
Переглядів 5 тис.7 місяців тому
This video shows how to increase your Shopify site’s page speed score by deferring the loading of apps until user interaction. Fiverr gig: www.fiverr.com/s/6oRdeB Donations: www.paypal.com/donate/?hosted_button_id=8V323NGPTUX4A Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930 Email: bluesphere40@gmail.com Timecodes 0:00 - Intro 0:51 - Ways to reduce JS...
Improve the Largest Contentful Paint (LCP) Image Metric - Shopify Speed Optimization
Переглядів 2,2 тис.9 місяців тому
This video shows how to improve the LCP metric for a Shopify store. Fiverr gig: www.fiverr.com/s/6oRdeB Donations: www.paypal.com/donate/?hosted_button_id=8V323NGPTUX4A Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930 Email: bluesphere40@gmail.com Timecodes 0:00 - Intro 0:53 - Reminder to Not Lazy-Load LCP Image 1:30 - Check DevTools Performance Tab 3:...
Fix the Largest Contentful Paint (LCP) Image Lazy Loading Issue - Shopify Speed Optimization
Переглядів 12 тис.Рік тому
This video shows how to remove lazy loading for images above the fold in a Shopify store. Fiverr gig: www.fiverr.com/s/6oRdeB Donations: www.paypal.com/donate/?hosted_button_id=8V323NGPTUX4A Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930 Email: bluesphere40@gmail.com Timecodes 0:00 - Intro 0:44 - Why Optimize Load Speed 1:38 - Initial Lighthouse Test...
How to Scrape (Almost) Any Website with Next.js and Puppeteer
Переглядів 4,8 тис.Рік тому
If your code is getting blocked from scraping a website, using an automated web scraper like Puppeteer may be your best option to circumvent the issue. Donations: www.paypal.com/donate/?hosted_button_id=8V323NGPTUX4A Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930 Email: bluesphere40@gmail.com Timecodes 0:00 - Why Use a Browser 1:06 - Setting Up the P...
Unlimited B2B Lead Generation with Emails | Google Maps Data Scraping
Переглядів 302Рік тому
The best to way to scrape unlimited B2B leads from Google Maps without the use of (sometimes unreliable) software. Follow me on Twitter: @JohnE104 UA-cam Channel: www.UA-cam.com/@bluesphere7930
JavaScript Timeout Intervals Inside a Loop
Переглядів 269Рік тому
How to implement a timeout or iteration intervals inside of a loop in JavaScript to keep iterations inside a loop from executing all at once. Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930
JavaScript functions fundamentals in 9 minutes
Переглядів 28Рік тому
In this video, you'll get the fundamentals of JavaScript functions, which are an essential block in JavaScript programming. They allow us to organize our code into reusable blocks and make our code more modular. Follow me on Twitter: @JohnE104
How to Fix CORS Policy Errors When Making Fetch API Requests from a Next.JS Application
Переглядів 29 тис.Рік тому
To avoid CORS issues while fetching API requests to a server that is outside your control, such as Shopify for instance, run the requests via Next.JS API Routes, the backend of a Next.JS app. Donations: www.paypal.com/donate/?hosted_button_id=8V323NGPTUX4A Follow me on Twitter: @JohnE104 UA-cam Channel: www.youtube.com/@bluesphere7930 Email: bluesphere40@gmail.com
PHP - Download FTP File
Переглядів 3,4 тис.2 роки тому
How to programmatically download a CSV file from an FTP Server using PHP. UA-cam Channel: www.youtube.com/@bluesphere7930 Twitter: @JohnE104

КОМЕНТАРІ

  • @bntheyoutube
    @bntheyoutube 2 дні тому

    Thank you!

  • @arturo5050
    @arturo5050 8 днів тому

    This do not affect when loading and then click like the shopping bag or hamburger menu and that can be opend inmediatly

  • @ounassabdelaziz7349
    @ounassabdelaziz7349 25 днів тому

    Thank you for sharing! Is this code working on the Sense theme too? I added it, but I couldn't customize it, and the width is not set to auto when applied.

    • @bluesphere7930
      @bluesphere7930 22 дні тому

      Hi, the demo was done on the Dawn theme. It may need a little tweaking to work on others, but it should work.

    • @astro-w1d
      @astro-w1d 2 дні тому

      @@bluesphere7930 me also i cant customize it even i work on dawn theme

  • @fatihsarbyk5273
    @fatihsarbyk5273 Місяць тому

    dudeeeeee, are U magician???

  • @RaiTechGaming
    @RaiTechGaming Місяць тому

    thank you, it helped, you should make more content and keep it short to the point. Regards Rai

  • @alrazy12
    @alrazy12 Місяць тому

    hi I think of building a similar scarping project a website that scraps the web and extracts info about new and old diseased people in short a memorial website in Arabic for the arab world like a Wikipedia for dead people info can you mentor me?

  • @魏东旭-w3i
    @魏东旭-w3i Місяць тому

    really help me

  • @valoarce98
    @valoarce98 Місяць тому

    What size does the image have to be? Can you help me with that?

    • @bluesphere7930
      @bluesphere7930 Місяць тому

      The height for all the images in the demo is 150px. The width is set to auto. The height for the slider, however, is set to 100px, so what's showing in the demo is a height of 100px. You can try different heights and see what works best for you. Try to make the height of the slider equal to or less than the height of the images, otherwise, the image quality will suffer. I find it better to keep the height the same for all the images, but that's not a requirement, you're free to experiment with that as well.

  • @MahmudMuhammad-mk2bb
    @MahmudMuhammad-mk2bb Місяць тому

    The video is very helpful and am also looking forward more of your videos.

  • @MahmudMuhammad-mk2bb
    @MahmudMuhammad-mk2bb Місяць тому

    Thank you very much for the explanation but my question is: can't we solve other java script execution time for the Google tag and others?

  • @accessaccount4719
    @accessaccount4719 2 місяці тому

    Thanks so much....

  • @zuhairshaikh2623
    @zuhairshaikh2623 2 місяці тому

    where is the code??

  • @JaffarAli-k2e
    @JaffarAli-k2e 2 місяці тому

    is this technique stops the working of app or it just remove the app url during page load? i don't want to remove the app. if this tecnique stops the app working. then it will not help to me

  • @carlocrighton
    @carlocrighton 2 місяці тому

    Great tutorial, hat tip.

  • @messumsikandar123
    @messumsikandar123 2 місяці тому

    I added the same but not working even it become more slow

  • @tkfgameryt5353
    @tkfgameryt5353 2 місяці тому

    How did you open the search bar 6:32

    • @d.2677
      @d.2677 2 місяці тому

      If you use a Mac computer, use Command + F to open the search box. If you use a Windows computer, use CTRL + F to open the search box.

  • @arnoldjuma5136
    @arnoldjuma5136 2 місяці тому

    Heyy John, the tutorial is really helpful, you should do more like these

  • @alantascione754
    @alantascione754 3 місяці тому

    Thank you! It worked perfectly!

  • @ShopifyExpert-h2c
    @ShopifyExpert-h2c 3 місяці тому

    Thanks, good stuff shared.

  • @WaleedOsman
    @WaleedOsman 3 місяці тому

    a real gem - thanks a lot , keep them coming please

  • @ecom916
    @ecom916 4 місяці тому

    mate ur a legend thank u🙏

  • @farukweb
    @farukweb 4 місяці тому

    best tutorial for speed.

  • @AFC1886_
    @AFC1886_ 4 місяці тому

    Hi John, unfortunately I can only find the div tags in an index JSON file so it won't work :( I looked further and the tags are in dynamic-content that has all the sections on the JSON file, not sure how to grab them from there.

  • @lorraineb2109
    @lorraineb2109 4 місяці тому

    Thank you. It worked a treat! Brilliant video!

  • @JoaumPDR
    @JoaumPDR 5 місяців тому

    hey, i tried to do this on the product page but its not working, i dont know if its a theme specific problem but when i delete "lazy" the img disapears

  • @Wellinkton90
    @Wellinkton90 5 місяців тому

    legend!! thx!

  • @DANO_d
    @DANO_d 5 місяців тому

    Why you have't removed the app: "Judgeme" ?

  • @LinceExpress.Oficial
    @LinceExpress.Oficial 5 місяців тому

    It helped me a lot, thanks!

  • @codingwithlalarukh5488
    @codingwithlalarukh5488 5 місяців тому

    What a tutorial!!!! This tutorial saved my life. Thanks a lot PRO, you're genius :)

    • @bluesphere7930
      @bluesphere7930 5 місяців тому

      Thank you for your kind words. Glad you found it helpful. Cheers.

  • @CosignThetaMarketing
    @CosignThetaMarketing 5 місяців тому

    This video is really helpfull

  • @DT-ih9nz
    @DT-ih9nz 5 місяців тому

    You earned my subscribe .

  • @divakarnaresh9697
    @divakarnaresh9697 5 місяців тому

    I am having an issue at 9:08 i have done the same but when i click the button it show me console log 2 times like if I was clicking double. please tell me how to fix this Thanks in advance 🙂

  • @healthtips246
    @healthtips246 5 місяців тому

    I am getting lots of console amd other errors

  • @MuhammadShahid-sx9td
    @MuhammadShahid-sx9td 5 місяців тому

    Its very helpful.Please make a full playlist of speed optimization.

  • @coordinxtez2918
    @coordinxtez2918 6 місяців тому

    Can you please make a tutorial on how to fix cls

  • @EverHappyPaws
    @EverHappyPaws 6 місяців тому

    I need my store speed up. Help me please?🙏🏻

    • @farukweb
      @farukweb 4 місяці тому

      contact me. can you show me your store please?

  • @juliushernandez9855
    @juliushernandez9855 6 місяців тому

    Then how can i deploy this in vercel netlify or render?

  • @kavinath
    @kavinath 6 місяців тому

    Thank you. It was very helpful.

  • @semenderoranak2603
    @semenderoranak2603 6 місяців тому

    I use app router and face no CORS issue until I call the fetching function inside useEffect or componentDidMount. How can I fetch API request inside useEffect or componentDidMount and still make it serverside

    • @Kakashi.b2k
      @Kakashi.b2k 5 місяців тому

      I am also facing the same issue, Of you got the solution them please reply me

  • @ezzedineabdelhady
    @ezzedineabdelhady 6 місяців тому

    You should make more tutorials. You're just perfect in terms of practical solution and calm explanation. I don't know anything about codes but you made it look super straight forward. Thanks.

    • @bluesphere7930
      @bluesphere7930 6 місяців тому

      Thank you, I appreciate the kind words.

  • @niyascn629
    @niyascn629 6 місяців тому

    const handler = async (req, res) => { console.log("**************************************") console.log(req.body.param) console.log("**************************************") //const params = {"fields":{"node--blog":"id,title,field_image,field_topic,name,body","include":"field_image,uid,field_topic,name"},"filter":{}} const params = req.body.param const method = 'POST'; const options = { method: method, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ deserialize: false, params }) } const url ="unicefd10.assyst-uc.com/jsonapi/index/blogs_and_articles"; try { const response = await fetch(url, options); const data = await response.json(); return res.end({'success': JSON.stringify(data)}); } catch (err) { return res.end({'error': JSON.stringify(err.message)}); } } export default handler; I am getting followinhg error {"jsonapi":{"version":"1.0","meta":{"links":{"self":{"href":"jsonapi.org/format/1.0/"}}}},"errors":[{"title":"Method Not Allowed","status":"405","detail":"No route found for \"POST unicefd10.assyst-uc.com/jsonapi/index/blogs_and_articles\": Method Not Allowed (Allow: GET, HEAD)","links":{"via":{"href":"unicefd10.assyst-uc.com/jsonapi/index/blogs_and_articles"},"info":{"href":"www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6"}}}]} ⨯ TypeError [ERR_INVALID_ARG_TYPE]: The "string" argument must be of type string or an instance of Buffer or ArrayBuffer. Received an instance of Object at Function.byteLength (node:buffer:774:11) at K.t.end (/var/www/html/next-13project/unicefd10/node_modules/next/dist/compiled/next-server/pages-api.runtime.dev.js:20:13136) at handler (webpack-internal:///(api)/./pages/api/handleSearch.js:35:20) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { code: 'ERR_INVALID_ARG_TYPE', page: '/api/handleSearch' }

  • @iearthgirl
    @iearthgirl 6 місяців тому

    I have been trying to figure this out with the Expanse theme we are using. It’s a slide show for our hero image. Even though we don’t use it as such. I have found the Div for our hero image, but there isn’t any lazy loading in the coding for it. Any thoughts?

    • @bluesphere7930
      @bluesphere7930 6 місяців тому

      It's better that there isn't any lazy loading for the hero image. If there is no loading attribute at all in the hero image element, then that means that the browser will prioritize loading the image as soon as possible, which is what you want. However, it's best to explicitly communicate your intention to the browser by adding the loading attribute and setting it equal to "eager", as shown in the video.

  • @the-consult
    @the-consult 7 місяців тому

    Really helpful for me to reduce JavaScript execution time. You got a subscriber and eagerly waiting for new videos in this series.

    • @bluesphere7930
      @bluesphere7930 7 місяців тому

      Glad you found it helpful and thank you for the nice words.

  • @ManishKumarchoudhary
    @ManishKumarchoudhary 7 місяців тому

    Deploy in any live servers because I'm getting error "Browser can't lunch"

  • @EminErden
    @EminErden 7 місяців тому

    Your content is very helpful. Keep shooting these videos.

  • @sai3321
    @sai3321 7 місяців тому

    its working fine in desktop, but in mobile its not working as expected. is there any solution for this?

  • @MrJulian1154
    @MrJulian1154 7 місяців тому

    Hello John, sadly I couldn't get it to work despite your great tutorial. I guess I identified the right picture and found it in the code of my shopify liquid. Sadly my shopify code looks totally different. So the code I have to work with is the following: <div class="hero-image hero-image-{{ block.id }} media bgset lazyload" {%- render 'lazysizes', img: block.settings.image, img_mobile: block.settings.image_mobile, img_type: 'background' -%}> </div> {%- elsif block.settings.video != blank -%} {%- assign video_extension = block.settings.video | split: '.' | last -%} <video class="hero-video hero-video-{{ block.id }} media lazyload" src="{{ block.settings.video }}" loop muted no-controls autoplay playsinline preload="true"> <source type="video/{{ video_extension }}" src="{{ block.settings.video }}"> </video> {%- else -%} {{ 'lifestyle-1' | placeholder_svg_tag: 'media placeholder-svg lazyload' }} {%- endif -%} I am pretty sure I have to change the first 'lazyload' because when I do so and change it to eagerload (also tried just eager) my shop banner just disappears. Out of curiosity I tried to change the other 'lazyload' which didn't change a thing. So I have no idea what to do. Is the theme maybe complicated and I have to change something else? Help would be appreciated a lot.

    • @bluesphere7930
      @bluesphere7930 7 місяців тому

      Hi, what's the url for your site, I'll take a quick look?

    • @PedroMendes-xl8hf
      @PedroMendes-xl8hf 7 місяців тому

      @@bluesphere7930 Hello John, i'm having the same problem, when i turn the "lazyload" to eager my banner just disappears, what can i do? the code is below, i appreciate if you can help me <div class="product-gallery__carousel-item {% if media.id == selected_media.id %}is-selected{% endif %} {% if is_media_filtered %}is-filtered{% endif %}" tabindex="-1" data-media-id="{{ media.id }}" data-media-type="{{ media.media_type | escape }}" {% if media.media_type == 'external_video' %}data-media-host="{{ media.host | escape }}" data-video-id="{{ media.external_id | escape }}"{% endif %} {% if is_media_group %}data-group-name="{{ media_group_parts.first | strip | downcase | escape }}" data-group-value="{{ media_group_parts.last | strip | downcase | escape }}"{% endif %}> {%- case media.media_type -%} {%- when 'image' -%} <div class="product-gallery__size-limiter" style="max-width: {{ media.width }}px"> {%- capture supported_sizes -%}{%- render 'image-size', sizes: '400,500,600,700,800,900,1000,1100,1200', image: media -%}{%- endcapture -%} {%- assign image_url = media | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} <div class="aspect-ratio" style="padding-bottom: {{ 100.0 | divided_by: media.aspect_ratio }}%"> <img class="product-gallery__image lazyload image--fade-in" data-src="{{ image_url }}" data-widths="[{{ supported_sizes }}]" data-sizes="auto" data-zoom="{{ media | img_url: '1600x' }}" alt="{{ media_alt | escape }}">

  • @0329zach
    @0329zach 7 місяців тому

    That was excellent, thanks. Any chance you would do another video where it converts your array into a JSON file and then an excel file that shows up underneath the Run Scaper button? lol Or maybe I can find another youtube video out there somewhere for those steps.

  • @Sunraycart
    @Sunraycart 7 місяців тому

    my extention not working

  • @roger8524
    @roger8524 8 місяців тому

    You are using powershell for this script. Can you please make a video showing us how to set up powershell to run these scripts