{"id":36280,"date":"2024-11-07T07:00:00","date_gmt":"2024-11-07T15:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=36280"},"modified":"2025-10-30T13:42:44","modified_gmt":"2025-10-30T20:42:44","slug":"3d-product-image-e-commerce-store","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store","title":{"rendered":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Shopping online is convenient, but customers often miss being able to physically interact with products in brick-and-mortar stores. In fact, <a href=\"https:\/\/firework.com\/blog\/why-you-need-to-bring-your-instore-experience-online\">85% of shoppers favor the in-store experience<\/a>. Without this information, it can be challenging to make a purchase decision.<\/p>\n<p>One way to replicate the in-store experience is to create immersive 3D image models that provide your customers with an interactive, realistic view of the product. This technology can be a real differentiator between an abandoned cart and a sale. According to a Cloudinary survey, <a href=\"https:\/\/cloudinary.com\/blog\/visual-media-reduces-returns-global-e-commerce-survey\">53% of respondents<\/a> said they were more likely to buy if they had access to 3D product images.<\/p>\n<p>This blog post will show you how to use Cloudinary\u2019s <a href=\"https:\/\/dimensions.cloudinary.com\/\">Dimensions<\/a> product to embed 3D models in an e-commerce website using Next.js.<\/p>\n<h2>Creating 3D Product Images<\/h2>\n<p>Creating a 3D model can be challenging, but fortunately, specialized software is available to make the process easier. For example, <a href=\"https:\/\/poly.cam\/\">Polycam<\/a> is an app for your phone that lets you take shots of an object from different angles and then produce a 3D model. This app fits into the so-called <a href=\"https:\/\/en.wikipedia.org\/wiki\/Photogrammetry\">photogrammetry software<\/a> category, which analyzes images by identifying common points in each one and connecting them to create a 3D view.<\/p>\n<p>We\u2019ll work with Polycam for this blog post, but any other photogrammetry software will work.<\/p>\n<h2>Using Polycam<\/h2>\n<p>After installing and opening the app, click the camera icon to make a new capture. You\u2019ll be offered two capture modes: LiDAR and Photo. The LiDAR mode is used to capture larger areas, such as rooms or apartments. On the other hand, the Photo mode is usually the best choice for capturing objects where accuracy and detail are essential, and this is the mode we\u2019ll be using. This mode works by taking a sequence of photos and uploading them to the cloud, where they\u2019re processed to create a 3D image reconstruction.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1761856772\/blog-How_to_Create_a_3D_Product_Image_for_Your_E-commerce_Store_With_Cloudinary-1.jpg\" alt=\"Taking pictures using Polycam\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1206\" height=\"2622\"\/><\/p>\n<p>Press the <strong>Record<\/strong> button and take photos of the object you want to create a 3D model of. Once you\u2019re done, click <strong>Record<\/strong> again, which will upload the pictures to the cloud for processing. Once the processing is complete, you can click the image and then the <strong>Download<\/strong> icon in the top-right corner.<\/p>\n<p>You\u2019ll be given several export options; the one we\u2019re interested in is the GLTF format. This format is specifically designed for fast transmission and use of 3D models in web browsers and VR environments. After clicking GLTF, you\u2019ll receive a ZIP file containing a GLB file that represents your 3D model.<\/p>\n<h2>Uploading to Dimensions<\/h2>\n<p>Dimensions is a new product from Cloudinary, currently in beta, allowing you to generate assets from your 3D models and deliver them through the Cloudinary API. To use it, log in to the <a href=\"https:\/\/dimensions.cloudinary.com\/products\">Dimensions Catalog<\/a> and click <strong>Upload 3D Model<\/strong> to upload the previously saved GLB file.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1761856772\/blog-How_to_Create_a_3D_Product_Image_for_Your_E-commerce_Store_With_Cloudinary-2.png\" alt=\"Viewing uploaded image in Dimensions\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"4096\" height=\"2170\"\/><\/p>\n<p>As you can see, our 3D model has room for improvement, and there are certainly far better-quality models out there, but we\u2019re using it just to demonstrate how it can be used in Dimensions. To get a higher-quality model, you\u2019d need to have a different environment with better lighting so that the actual object can be isolated from the background.<\/p>\n<p>Next, click <strong>Create a 3D Viewer<\/strong> and choose one of the available sizes. Then click <strong>View Results<\/strong>, and the model will be uploaded and made available in a 3D viewer. We can now use this 3D model in our e-commerce website, which we\u2019ll implement next.<\/p>\n<p>Before proceeding, note the \u201cSKU\u201d value displayed at the top of the page. We\u2019ll need this later.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1761856772\/blog-How_to_Create_a_3D_Product_Image_for_Your_E-commerce_Store_With_Cloudinary-3.png\" alt=\"Showing the SKU value\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"890\" height=\"280\"\/><\/p>\n<h2>Embedding 3D Models in a Next.js app<\/h2>\n<p>The first step is to go to the Dimensions <a href=\"https:\/\/dimensions.cloudinary.com\/settings\">Settings page<\/a> and note down the value of the Account Name field. We\u2019ll need to store this value as an environment variable for use by Next.js.<\/p>\n<p>When running locally, this will be done in the <code>.env.local<\/code> file:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>NEXT_PUBLIC_CLOUDINARY_ACCOUNT_NAME=[your account name]\n<\/code><\/pre>\n<p>The environment variable is <a href=\"https:\/\/nextjs.org\/docs\/pages\/building-your-application\/configuring\/environment-variables#bundling-environment-variables-for-the-browser\">prefixed with <code>NEXT_PUBLIC_<\/code><\/a> because it\u2019s an identifier that\u2019s safe to be used in the browser context.<\/p>\n<p>Next, define a component responsible for including the necessary Dimensions JavaScript libraries. These libraries are required for initializing the Dimensions client and parsing <a href=\"https:\/\/www.welcome.dimensions.cloudinary.com\/post\/html-tag-attributes\">custom HTML attributes<\/a> that Dimensions uses.<\/p>\n<p>You can see the source code for the whole component below:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-comment\">\/\/ components\/dimensions-script.tsx<\/span>\n<span class=\"hljs-string\">\"use client\"<\/span>;\n<span class=\"hljs-keyword\">import<\/span> Script <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">\"next\/script\"<\/span>;\n<span class=\"hljs-keyword\">import<\/span> { useEffect } <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">\"react\"<\/span>;\n\n<span class=\"hljs-keyword\">const<\/span> CLOUDINARY_ACCOUNT_ID = process.env.NEXT_PUBLIC_CLOUDINARY_ACCOUNT_NAME;\n\n<span class=\"hljs-keyword\">export<\/span> <span class=\"hljs-keyword\">default<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">DimensionsScript<\/span>(<span class=\"hljs-params\"><\/span>) <\/span>{\n  useEffect(<span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span> =&gt;<\/span> {\n    <span class=\"hljs-comment\">\/\/ @ts-expect-error type definition initDimensions is not yet available<\/span>\n    <span class=\"hljs-built_in\">window<\/span>.initDimensions({\n      <span class=\"hljs-attr\">account<\/span>: CLOUDINARY_ACCOUNT_ID,\n      <span class=\"hljs-attr\">viewers<\/span>: &#91;<span class=\"hljs-string\">\"3D\"<\/span>],\n    });\n\n    <span class=\"hljs-built_in\">console<\/span>.log(\n      <span class=\"hljs-string\">\"Cloudinary Dimensions initialized for account\"<\/span>,\n      CLOUDINARY_ACCOUNT_ID,\n    );\n  }, &#91;]);\n\n  <span class=\"hljs-keyword\">return<\/span> (\n    <span class=\"xml\"><span class=\"hljs-tag\">&lt;&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Script<\/span>\n        <span class=\"hljs-attr\">strategy<\/span>=<span class=\"hljs-string\">\"beforeInteractive\"<\/span>\n        <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/dimensions-tag.cloudinary.com\/all.js\"<\/span>\n      \/&gt;<\/span><span class=\"handlebars\"><span class=\"xml\">\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Script<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/dimensions-3d-viewer.cloudinary.com\/all.js\"<\/span> \/&gt;<\/span><span class=\"handlebars\"><span class=\"xml\">\n    <span class=\"hljs-tag\">&lt;\/&gt;<\/span><\/span><\/span><\/span><\/span><\/span>\n  );\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>This component adds the base Dimensions library necessary for initialization. To ensure this happens as soon as possible, it\u2019s executed using the <a href=\"https:\/\/nextjs.org\/docs\/pages\/api-reference\/components\/script#beforeinteractive\"><code>beforeInteractive<\/code> strategy<\/a>. The other script is used to render the actual 3D viewer.<\/p>\n<p>The component also runs on the <code>initDimensions<\/code> function provided by the first JavaScript library when mounted. For this reason, it needs to be a client component, as noted by the <code>use client<\/code> directive at the top.<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-comment\">\/\/ app\/layout.tsx<\/span>\n<span class=\"hljs-keyword\">export<\/span> <span class=\"hljs-keyword\">default<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">RootLayout<\/span>(<span class=\"hljs-params\">{\n  children,\n}: Readonly&lt;{\n  children: React.ReactNode;\n}&gt;<\/span>) <\/span>{\n  <span class=\"hljs-keyword\">return<\/span> (\n    <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"en\"<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n        {children}\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">DimensionsScript<\/span> \/&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/span>\n  );\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>With the Dimensions library initialized, we can use Dimensions\u2019 custom HTML tags anywhere in the site. For example, on a product page. Assuming we have a <code>ProductDetail<\/code> component, all we need to do is include a <code> div<\/code> element with Dimensions\u2019 custom HTML tags:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">export<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">ProductDetail<\/span>(<span class=\"hljs-params\"><\/span>) <\/span>{\n  <span class=\"hljs-keyword\">const<\/span> skuId = <span class=\"hljs-string\">\"sneaker-123\"<\/span>;\n  \n  <span class=\"hljs-keyword\">return<\/span> (\n    <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"grid md:grid-cols-2 gap-6 lg:gap-12 items-start max-w-6xl px-4 mx-auto py-6\"<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"grid gap-4 md:gap-10 items-start h-full\"<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"grid gap-4 h-full\"<\/span>&gt;<\/span>\n          {\/* This will embed the 3D model *\/}\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">data-d8s-type<\/span>=<span class=\"hljs-string\">\"3d\"<\/span> <span class=\"hljs-attr\">data-d8s-id<\/span>=<span class=\"hljs-string\">{skuId}<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"grid gap-4 md:gap-10 items-start\"<\/span>&gt;<\/span>\n        {\/* The rest of the product detail page *\/}\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span><\/span>\n  );\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>Here, the <code>data-d8s-type<\/code> attribute is set to <code>3d<\/code> to render the Dimensions viewer with the model associated with the product. The <code>data-d8s-id<\/code> attribute refers to the SKU. The <code>data-d8s-typ<\/code>e attribute can also be set to <code>video<\/code>, or it defaults to <code>image<\/code> if not set explicitly. With this code in place, you should now see an animated 3D image of our product.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1761856772\/blog-How_to_Create_a_3D_Product_Image_for_Your_E-commerce_Store_With_Cloudinary-4.gif\" alt=\"Product page with a 3D model\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"2000\" height=\"713\"\/><\/p>\n<h2>Conclusion<\/h2>\n<p>Cloudinary Dimensions is a powerful product to help you make immersive 3D models with ease and at scale. All you need to do is upload your model and embed it in your app using the Cloudinary libraries. Although it\u2019s still in beta, you\u2019re free to try it out at the <a href=\"https:\/\/www.welcome.dimensions.cloudinary.com\/\">official Dimensions website<\/a>.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":87,"featured_media":36282,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[354,98,212],"class_list":["post-36280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-3d","tag-e-commerce","tag-next-js"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Create a 3D Product Image for Your E-commerce Store With Cloudinary<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-07T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-30T20:42:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary\",\"datePublished\":\"2024-11-07T15:00:00+00:00\",\"dateModified\":\"2025-10-30T20:42:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\"},\"wordCount\":13,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA\",\"keywords\":[\"3D\",\"E-commerce\",\"Next.js\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\",\"url\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\",\"name\":\"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA\",\"datePublished\":\"2024-11-07T15:00:00+00:00\",\"dateModified\":\"2025-10-30T20:42:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store","og_locale":"en_US","og_type":"article","og_title":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary","og_url":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store","og_site_name":"Cloudinary Blog","article_published_time":"2024-11-07T15:00:00+00:00","article_modified_time":"2025-10-30T20:42:44+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary","datePublished":"2024-11-07T15:00:00+00:00","dateModified":"2025-10-30T20:42:44+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store"},"wordCount":13,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","keywords":["3D","E-commerce","Next.js"],"inLanguage":"en-US","copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store","url":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store","name":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","datePublished":"2024-11-07T15:00:00+00:00","dateModified":"2025-10-30T20:42:44+00:00","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/3d-product-image-e-commerce-store#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Create a 3D Product Image for Your E-commerce Store With Cloudinary"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1730413225\/polycam_3D_to_Dimensions-blog\/polycam_3D_to_Dimensions-blog.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/36280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=36280"}],"version-history":[{"count":3,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/36280\/revisions"}],"predecessor-version":[{"id":39034,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/36280\/revisions\/39034"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/36282"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=36280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=36280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=36280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}