Zurück zum Blog
Integration5 min1.581 liest

So fügen Sie eine 360°-Produktansicht in Laravel hinzu

3 Schritte für Laravel: in Studio veröffentlichen, widget.js per @push auf der Blade-View einfügen, per SKU binden. Lazy Load, Modal, CDN.

IntegrationAnleitung
Laravel-Produktseite öffnet den Spinnify-360°-Viewer in einem Overlay

Schnelle Antwort

360° in Laravel: in Studio veröffentlichen (Name = SKU, Aktiv) → @stack('scripts') im Blade-Layout-Head, widget.js per @push auf der Produktdetail-View mit {{ $product->sku }} → data-key + data-sku (AUTO bei JSON-LD-sku; URL wenn Livewire/Inertia-Stacks nicht erneut laufen). Lazy Load und Modal. Live-Produktseite testen, nicht die Listing-Seite.

Laravel-Galerien blättern Standfotos. Kundinnen und Kunden können den Artikel trotzdem nicht drehen. Sie können eine fotografierte 360°-Drehung ohne Composer-Paket einbauen: Frames in Spinnify hosten und ein Skript einfügen.

Diese Anleitung gilt für Laravel mit Blade. Dasselbe widget.js-Snippet funktioniert auf der Produktdetailseite wie auf anderen HTML-Sites. Sie installieren kein Composer-Paket von Spinnify. widget.js nicht in Vite app.js bündeln.

3 Schritte von den Fotos zur live Laravel-Seite

Die Arbeit steckt im Embed: ein Skript auf der Produktdetail-View, dann die Zuordnung zur Katalog-SKU.

1. In Spinnify Studio vorbereiten

Bevor Sie Blade-Views bearbeiten:

  • Bei Spinnify Studio anmelden.
  • Produkt anlegen und eine Fotoserie hochladen (24–36 Frames, 4:3 für PC-Fotos).
  • Wichtig: der Produktname in Studio muss der Laravel-SKU entsprechen, die Sie ausgeben (Leerzeichen und Bindestriche zählen, Groß/Klein nicht).
  • Produkt auf Aktiv lassen. Ein verstecktes Produkt zeigt den Button nicht.

2. Code in Laravel einfügen

Zwei Wege für dasselbe Studio-Snippet. Kopieren unter Widget-Installation → Code anzeigen.

Methode A: Blade @stack (am schnellsten für den ganzen Katalog). In resources/views/layouts/app.blade.php @stack('scripts') in <head> setzen. widget.js nutzt defer, deshalb gehört es in den Head. In products/show.blade.php das Snippet mit @push('scripts') … @endpush und data-sku="{{ $product->sku }}" einfügen. Nicht auf die Listing-Seite (index.blade.php) setzen. widget.js nicht in Vite app.js importieren; die CDN-Skript-URL behalten.

Methode B: AUTO oder URL. data-sku="AUTO" nutzen, wenn die Produkt-Blade bereits Schema.org-Product-JSON-LD mit sku ausgibt. Ist die Seite Livewire oder Inertia und laufen Stacks nach dem ersten vollen Load nicht erneut, data-sku="URL" nutzen und die Site-Basis-URL in den Widget-Einstellungen setzen.

Spinnify widget.js in einem Laravel Blade @push auf der Produktdetail-View
widget.js in Blade @push → 360°-Modal.

3. Die Bindung einstellen

Der Code sieht so aus: <script src="https://www.spinnify.io/widget.js" data-key="YOUR_WIDGET_KEY" data-sku="{{ $product->sku }}" defer></script>

  • data-key: Ihr Studio-Widget-Schlüssel. Nicht ändern.
  • data-sku: {{ $product->sku }}, oder AUTO zum Lesen von sku aus JSON-LD, oder URL wenn Livewire/Inertia-Stacks nicht erneut laufen (Seitenpfad in Studio speichern).

Warum es schnell bleibt

Ein Fremdskript in einer Laravel-Produktsicht weckt PageSpeed-Fragen, weil Blade Galerie und Layout-CSS schon malt. Spinnify hält die Extra-Arbeit vom ersten Paint fern: Frames bleiben auf dem CDN, bis jemand drehen will. Die Blade-Galerie rendert zuerst; die 360-Schicht öffnet sich danach im Modal.

  • Lazy Loading: der Browser lädt die Frames erst nach dem Klick.
  • Isolation: der Viewer öffnet sich im Modal und ersetzt die Laravel-Galerie beim ersten Paint nicht.
  • CDN: Frames kommen als WebP/AVIF, nicht als Extra-Dateien in Laravel Storage.

Checkliste: Button erscheint nicht?

