Как добавить 3d фото в карточку товара в магазин на InSales


После выполнения всех этих шагов, 3D-фото будет добавлено в карточку товара вашего магазина на платформе Insales. Обратите внимание, что разные 3D-форматы могут потребовать использования других загрузчиков моделей. В данном примере мы использовали загрузчик GLTFLoader для работы с форматом .glb. Если у вас возникнут сложности или вопросы, обратитесь к документации Three.js или специалистам ws24.pro.

1. Чтобы добавить 3D-фото в карточку товара на платформе Insales, выполните следующие шаги:

2. Загрузите 3D-фото на сторонний хостинг. Для начала, загрузите ваш 3D-файл (например, в формате .glb) на сторонний хостинг, который предоставляет прямые ссылки на файлы. Вы можете использовать такие сервисы, как Google Drive, Dropbox, GitHub, или другие. После загрузки файла, получите прямую ссылку на файл.

Включите библиотеку для отображения 3D-моделей. Для отображения 3D-моделей в браузере, вам потребуется JavaScript-библиотека. Один из самых популярных выборов - Three.js. Добавьте ссылку на эту библиотеку в ваш файл "scripts.liquid" вашей темы. Вставьте следующий код:

{{ 'https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js' | script_tag }}

3. Добавьте контейнер для 3D-фото в карточку товара. Откройте файл "product.liquid" вашей темы и добавьте следующий код HTML в том месте, где вы хотите разместить 3D-фото:

<div id="product-3d" style="width: 100%; height: 400px;"></div>

4. Создайте новый скриптовый файл для работы с 3D-моделями. В папке "javascripts" вашей темы создайте новый файл с названием "product_3d.js" и добавьте следующий код:

document.addEventListener('DOMContentLoaded', function() {
  const product3DContainer = document.getElementById('product-3d');
  if (!product3DContainer) return;

  const modelUrl = 'URL_3D_ФОТО'; // Замените на прямую ссылку на ваш 3D-файл

  const scene = new THREE.Scene();
  const camera = new THREE.PerspectiveCamera(75, product3DContainer.clientWidth / product3DContainer.clientHeight, 0.1, 1000);
  const renderer = new THREE.WebGLRenderer({ antialias: true });

  renderer.setSize(product3DContainer.clientWidth, product3DContainer.clientHeight);
  product3DContainer.appendChild(renderer.domElement);

  const loader = new THREE.GLTFLoader();
  loader.load(modelUrl, function(gltf) {
    scene.add(gltf.scene);

    camera.position.z = 5;
    const animate = function() {
      requestAnimationFrame(animate);
      renderer.render(scene, camera);
    };
    animate();
  });

  // Добавьте свет в сцену
  const light = new THREE.AmbientLight(0xffffff);
  scene.add(light);
});

 

Не забудьте заменить 'URL_3D_ФОТО' на прямую ссылку на ваш 3D-файл, который вы загрузили на сторонний хостинг.

5. Подключите созданный скрипт к вашей теме. Откройте файл "scripts.liquid" вашей темы и добавьте следующий код в конец файла, чтобы подключить "product_3d.js":

{{ 'product_3d.js' | asset_url | script_tag }}

6. Настройте вращение 3D-модели (опционально). Если вы хотите, чтобы 3D-модель вращалась автоматически, добавьте следующий код в функцию animate в файле "product_3d.js":

gltf.scene.rotation.y += 0.01;
 

Таким образом, весь код функции animate будет выглядеть следующим образом:

const animate = function() {
  requestAnimationFrame(animate);
  gltf.scene.rotation.y += 0.01;
  renderer.render(scene, camera);
};


Обратите внимание, что разные 3D-форматы могут потребовать использования других библиотек и загрузчиков моделей. Также можно использовать библиотеку X3DOM для работы с форматом .wrl (VRML). 

Важно помнить, что подключение требует соблюдения определенных правил и рекомендаций, а также технических требований. При возникновении трудностей или вопросов рекомендуется обращаться за помощью к специалистам сервиса WS24 по API интеграциям.

Нужны доработки магазина на InSales?

Получите оценку стоимости в течение 30 минут!