Виджет расчёта 3D-печати для вашего сайта
Встройте мощный движок онлайн-расчета стоимости 3D-печати Quote3D непосредственно в ваш веб-сайт или платформу электронной коммерции.
Обзор
Виджет Quote3D Embed – это решение без кода/с минимальным кодированием, которое позволяет вам предоставлять мгновенные расчеты стоимости 3D-печати вашим клиентам на любом веб-сайте. Независимо от того, используете ли вы собственный сайт, WordPress или Shopify, вы можете беспрепятственно соединить просмотр 3D-модели и размещение заказа.
Ключевые особенности
- Просмотрщик 3D-моделей: Интерактивный предварительный просмотр загруженных файлов STL, OBJ, 3MF и STEP.
- Мгновенный расчет цены: Автоматический расчет стоимости на основе ваших собственных профилей материалов и принтеров.
- Мультитехнологичность: поддерживаются FDM, SLA, SLS, SLM и MJF, каждая со своей логикой расчёта.
- Пользовательские темы: настройте внешний вид в соответствии с фирменным стилем, используя glassmorphism и собственные цветовые палитры.
- Нулевая конфигурация для клиентов: Вашим клиентам не нужно знать технические детали слайсинга; всем этим управляет Quote3D.
- Плагины для платформ: устанавливаемые пакеты для WooCommerce, PrestaShop, OpenCart, Magento и Wix, а также готовый код для Shopify, Webflow и Framer.
- Простая и расширенная формы: спрашивайте только качество печати и прочность вместо настроек слайсера, показывайте все параметры печати или дайте каждому клиенту переключаться между ними. Настраивается в редакторе виджета или опцией mode в SDK.
Что вы можете сделать
- Синхронизация с интернет-магазином в реальном времени: используйте события «Добавить в корзину», чтобы напрямую связать расчеты со корзиной вашего магазина.
- Автоматизированный сбор лидов: Автоматически собирайте требования клиентов и данные модели.
- Автоматическая генерация эскизов: автоматически захватывайте и сохраняйте скриншоты моделей для отслеживания производства.
- Гибкие перенаправления: отправляйте клиентов на нужную страницу после успешного расчёта. Адрес перенаправления должен быть URL с http или https.
Начало работы
Готовы к интеграции? Вы можете настроить тему виджета, язык, цвет, поведение перенаправления и сохранение сеанса непосредственно из вашей панели управления, а затем сгенерировать код для встраивания или фрагменты для платформы, которые вам нужны.
Перейти к настройкам виджетаПримечание по ценам
WooCommerce, PrestaShop, OpenCart, Magento и Wix: пакет заново считывает каждый расчёт из API Quote3D на вашем сервере и добавляет его в корзину по этой цене, поэтому покупатель не может её изменить. Shopify без Plus задаёт цены только через товар, поэтому расчёт превращается в количество товара с единичной ценой; проверяйте ID расчёта в каждом заказе. У Webflow, Framer и Squarespace нет корзины, доступной виджету. В любом случае валюта цен в Quote3D должна совпадать с валютой магазина. Quote3D рассчитывает цены в TRY, USD, EUR, GBP, JPY, CNY, RUB, CAD, AUD, CHF, SEK, NOK, DKK, SGD, HKD, NZD, MXN, BRL, INR.
Интеграции с платформами: WooCommerce, Shopify, PrestaShop, OpenCart, Magento и другие
Виджет работает на любом сайте. Для этих платформ мы предлагаем устанавливаемые пакеты или готовый код; что происходит с корзиной, зависит от платформы:
- Quote3D для WooCommerce
- Quote3D для PrestaShop
- Quote3D для OpenCart
- Quote3D для Magento
- Quote3D для Wix
- Quote3D для Shopify
Плагин WooCommerce для расчёта 3D-печати
Установите PHP-плагин, вставьте токен виджета и выберите товар WooCommerce, под которым расчёты добавляются в корзину (простой товар с обычной ценой, можно 0). Когда покупатель нажимает «В корзину», плагин проверяет цену и количество через API Quote3D и добавляет расчёт в корзину WooCommerce с файлом, материалом и превью в метаданных позиции — без ручного переопределения цены. С серверным токеном (хранится на вашем сервере и никогда не попадает на страницы) плагин также добавляет в WordPress меню Quote3D: тариф и оставшиеся лимиты, все расчёты, заказы, в которые они превратились, и отчёты от дневных до годовых. Корзина и заказы хранятся в собственной базе данных магазина; Quote3D передаёт только тариф, лимиты и число расчётов.
Блок Shopify для расчёта 3D-печати
Добавьте блок Custom Liquid с нашим кодом в шаблон товара «3D-печать» с единичной ценой. Shopify берёт цену из товара, и изменить её может только Shopify Plus, поэтому расчёт добавляется как количество этого товара (расчёт на 45,99 при товаре за 1,00 превращается в 46 × 1,00). В заказе есть ID и цена расчёта, чтобы вы могли проверить их перед печатью. Необязательная правка шаблона корзины в вашей теме показывает миниатюру модели в строке; при оформлении заказа остаётся изображение товара.
Другие платформы и собственные стеки
- Wix: пакет Velo, который проверяет цену расчёта в бэкенде вашего сайта и добавляет её в корзину Wix Stores (тариф Premium; используется service plugin eCommerce Catalog от Wix, сейчас в бета-версии). В строке корзины отображается изображение товара-носителя, а не миниатюра модели: Wix принимает только изображения из своего Media Manager.
- Squarespace: встраивайте виджет с помощью Code Block. У Squarespace нет API корзины, поэтому заказы проходят через запрос расчёта, счёт или ссылку на оплату.
- PrestaShop 8: устанавливаемый модуль, который проверяет цену расчёта на вашем сервере и добавляет его в корзину, с панелью управления Quote3D в разделе Sell: расчёты, очередь печати, запасы цветов, отчёты, загрузка моделей и настройки.
- OpenCart 3.0, 4.0.2.2+ и 4.1: устанавливаемое расширение, которое проверяет цену расчёта на вашем сервере и добавляет его в корзину, с меню Quote3D в админ-панели: расчёты, очередь печати, запасы цветов, отчёты, загрузка моделей и настройки.
- Magento Open Source / Adobe Commerce 2.4: модуль, который проверяет цену расчёта на вашем сервере и добавляет его в корзину, с меню Quote3D в админ-панели: расчёты, очередь печати, запасы цветов, отчёты, загрузка моделей и настройки.
- Webflow: встраивайте виджет с помощью элемента Code Embed. Расчёты нельзя добавить в корзину Webflow Ecommerce.
- Framer: React-компонент для виджета. Во Framer нет встроенной корзины.
- Пользовательское программное обеспечение: Может быть интегрировано в любой React, Vue или Vanilla JS проект с помощью JS SDK.
Технический принцип работы
Виджет Quote3D работает как высокопроизводительный Iframe или современный JS SDK. Вот как это работает:
- Изолированная работа: Виджет работает в своей защищенной зоне (Iframe), поэтому он не нарушает стиль вашего сайта.
- Обмен в реальном времени: виджет передаёт результаты расчёта на вашу страницу через API 'postMessage'. При использовании SDK события доставляются только источнику, встроившему виджет, а не рассылаются всем слушателям.
- Автоматическое изменение размера: При использовании SDK виджет автоматически регулирует свою высоту в зависимости от контента.
Работа с API вместе с виджетом
Виджет обрабатывает свой трафик API внутри себя — эти маршруты вы не вызываете сами. Когда нужно прочитать или обработать те же данные из собственного кода, используйте публичные эндпоинты v2, описанные в основных понятиях, обращаясь к https://api.quote3d.com/v2 с настоящим Bearer-токеном API, а не с идентификатором токена. Чтобы реагировать на добавление настроенной детали в корзину, подпишитесь на вебхук widget.added_to_cart вместо прямых вызовов.
Вызов API из собственного кода
API v2 отвечает на кросс-доменные запросы только для настроенного источника Quote3D. Вызывайте его со своего сервера, а не из JavaScript витрины; сам виджет работает на источнике Quote3D внутри iframe, поэтому его собственные запросы не затрагиваются.
Безопасность и верификация
Виджет обращается к Quote3D из браузера, поэтому его токен виден каждому, кто откроет исходный код страницы. Создайте отдельный токен виджета, ограничьте его областью виджета и привяжите к источникам вашей витрины. Обновление сохраняет оба ограничения, поэтому обновлённый токен виджета никогда не станет токеном с полным доступом.
Загруженные файлы и превью
Файлы, загруженные через виджет, хранятся в зашифрованном виде и не доступны публично. В payload при добавлении в корзину передается thumbnailUrl — абсолютная ссылка, которая отображается в вашем магазине: сохраняйте её именно в том виде, в котором она была получена. Изменение ссылки, удаление параметров запроса или размещение на вашем домене приведет к ошибке отображения изображения.
Цены, которым может доверять ваш магазин
- Токен с областью виджета не может задать цену. Расчёт, запрошенный с ним, учитывает только параметры, которые покупатель выбрал в форме; цены материалов, оборудования и сборов всегда берутся из ваших собственных профилей.
- Вебхук widget.added_to_cart сообщает цену, валюту, количество и материал, сохранённые вместе с расчётом, а не то, что отправил браузер, и отправляется один раз на расчёт.
- Сообщение QUOTE3D_ADD_TO_CART, которое получает ваша страница, приходит из браузера покупателя и может быть там изменено. Перед списанием оплаты проверьте цену по вебхуку или через GET https://api.quote3d.com/v2/quotes/{quote_id}.
Область токена виджета
Токен, созданный с областью виджета, достигает только тех эндпоинтов, которые действительно нужны встроенному интерфейсу. Всё остальное в API запрещено, поэтому токен, извлечённый из исходного кода страницы, нельзя обратить против вашего аккаунта.
Область виджета разрешает:
- Читать конфигурацию принтеров и материалов, чтобы форма расчёта могла показать ваши варианты.
- Запрашивать идентификатор загрузки и загружать файл модели.
- Читать и удалять загруженный им файл.
- Запускать асинхронный расчёт для этого файла и опрашивать созданное задание.
- Читать расчёт по идентификатору, сохранять его миниатюру и отправлять событие добавления в корзину.
Область виджета запрещает:
- Управление вебхуками, чтобы украденный токен не смог перенаправить ваш поток событий на другой сервер.
- Данные аккаунта, историю загрузок, списки расчётов, аналитику, использование и лимиты.
- Активацию лицензии и все прочие эндпоинты, не перечисленные выше.
Привязка к источнику
Перечислите магазины, которым разрешено использовать токен, например https://shop.example.com. Токену виджета нужен хотя бы один: при загрузке iframe Quote3D проверяет страницу, встраивающую виджет, и отказывается отображаться на любом сайте не из списка.
Что привязка к источнику требует от вашей страницы
- Проверка читает реферер, который браузер отправляет при загрузке iframe виджета. Это поведение по умолчанию, поэтому от обычной страницы ничего не требуется.
- Если страница задаёт referrer-policy: no-referrer, origin нельзя проверить и виджет не загрузится. На страницах с виджетом используйте значение браузера по умолчанию (strict-origin-when-cross-origin) или origin.
- Прямые вызовы API проверяются отдельно: запрос из браузера на сайте вне списка отклоняется, а вызовы сервер-сервер, которые не отправляют заголовок Origin, не затрагиваются.
Что токен виджета прочитать не может
Эндпоинт конфигурации возвращает только то, что отображает форма расчёта, — названия принтеров, области построения, материалы, цвета и ограничения по слоям. Ваша себестоимость (цена материала за килограмм, стоимость машино-часа, множитель стоимости поддержек, потребляемая мощность) в браузер не передаётся; цена рассчитывается на сервере.
Сеансы посетителей
Токен виджета публичен, поэтому лимит, считаемый по токену, делили бы все покупатели вашего магазина, и один скрипт мог бы исчерпать его и заблокировать всех остальных. Поэтому виджет открывает короткий сеанс посетителя, когда покупатель впервые загружает файл, а затратные шаги считаются по сеансу.
- Встроенный виджет делает это сам. Стандартный код встраивания менять не нужно.
- Загрузка файла, запуск расчёта, сохранение миниатюры и событие добавления в корзину требуют сеанса. Чтение вашей конфигурации, опрос задания и получение расчёта — нет, поэтому долгий расчёт никогда не оставит покупателя ни с чем.
- Сеанс действует 30 минут. В рамках одного сеанса покупатель может в час выполнить до 30 загрузок, 15 расчётов, 30 сохранений миниатюр и 20 событий добавления в корзину. Один IP-адрес может открыть до 20 сеансов в час для одного токена.
- Эти правила действуют только для токенов с областью виджета. Токен без области считается серверной интеграцией и не получает ни одной из этих защит, поэтому токен в вашем магазине всегда должен иметь область виджета.
- Если вы сами вызываете эти эндпоинты с токеном с областью виджета, сначала откройте сеанс: получите задачу через GET https://api.quote3d.com/v2/widget/challenge, найдите число от 0 до maxnumber, для которого SHA-256 от соли с этим числом в конце совпадает с задачей, и отправьте его в POST https://api.quote3d.com/v2/widget/session. Передавайте полученное значение в заголовке X-Widget-Session. На отсутствующий или истёкший сеанс сервер отвечает 401 с кодом ошибки AUTH_005; откройте новый сеанс и повторите запрос.
- У трафика виджета есть собственная почасовая квота, отдельная от квоты вашей серверной интеграции, поэтому загруженный магазин и ваш собственный бэкенд не мешают друг другу. Кроме того, в панели управления можно задать дневной лимит расчётов для виджета; когда он исчерпан, покупателям предлагают попробовать на следующий день, а вы получаете письмо.
Токены, созданные без области, сохраняют полный доступ, поэтому существующие интеграции продолжают работать без изменений. Добавление области — это и есть способ включить для токена ограничение.