Wenn der 3D-View-Button fehlt, gehen Sie die Liste auf einer Live-Produkt-URL durch, nicht in der Admin-Vorschau.

  • Steht @stack('scripts') im Layout-<head>? Ohne Stack tut @push nichts. Bei kompilierten Views: php artisan view:clear.
  • Sind Sie auf der Produktdetail-View? Das Skript nicht auf index.blade.php laden.
  • Namen gleich? Studio-Produktname und die ausgegebene SKU müssen übereinstimmen (inkl. Leerzeichen und Bindestriche).
  • Ist das Studio-Produkt Aktiv?
  • Ist data-key aus Ihrem Konto kopiert?
  • Ein Skript pro Seite: das Snippet nicht zweimal einfügen.
  • Livewire oder Inertia: wenn Stacks nach dem ersten Load nicht erneut laufen, data-sku auf URL stellen und Site-Basis-URL in den Widget-Einstellungen setzen. widget.js nicht in Vite app.js aufnehmen.

Kann ich das Aussehen des Buttons anpassen?

Ja. Den Starter gestalten Sie in Studio, nicht in der Theme-CSS. So passen Sie ihn an, ohne die Produktvorlage zu ändern:

  • Position: rechts, links oder mittig.
  • Farben und Beschriftung passend zum Laravel-Theme.
  • Format: rundes Schwebesymbol oder schmale Lasche.

Danach liefert Laravel weiter die Galerie. Die 360°-Ebene öffnet sich, wenn jemand danach fragt.

Spins aufnehmen: 360-Ansicht erstellen. Magento-HTML-Shops: Magento-2-Anleitung. Tilda Zero Block.

Häufig gestellte Fragen

Brauche ich ein Composer-Paket?
Nein. Fügen Sie widget.js aus Spinnify Studio in ein Blade @push ein. Spinnify liefert kein Composer-Paket. Dasselbe Skript wie auf anderen HTML-Sites. widget.js nicht in Vite app.js bündeln.
Blade @stack/@push oder AUTO?
@stack('scripts') im Layout plus @push auf der Produktdetail-View ist am schnellsten für jede Produktseite, besonders mit {{ $product->sku }}. AUTO wenn JSON-LD-sku vorhanden ist. URL wenn Livewire oder Inertia Stacks nicht erneut ausführt.
Was sind data-key und data-sku?
data-key ist Ihr Widget-Schlüssel aus Studio. data-sku ist {{ $product->sku }}, AUTO für JSON-LD-sku oder URL für einen gespeicherten Seitenpfad wenn Stacks nicht erneut laufen.
Verlangsamt das Skript Laravel?
Frames laden nach dem Klick. Der Viewer läuft im Modal. Auslieferung ist WebP/AVIF über CDN, keine Extra-Dateien in Laravel Storage.
Warum erscheint der Button nicht?
@stack im Layout-Head ergänzen, live Produktdetail-View öffnen, Studio-Name an SKU anpassen, Produkt Aktiv lassen, data-key prüfen, Skript einmal einfügen. URL-Modus wenn Livewire oder Inertia Stacks überspringt.
Funktionieren Livewire oder Inertia?
@push läuft beim ersten vollen Page-Load. Ist die Produktseite eine Livewire-Vollseiten-Komponente oder ein Inertia-Besuch der Blade-Stacks nicht erneut ausführt, data-sku URL und die Site-Basis-URL in den Widget-Einstellungen nutzen. Dasselbe widget.js. Kein Extra-Paket.
Kann ich den Button anpassen?
Ja, in Studio: Position, Farben, Beschriftung, rundes Symbol oder schmale Lasche. Das Laravel-Theme muss den Launcher nicht neu stylen.

Autor

Spinnify Editorial

The Spinnify 360° Studio team — guides on 360° product spins, storefront integrations, and product page performance.

Tilda Null Blockieren Sie das Öffnen der Seite Spinnify 360°-Viewer in einem modalen Overlay
Integration10 min1.543 liest

So fügen Sie eine 360°-Produktansicht auf Tilda hinzu: Ein Leitfaden für Ladenbesitzer

3 Schritte ohne Code: in Spinnify Studio veröffentlichen, über T123 oder Zero Block einbetten, durch SKU binden. Lazy Load, modal, WebP/CDN. Checkliste, ob die Schaltfläche ausgeblendet bleibt.

IntegrationAnleitung
Artikel lesen
Magento-2-Produktseite öffnet den Spinnify-360°-Viewer in einem Overlay
Integration5 min1.543 liest

So fügen Sie eine 360°-Produktansicht in Magento 2 hinzu

3 Schritte für Magento 2: in Studio veröffentlichen, widget.js in HTML Head oder Page Builder einfügen, per SKU binden. Lazy Load, Modal, CDN.

IntegrationAnleitung
Artikel lesen

Sind Sie bereit, Ihren ersten 360°-Spin zu veröffentlichen?

Erstellen Sie ein Produkt, laden Sie Frames hoch und betten Sie das Widget mit einem Skript-Snippet ein.

  1. Frames hochladen
  2. Skript einbetten
  3. Gehen Sie live
Testen Sie Spinnify 360° Studio kostenlos