Product Page Customization

Hi,

I am looking for a solution to my particular problem. I have a one-product store. The product that I am selling is a bundle that is made up of 6 items, two of which are customizable. What I want to do is to show the live-preview image of each individual customizable image. I wonder if there is someone who is facing the same issue currently or faced it before. I would be open to using any third-party apps or custom coding. Thank you in advance for your help. Note, I don’t have the store set up yet. I am still working on it.

Hi @hassanzy1996

Yes, this is definitely possible with custom development.

The most flexible approach is to create a custom product configurator where customers can customize each item in the bundle and see a live preview update in real time. For image uploads, you can use JavaScript (Canvas or SVG) to render the uploaded image onto the preview as the customer makes changes. Options like color, shape, text, and date can also update instantly.

If you prefer an app, solutions like Easify Product Options, Zepto Product Personalizer, Kickflip, or Customily offer live previews and personalization features. However, if your bundle has unique requirements or multiple customizable items, custom coding will usually provide a much better user experience and greater flexibility.

Best regards,
Devcoder :laptop:

Thank you @devcoders. I would likely use Easify app. However, the issue I am facing with Easify is that I cannot put the two products on the same page. The requirements of the bundle and customization are exactly like what I uploaded in the image. Do you think you can help me achieve the desired result?

Hi @hassanzy1996

Thanks! Yes, I can definitely help you achieve that.

If you can share your store URL (or a preview link), I’ll take a look and let you know the best approach. I’m confident we can build the layout and functionality to match your design.

Best regards,
Devcoder :laptop:

That’s very nice of you. Unfortunately, I haven’t set up the store yet. I am still working on it. I secured the products from the supplier. Once I create the store, I will reach out to you. In the mean time, could you please share your idea and what approach you would use? Also, I would like to know your experience in Shopify in projects you did previously.

Hi @hassanzy1996

You can check my profile, and if you share your email address, I’ll be happy to send you details about my previous Shopify projects and experience.

Best regards,
Devcoder :laptop:

Zepto Product Personalizer is an app that can handle this for you. We’re not affiliated, but some of our users use it.

Hi @hassanzy1996

Certainly! Considering that you are still in the planning phase, I will suggest whether to opt for an app or a customized version of the application.

There are several applications you may consider using, such as Kickflip, Customily, Zakeke, and Teeinblue. Each of these apps allows you to personalize products with live previews and images.

In case you need to make sure that the layout will be identical to the one on the mockup (with a separate live preview of each customizable element), the customized app will suit you more.

I will sure look at these options, but from my experience earlier, it needs custom coding to put the two products with their live previews on the same page.

Hi @hassanzy1996

Yes, that’s exactly what I meant as well. If you want everything to work exactly like your design, including having both customizable products with their own live previews on the same page, then custom development will be the best approach.

You can still use a product customizer app for some of the functionality, but you’ll likely need custom coding to achieve the exact layout and logic you’re looking for. The app may help reduce some development time, but the custom logic and UI will still need to be built.

Start with your main problem:

  • You do not need two products. Your bundle is one product.
  • Put every option on that one product. Item 1: Shape, Color, Upload. Item 2: Date, Upload.
  • That is why Easify felt stuck. It was never meant to be two products.

The live preview is two parts. One is free. One needs an app.

Free part: Shape and Color.

  • This is just swapping one image for another.
  • Do it with a free Custom Liquid section.
  • You upload one image per combination.
  • Then paste the four links into the code.

How to add it:

  • Theme editor, open the product page.
  • Add section, choose Custom Liquid.
  • Paste this. Put your four image links in the IMAGES list.
<div class="lp-config" id="lp-config">
  <div class="lp-stage">
    <img class="lp-base" id="lp-base" alt="Live preview">
    <img class="lp-photo" id="lp-photo" alt="">
  </div>
  <div class="lp-fields">
    <p class="lp-title">Customizable Product 1</p>
    <span class="lp-label">Shape</span>
    <div class="lp-opts" data-group="shape">
      <label><input type="radio" name="shape" value="circle" checked> Circle</label>
      <label><input type="radio" name="shape" value="square"> Square</label>
    </div>
    <span class="lp-label">Color</span>
    <div class="lp-opts" data-group="color">
      <label><input type="radio" name="color" value="green" checked> Green</label>
      <label><input type="radio" name="color" value="yellow"> Yellow</label>
    </div>
    <span class="lp-label">Upload photo</span>
    <input type="file" id="lp-upload" accept="image/*">
  </div>
</div>
<style>
  .lp-config{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;max-width:820px;margin:0 auto}
  .lp-stage{position:relative;aspect-ratio:1;border:1px solid rgba(0,0,0,.12);border-radius:12px;overflow:hidden;background:#f6f7f9}
  .lp-base{width:100%;height:100%;object-fit:cover;display:block}
  .lp-photo{position:absolute;inset:18%;width:64%;height:64%;object-fit:contain;display:none;border-radius:8px}
  .lp-title{font-weight:600;font-size:1.15rem;margin:0 0 12px}
  .lp-label{display:block;font-weight:600;margin:16px 0 6px}
  .lp-opts{display:flex;gap:18px}.lp-opts label{cursor:pointer}
  @media(max-width:749px){.lp-config{grid-template-columns:1fr}}
</style>
<script>
(function(){
  var root=document.getElementById('lp-config');if(!root)return;
  var base=document.getElementById('lp-base'),photo=document.getElementById('lp-photo');
  var IMAGES={
    'circle-green':'PASTE_URL','circle-yellow':'PASTE_URL',
    'square-green':'PASTE_URL','square-yellow':'PASTE_URL'
  };
  function val(g){return root.querySelector('[data-group="'+g+'"] input:checked').value;}
  function render(){base.src=IMAGES[val('shape')+'-'+val('color')];}
  root.querySelectorAll('.lp-opts input').forEach(function(el){el.addEventListener('change',render);});
  document.getElementById('lp-upload').addEventListener('change',function(e){
    var f=e.target.files[0];if(!f)return;photo.src=URL.createObjectURL(f);photo.style.display='block';
  });
  render();
})();
</script>

The uploaded photo.

  • Showing it in the preview is free. The block above does it.
  • Saving that photo to your order is not free.
  • Shopify cannot attach an uploaded file to an order on its own.
  • For that you need an app.

Which app.

  • Easify or Zepto: options plus a simple photo upload.
  • Kickflip or Customily: show the customer’s photo on the product, like a real mockup.
  • All of them sit on the one product.

You can do with Third party apps like Flybundle, and other apps like that, on the behest you can do it with ChatGPT codex, or Claude, by simply connecting your store to connector on these two LLMs model, and you can customize as per your wish.

Hi @Ploqo,

Your solution targets a problem that I am not facing. My issue isn’t live preview for one single item. My real issue is how I can put the two customizations with live preview in one page. I can do what you said using Easify easily. Thank you anyway for your reply.

Hello @Arbazkakkar2,

Have you worked on something similar before and used an app or an AI tool to resolve it?

perhaps i should have gone through more back and forth communication instead of directly setting up the store and trying to replicate problem and trying to provide that solution. Perhaps detailed description of what you want might have helped me better like some example image instead of leaving them blank


or providing your store url to better understand what you want. Or some loom video or something.

Unfortunately you’ve got a lot of moving parts here and vagueness so it comes down to “use app and customize!” type of replices.
If the “customizable image” is a user upload or some sort of image-editing then for sanity end-to-endyour really need an app (showing dynamic images from product page[PDP] to checkout)
Though it can be setup to just show the image on the PDP if you don’t care about showing it in checkout yet.
If the “customizable image” is just a combo of the products images that’s a bit easier , but depending on your setup can still be the same issue with the image not then showing in checkout etc.

If this is a serious project and you need to untangle this before you get to deep in the weeds reach out to me for services by clicking my profile pic.

Hi @hassanzy1996 :raising_hands:

Yes, this should be possible without custom coding if you’re using the right product options app.

From your description, it sounds like you’re selling one bundled product that contains 6 items, with 2 of those items being customizable. If that’s the case, I’d create separate option groups for each customizable item, so each one has its own personalization fields and its own live preview.

I’ve built a similar setup using Easify Custom Product Options. It supports Live Preview, so customers can see their personalization update as they enter text or upload an image. This works well when a product has multiple customizable components, since each component can have its own set of options rather than trying to combine everything into a single preview.

Since you’re still in the planning stage, I’d recommend mapping out exactly which parts of the bundle are customizable before building the product page. That makes it much easier to organize the options and keeps the customer experience intuitive.

Just one question: are the two customizable items using text personalization, image/logo uploads, or a combination of both? That would help determine the best way to structure the setup.:heart:

Hello Jennifer,

I would like to know more from you. You seem like you have faced this before, which is exactly what I am looking for.