API und Webhooks des Trade-in-Widgets
Widget einbetten, Status mit HMAC-SHA256-Webhooks synchronisieren und den Katalog bei FastTradein belassen.
Schnellstart
Binden Sie das Widget mit zwei HTML-Zeilen ein und nehmen Sie anschließend die Shop-Domain in die Freigabeliste auf. Das Skript kommuniziert nur mit FastTradein, nicht mit Ihrem CMS.
Diesen Block in das HTML der Trade-in-Seite einfügen. Den Schlüssel durch den öffentlichen Widget-Schlüssel aus dem Workspace ersetzen.
<!-- FastTradein Widget -->
<script src="https://fasttradein.app/widget/fasttradein.js" async data-no-optimize="1" data-no-defer="1"></script>
<fasttradein-widget key="IHR_OEFFENTLICHER_SCHLUESSEL" api="https://fasttradein.app" lang="de"></fasttradein-widget>
Das Snippet setzt api auf diesen FastTradein-Host. Ohne das Attribut nutzt das Widget die Adresse, von der das Skript fasttradein.js geladen wurde.
Snippet-Parameter
| Parameter | Pflicht | Bedeutung |
|---|---|---|
| key | Pflicht: Ja | Öffentlicher Shop-Schlüssel aus den Shop-Einstellungen oder von der Seite „Widget-Einbettung“. Er kann den Katalog lesen, eine Bewertung anfragen und eine Trade-in-Anfrage senden. Preise ändern und fremde Shops öffnen kann er nicht. |
| data-key | Pflicht: Nein | Derselbe öffentliche Schlüssel wie key. React und Vue reservieren key für sich und geben es nicht an das Element weiter, verwenden Sie dort data-key. Das Widget liest zuerst key, dann data-key und startet neu, wenn sich einer davon ändert. |
| lang | Pflicht: Nein | Startsprache der Oberfläche, bis der Kunde wechselt: en, de, es, pl, ru, uk. |
| api | Pflicht: Nein | FastTradein-Origin, zum Beispiel https://fasttradein.app. Lassen Sie das Attribut im Snippet. |
| currency | Pflicht: Nein | Kein HTML-Attribut. Die Anzeigewährung (EUR, PLN, UAH, USD und weitere aus dem Workspace) kommt aus den Shop-Einstellungen. Der Katalog bleibt in Euro und wird zum Plattformkurs umgerechnet. |
Ereignisse für das Conversion-Tracking
Das Element löst fasttradein:quote aus, wenn der Kunde eine Bewertung erhält, und fasttradein:order, wenn eine Anfrage gesendet wurde. Beide Ereignisse steigen im DOM auf (bubbles) und verlassen das Shadow DOM (composed), Sie können also am Element oder an document einen Listener registrieren. event.detail enthält device und blocked (Bewertung) bzw. device und payout_method (Anfrage), nie Kundendaten.
CMS-Snippets
Anleitungen für 111 Plattformen. Vor dem Go-live den Shop-Host in die Widget-Freigabeliste eintragen.
Plattformen angezeigt: 111 von 111
WooCommerce Weltweit
Seiten → Trade-in-Seite → Block „Individuelles HTML“: Code im Tab HTML einfügen und die Seite speichern. Für viele Seiten die Zeile <script> im Theme-Footer laden (Design → Editor → Vorlagen → Footer) oder per Plugin WPCode; auf den Seiten bleibt nur das Widget-Tag.
OpenCart Weltweit
Design → Layouts → dem Layout der Trade-in-Seite ein HTML-Content-Modul mit dem Snippet hinzufügen. Wenn Sie die <script>-Zeile stattdessen im Footer-Template laden (catalog/view/theme/<theme>/template/common/footer.twig in OpenCart 3, catalog/view/template/common/footer.twig in OpenCart 4), lassen Sie im Modul nur das Tag <fasttradein-widget …></fasttradein-widget>, denn der Footer erscheint auf jeder Seite.
Shopify Weltweit
Onlineshop → Theme bearbeiten: eine Seitenvorlage anlegen (Seiten → Vorlage erstellen), darin einen Abschnitt Custom Liquid mit dem Code hinzufügen und speichern. Dann unter Onlineshop → Seiten diese Vorlage für die Trade-in-Seite wählen. Hat das Theme keinen Abschnitt Custom Liquid, den Code im Code-Editor des Themes in die Seitenvorlage einfügen.
PrestaShop Weltweit
Installieren Sie das kostenlose FastTradein-Modul: Module → Modul-Verwaltung → Modul hochladen, dann Einstellungen, und fügen Sie den Code oder den Schlüssel ein. Schreiben Sie [fasttradein] in eine eigene Zeile im Inhalt einer Seite unter Design → Seiten. PrestaShop speichert kein <script> im Seiteninhalt und entfernt das Widget-Tag, deshalb setzt das Modul das Widget beim Anzeigen der Seite ein.
Magento / Adobe Commerce Weltweit
Content → Elements → Blocks → Statischen HTML-Block anlegen und über Content → Pages ausgeben.
Wix Weltweit
Elemente hinzufügen → Code einbetten → Benutzerdefiniertes Element (Custom Element). Quelle: Server URL = https://fasttradein.app/widget/fasttradein.js, Tag Name = fasttradein-widget. Attribute: data-key = IHR_OEFFENTLICHER_SCHLUESSEL, api = https://fasttradein.app, lang = de. Dafür brauchen Sie einen Premium-Tarif mit verbundener Domain. Nicht „HTML einbetten“ (Embed HTML) verwenden: Dieser Code läuft in einem iframe auf einer anderen Domain, und das Widget lehnt ihn ab.
BigCommerce Weltweit
Storefront → Script Manager für das Skript nutzen und das Tag <fasttradein-widget> über den Page Builder (HTML-Widget) platzieren.
Squarespace Weltweit
Trade-in-Seite bearbeiten → Codeblock hinzufügen und das Snippet einfügen. Codeblöcke führen JavaScript nur in den Tarifen Core, Plus, Advanced oder Commerce aus, und das Widget erscheint nur auf der veröffentlichten Website.
Shopware 6 Europa
Shopware ab 6.5 entfernt unbekannte Tags und <script> aus Editor-Inhalten. Die <script>-Zeile in footer.html.twig Ihres Themes laden. Dann das Tag fasttradein-widget in den Einstellungen von shopware.html_sanitizer erlauben (zum Beispiel in config/packages/z-shopware.yaml), Inhalte → Erlebniswelten öffnen, dem Layout der Trade-in-Seite ein Text-Element hinzufügen, dessen Editor auf die HTML-Code-Ansicht umschalten und nur das Tag <fasttradein-widget …></fasttradein-widget> einfügen.
Ecwid by Lightspeed Weltweit
Instant Site: auf der Trade-in-Seite einen Abschnitt „Custom code“ hinzufügen und das Snippet einfügen (Tarif Venture, Business oder Unlimited). Auf Ihrer eigenen Website das Snippet auf der Trade-in-Seite neben dem Ecwid-Code einfügen.
Webflow Weltweit
Add Elements → Components → Embed (HTML Embed Code) auf der Trade-in-Seite einfügen und die Site veröffentlichen (kostenpflichtiger Site- oder Workspace-Tarif).
Drupal Commerce Weltweit
Structure → Block layout → Custom Block mit Format Full HTML in die gewünschte Region oder den Layout Builder setzen.
Framer Weltweit
Embed-Komponente auf die Fläche setzen, Typ auf HTML stellen und Skript plus Tag <fasttradein-widget> einfügen.
nopCommerce Weltweit
Administration → Content Management → Topics (Pages) → Trade-in-Seite öffnen und das Snippet im Modus Source code einfügen.
Salesforce Commerce Cloud Weltweit
Merchant Tools → Content → Content Assets → HTML-Asset anlegen und im Page Designer platzieren.
HubSpot CMS Weltweit
Content → Design Manager → ein eigenes Modul mit dem Snippet anlegen und auf der Trade-in-Seite einfügen, oder das Snippet in der Quellcode-Ansicht eines Rich-Text-Moduls einfügen.
Ghost Weltweit
Im Editor der Trade-in-Seite eine HTML-Karte mit dem Snippet hinzufügen. Alternativ nur die <script>-Zeile unter Settings → Code injection → Site Footer einfügen und das Tag <fasttradein-widget …></fasttradein-widget> in der HTML-Karte lassen.
Weebly Weltweit
Element Embed Code (HTML) auf die Trade-in-Seite ziehen und Edit Custom HTML wählen.
SAP Commerce Cloud Weltweit
SmartEdit → CMS-Komponente (Paragraph oder Custom HTML) auf der Trade-in-Seite im WCMS anlegen.
Oracle Commerce Weltweit
Design Studio → Benutzerdefiniertes Widget mit HTML-Snippet anlegen und im Seitenlayout platzieren.
Square Online Weltweit
Site-Editor → Abschnitt hinzufügen → Einbettungscode → Snippet einfügen und veröffentlichen (Square Online Plus oder Premium).
Volusion Weltweit
Design → Site Designer → Custom-HTML-Block mit dem Snippet auf der Trade-in-Seite einfügen. In footer_custom.html gehört höchstens die <script>-Zeile; das Tag <fasttradein-widget …></fasttradein-widget> bleibt im Block auf der Trade-in-Seite.
Shift4Shop Weltweit
Content → Site Pages → Seite bearbeiten → Editor auf HTML Source umschalten und Snippet einfügen.
NetSuite SuiteCommerce Weltweit
SuiteCommerce Advanced → Einen Custom-Content-CMS-Block hinzufügen oder das Snippet im Layout-Template des Themes platzieren.
Zoho Commerce Weltweit
Einstellungen → Visual Builder → Embed-Element auf der Trade-in-Seite einfügen und speichern.
VTEX Weltweit
VTEX IO → Custom Block / App erstellen oder Webkomponente in das Layout von Store Framework einbinden.
Carrd Weltweit
+ anklicken → Embed → Type auf Code und Style auf Inline stellen, das Snippet einfügen und veröffentlichen. Embeds erfordern Carrd Pro Standard oder höher.
Hostinger Weltweit
Website Builder → Embed-Code-Element hinzufügen und das Snippet einfügen.
MODX Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
GoDaddy Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Miva Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Nuvemshop / Tiendanube Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Cafe24 Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
SHOPLINE Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
thebase Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Salla Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Tray Commerce Weltweit
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Shoper Europa
Ustawienia → Zaawansowane → Bezpieczeństwo (Einstellungen → Erweitert → Sicherheit): „Wyłącz czyszczenie kodu HTML“ (HTML-Bereinigung abschalten) aktivieren. Dann Wygląd i treści → Wygląd sklepu → Obecny szablon graficzny → Moduły → Moduł własny im HTML-Modus: das Snippet einfügen und das Modul auf der Trade-in-Seite platzieren.
IdoSell Europa
Sklep → Dodatki HTML/JS (HTML/JS-Add-ons): ein Add-on anlegen, bei „Wyświetlaj na podstronach“ (auf Unterseiten anzeigen) die Option „Wybranych“ (ausgewählte) wählen und die Adresse der Trade-in-Seite angeben, dann das Snippet in das HTML-Codefeld einfügen.
JTL-Shop Europa
JTL-Shop 5 hat kein eingebautes Codefeld: Die <script>-Zeile über Ihr Child-Template (layout/footer.tpl, Block layout-footer-js) oder ein Plugin für Header- und Footer-Code aus dem JTL-Store laden und das Tag <fasttradein-widget …></fasttradein-widget> auf der Trade-in-Seite im HTML-Quelltextmodus einfügen.
Gambio Europa
Inhalte → Content Manager → die Trade-in-Seite anlegen, den Editor auf HTML-Quelltext umstellen und das Snippet einfügen.
Sylius Europa
templates/bundles/SyliusShopBundle/layout.html.twig überschreiben (das Template @SyliusShop/layout.html.twig), dort die <script>-Zeile laden und das Tag <fasttradein-widget …></fasttradein-widget> in das Template der Trade-in-Seite setzen.
Lightspeed eCom Europa
Settings → Web Extras → Custom JavaScript / HTML oder den Code ins Theme-Template einfügen.
Spryker Europa
Webkomponente in das Twig-Template der Yves-Storefront einbinden oder Skript im Basis-Layout platzieren.
Plentymarkets Europa
CMS → Container → Widget-HTML-Code in Ceres-Template oder benutzerdefinierten Content-Block einfügen.
OXID eShop Europa
Kundeninformationen → CMS-Seiten: die Trade-in-Seite anlegen und das Snippet im HTML-Quelltextmodus einfügen. Entfernt der Editor das Skript, die <script>-Zeile im Basis-Layout Ihres Themes laden (OXID 6: Application/views/<theme>/tpl/layout/base.tpl; OXID 7: das entsprechende Twig-Template) und auf der Seite nur das Tag <fasttradein-widget …></fasttradein-widget> lassen.
Shoptet Europa
Erscheinungsbild → HTML-Codes oder einen HTML-Block auf der Trade-in-Seite hinzufügen.
Webnode Europa
Trade-in-Seite öffnen und ein HTML-Element mit dem Snippet hinzufügen.
Sky-Shop Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
RedCart Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
AtomStore Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Comarch e-Sklep Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Sote Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Selly Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Unas Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
ShopRenter Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
CloudCart Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
MerchantPro Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Gomag Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
CCV Shop Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Mijnwebwinkel Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
MyOnlineStore Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
modified eCommerce Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
xt:Commerce Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Intershop Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
TYPO3 Europa
HTML-Inhaltselement auf der Trade-in-Seite anlegen oder das Snippet in die Website-Vorlage aufnehmen.
Jimdo Europa
HTML-Element auf der Trade-in-Seite hinzufügen und das Snippet einfügen.
ePages Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Vilkas Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
MyCashflow Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
DanDomain Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
SmartWeb Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Abicart Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Starweb Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Jetshop Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Mystore Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
VirtueMart Europa
Den Joomla-Beitrag der Trade-in-Seite im Quelltextmodus öffnen und das Snippet einfügen. Wenn der Editor das Skript entfernt, Skript im Template laden und das Widget-Tag im Beitrag lassen.
Odoo Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
JouwWeb Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Webador Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Upgates Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
EKM Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Visualsoft Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
IONOS Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Strato Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Mozello Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Litium Europa
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Medusa.js Headless
Widget-Skript im Layout der Next.js- oder Remix-Storefront laden und die Webkomponente <fasttradein-widget> auf der Trade-in-Seite einfügen. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Saleor Headless
Widget-Skript in der Storefront (React / Next.js) laden und die Webkomponente <fasttradein-widget> in JSX nutzen. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Vendure Headless
Widget-Skript im Layout der Storefront (Client) laden und das Tag <fasttradein-widget> auf der Trade-in-Seite einfügen. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
commercetools Headless
Widget-Skript in Ihre React-, Vue- oder Next.js-Storefront einbinden und das Tag <fasttradein-widget> verwenden. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Swell Headless
Widget-Skript ins Swell-Storefront-Layout einbinden und das Tag auf der Trade-in-Seite platzieren. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Strapi Headless
Webkomponente im Frontend (Next.js, Nuxt, Remix) einbinden, das Daten über Strapi bezieht. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Contentful Headless
Widget-Komponente im Frontend (Next.js, Astro, Gatsby) einbinden, das Daten von Contentful abruft. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Sanity Headless
Webkomponente direkt ins Next.js- oder Remix-Layout oder in benutzerdefinierte Content-Blöcke integrieren. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Next.js Storefront Headless
Skript mit <Script src="https://fasttradein.app/widget/fasttradein.js" strategy="afterInteractive" /> aus next/script in app/layout laden. Auf der Trade-in-Seite <fasttradein-widget data-key="IHR_OEFFENTLICHER_SCHLUESSEL" api="https://fasttradein.app" lang="de"></fasttradein-widget> ausgeben. React reserviert key für sich und gibt es nicht an das Element weiter, daher data-key verwenden. In TypeScript fasttradein-widget in JSX.IntrinsicElements deklarieren.
Nuxt.js Storefront Headless
Skript mit useHead({ script: [{ src: "https://fasttradein.app/widget/fasttradein.js", defer: true }] }) laden und das Tag in nuxt.config als Custom Element markieren: vue.compilerOptions.isCustomElement = (tag) => tag === "fasttradein-widget". Auf der Trade-in-Seite <fasttradein-widget data-key="IHR_OEFFENTLICHER_SCHLUESSEL" api="https://fasttradein.app" lang="de"></fasttradein-widget> einfügen. Vue reserviert key für sich und gibt es nicht an das Element weiter, daher data-key verwenden.
Vue Storefront Headless
Widget-Skript im Storefront-Layout laden und das Tag <fasttradein-widget> auf der Trade-in-Seite platzieren. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Commerce Layer Headless
Widget-Skript im Storefront-Layout laden und das Tag <fasttradein-widget> auf der Trade-in-Seite platzieren. In React und Vue den Schlüssel als data-key angeben: Beide reservieren key für sich und geben es nicht an das Element weiter.
Django Framework
Skript im Basis-Template laden und das Tag <fasttradein-widget> auf der Trade-in-Seite platzieren.
Laravel Framework
Skript im Blade-Layout laden und das Tag <fasttradein-widget> in der Trade-in-View platzieren.
Ruby on Rails Framework
Skript im Application-Layout laden und das Tag <fasttradein-widget> in der Trade-in-View platzieren.
Symfony Framework
Skript im Twig-Basis-Layout laden und das Tag <fasttradein-widget> im Trade-in-Template platzieren.
Horoshop Ukraine
Settings → General settings → Scripts: die <script>-Zeile in das Feld „before the </body> tag“ einfügen und speichern. Dann die Trade-in-Seite öffnen, den Editor der Beschreibung auf HTML-Code umschalten und das Tag <fasttradein-widget …></fasttradein-widget> einfügen.
Cartum Ukraine
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
OkayCMS Ukraine
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
SoloMono Ukraine
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
ImageCMS Ukraine
Snippet auf der Trade-in-Seite im HTML- oder Quelltextmodus einfügen. Wenn der Editor das Skript entfernt, Skript in Header oder Footer der Website setzen und das Widget-Tag auf der Seite lassen.
Prom.ua Ukraine
Prom.ua erlaubt keine eigenen Skripte auf der Firmenseite, daher läuft das Widget dort nicht. Binden Sie das Widget auf Ihrer eigenen Website oder Landingpage ein und verlinken Sie diese Seite aus Ihrem Prom-Shop.
Shop-Express Ukraine
Control Panel → Einstellungen → Benutzerdefinierte Skripte / HTML → Code auf der Trade-in-Seite einfügen.
Weblium Ukraine
Einen Embed-Code-Block mit dem Snippet direkt auf der Trade-in-Seite einfügen. Alternativ die <script>-Zeile unter Website-Einstellungen → Eigener Code (Head/Body) laden und im Embed-Block nur das Tag lassen. Eigener Code erfordert den Weblium-Tarif Pro.
Keine Treffer. Suchbegriff ändern oder Filter zurücksetzen.
Sicherheit und Domain-Freigabeliste
Die Widget-API ist absichtlich öffentlich und trotzdem an Ihren Shop gebunden. Sie gewährt keinen Zugang zum Workspace, zur Preisbearbeitung oder zu Daten anderer Mandanten.
Domain-Freigabeliste (CORS / Origin)
Das sind die Websites, auf denen Ihr Widget laufen darf. Browser senden Origin oder Referer. FastTradein lässt nur die Hostnamen zu, die in den Shop-Einstellungen gespeichert sind (Feld „Website“ und „Websites, auf denen das Widget läuft“), plus diesen FastTradein-Host. Ein Request von einer fremden Site endet mit 403 Forbidden.
Öffentlicher Widget-Schlüssel
widgetKey in der URL ist eine öffentliche Kennung. Damit lässt sich der Shop-Katalog lesen und eine Trade-in-Anfrage senden. Preise ändern, Kundendaten anderer Shops exportieren oder den Workspace öffnen lässt sich damit nicht.
Rate Limiting
Widget-Routen erlauben 120 Requests pro Minute je IP und Shop. Für die Suche gilt ein niedrigeres Limit (20/min). Für neue Trade-in-Anfragen gilt: 10 pro Minute und 10 pro Tag je IP und Shop sowie 8 pro Stunde je Kunden-E-Mail. Über dem Limit antwortet die API mit 429.
Bot-Schutz
Der Aufruf zum Anlegen einer Anfrage enthält ein verstecktes Honeypot-Feld. Automatisierter Spam, der dieses Feld ausfüllt, wird verworfen, ohne dass eine Anfrage entsteht. Senden Sie aus einem eigenen Client keine unbekannten Extrafelder.
Storefront-REST-API
Basispfad: /api/widget/{widgetKey}. Das ist dieselbe öffentliche Widget-Schnittstelle, die auch das Storefront-Skript nutzt. Workspace- und Plattform-Admin-Routen gehören nicht zum Umfang dieser API.
Sprache von Katalog, Widget-Texten und Anzeigebeträgen setzen Sie per Query-Parameter ?locale=de. formatted_amount und max_buyback_formatted sind fertige Texte für Ihre Kundschaft: der Betrag auf ganze Einheiten gerundet, mit Währungssymbol und Tausendertrennzeichen, zum Beispiel „1 235 €“. Wie sie aussehen, hängt von Sprache und Währung ab. Rechnen Sie mit den Zahlen in der kleinsten Währungseinheit, beim Euro also in Cent: max_buyback und quoted_amount_cents. Zum Beispiel bedeutet quoted_amount_cents = 123456 einen Betrag von 1234,56 Euro.
/api/widget/{widgetKey}
Shop-Konfiguration
Liefert Shop-Namen, Farben, Währung, Locale, aktivierte Kategorien, Auszahlungsarten und Widget-Texte.
cURL-Beispiel
curl -sS "https://fasttradein.app/api/widget/IHR_OEFFENTLICHER_SCHLUESSEL?locale=de" \
-H "Origin: https://shop.example" \
-H "Accept: application/json"
Beispielantwort 200 OK
{
"tenant": {
"name": "Your Store",
"currency": "EUR",
"locale": "de",
"primary_color": "#1f3a8a",
"logo_url": null
},
"locale": "de",
"accepting_orders": true,
"payout_methods": [
{
"value": "bank_transfer",
"label": "Banküberweisung"
},
{
"value": "store_credit",
"label": "Guthaben für einen Einkauf im Geschäft"
}
],
"categories": [
{
"id": 1,
"slug": "smartphones",
"name": "Smartphones"
}
],
"catalog_version": "3f9a1c0b7e"
}
/api/widget/{widgetKey}/search?q=iPhone+13
Modellsuche
Sucht Modelle nach Namen. Ist q kürzer als 2 Zeichen, liefert die Antwort bis zu 6 beliebte Modelle mit "popular": true. Ergebnisse enthalten den aktuellen maximalen Ankaufspreis dieses Shops. Höchstens 8 Treffer. Ausgeblendete Varianten fehlen.
cURL-Beispiel
curl -sS "https://fasttradein.app/api/widget/IHR_OEFFENTLICHER_SCHLUESSEL/search?q=iPhone+13" \
-H "Origin: https://shop.example" \
-H "Accept: application/json"
Beispielantwort 200 OK
{
"results": [
{
"model_id": 42,
"name": "iPhone 13",
"brand": "Apple",
"max_buyback": 42000,
"max_buyback_formatted": "420 €"
}
]
}
/api/widget/{widgetKey}/orders
Trade-in-Anfrage anlegen
Sendet eine Ankaufsanfrage aus dem Widget oder Ihrem eigenen Client. Ein POST ohne Origin- oder Referer-Header wird mit 403 abgelehnt, daher muss ein Server oder eine App Origin: https://<eine Domain von Ihrer Freigabeliste> senden. Zuerst variant_id und answer_ids sammeln. Bei Erfolg antwortet die API mit HTTP 201 und order_number.
JSON-Body
| Feld | Pflicht | Bedeutung |
|---|---|---|
| variant_id | Pflicht: Ja | Aktive Katalogvariante. |
| answer_ids | Pflicht: Ja | Antwort-IDs aus dem Kategorie-Fragebogen. Eine Antwort pro Frage; eine Frage mit multiple: true erlaubt mehrere Antworten, eine Antwort mit exclusive: true schließt alle anderen aus. |
| customer_name | Pflicht: Ja | Kundenname. |
| customer_email | Pflicht: Ja | Kunden-E-Mail. |
| customer_phone | Pflicht: Nein | Telefon, optional. |
| payout_method | Pflicht: Nein | bank_transfer oder store_credit; store_voucher, wenn der Shop Shop-Gutscheine aktiviert hat. Ohne dieses Feld erhält die Anfrage bank_transfer. |
cURL-Beispiel
curl -sS -X POST "https://fasttradein.app/api/widget/IHR_OEFFENTLICHER_SCHLUESSEL/orders" \
-H "Origin: https://shop.example" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"variant_id":101,"answer_ids":[11,24],"customer_name":"Ada Lovelace","customer_email":"ada@example.com","customer_phone":"+49 170 000000","payout_method":"bank_transfer"}'
Ersetzen Sie https://shop.example durch eine Domain von Ihrer Widget-Freigabeliste.
Beispielantwort 201 Created
{
"order_number": "TF-8PGPFFNLM6",
"quoted_amount_cents": 38000,
"formatted_amount": "380 €",
"currency": "EUR",
"status": "submitted"
}
Weitere öffentliche Widget-Routen
Nötig, um variant_id und answer_ids vor POST /orders zu holen. Gleicher Schlüssel, gleiche CORS-Regeln.
-
GET
/api/widget/{widgetKey}/catalog/{category}Marken, Modelle und Speicher einer Kategorie (id oder slug). -
GET
/api/widget/{widgetKey}/questionnaire/{category}Checklisten-Gruppen, Fragen und Antwort-IDs dieser Kategorie. multiple kennzeichnet eine Frage, die mehrere Antworten erlaubt, exclusive eine Antwort, die alle anderen ausschließt. -
POST
/api/widget/{widgetKey}/quotesPreis der Variante mit den gewählten Antworten, bevor die Anfrage angelegt wird. JSON: variant_id, answer_ids.
Webhooks
Webhooks gibt es in den Tarifen Business und Pro. Öffnen Sie im Workspace „Einstellungen“ → „Anfragen ins CRM“, tragen Sie Ihre HTTPS-URL ein und erzeugen Sie den geheimen Schlüssel. Danach sendet FastTradein für die unten genannten Ereignisse JSON per POST dorthin, sodass Sie jedes CRM oder ERP synchronisieren können.
Ereignisse
-
order.createdDer Kunde hat über das Widget eine Anfrage abgeschickt. -
order.receivedDer Shop hat das Gerät als im Lager angekommen markiert. -
order.counter_offeredDie Lagerprüfung hat die Auszahlung geändert. Der Kunde erhielt einen geschützten Angebotslink. -
order.paidDer Shop hat die Anfrage als ausgezahlt markiert. -
order.acceptedDer Kunde hat den neuen Preis nach der Prüfung angenommen. -
order.declinedDie Anfrage endete ohne Abschluss: Der Kunde hat den neuen Preis abgelehnt, das Gerät war bei der Prüfung gesperrt oder der Shop hat die Annahme abgelehnt. data.status ist declined oder cancelled.
JSON-Payload
Der Body ist kompaktes JSON ohne Slash- und Unicode-Escapes. HMAC-SHA256 über genau diese Bytes rechnen. order_number ist ein String wie TF-8PGPFFNLM6, event_id besteht aus evt_ und einer UUID. Die Felder voucher_* sind bei Anfragen mit Shop-Gutschein gefüllt, sobald der Gutschein ausgegeben ist, sonst null.
{
"event": "order.created",
"event_id": "evt_c800a9c7-b11c-4b75-810e-e667544d825d",
"timestamp": 1788550000,
"tenant_id": 12,
"data": {
"order_number": "TF-8PGPFFNLM6",
"status": "submitted",
"currency": "EUR",
"quoted_amount_cents": 38000,
"inspected_amount_cents": null,
"final_amount_cents": null,
"device": "Apple iPhone 13 128GB",
"customer": {
"name": "Ada Lovelace",
"email": "ada@example.com",
"phone": "+49 170 000000"
},
"parcel_tracking_number": null,
"payout_method": "bank_transfer",
"voucher_code": null,
"voucher_amount_cents": null,
"voucher_url": null,
"voucher_expires_at": null
}
}
Header
X-FastTradein-Event: Ereignisname, gleich payload.event.X-FastTradein-Signature: HMAC-SHA256, HMAC des rohen Bodys mit Präfix sha256=.User-Agent: FastTradein-Webhook/1.0
Antworten Sie innerhalb von 10 Sekunden mit einem beliebigen 2xx-Status. Jeder andere Status, ein Timeout oder eine Weiterleitung gilt als Fehler; wir wiederholen dann zweimal, nach 10 und nach 60 Sekunden, mit derselben event_id und Signatur. Weiterleitungen folgen wir nicht, speichern Sie also die endgültige https-Adresse. Duplikate erkennen Sie an der event_id.
HMAC-SHA256 prüfen
HMAC-SHA256 über den rohen POST-Body mit dem geheimen Webhook-Schlüssel berechnen. Mit X-FastTradein-Signature zeitkonstant vergleichen. Der Header-Wert beginnt mit sha256=.
PHP
$signature = $_SERVER['HTTP_X_FASTTRADEIN_SIGNATURE'] ?? '';
$payload = file_get_contents('php://input');
$expected = 'sha256='.hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit('Invalid signature');
}
Node.js
const crypto = require('crypto');
const express = require('express');
const app = express();
// express.raw keeps the exact POST bytes; JSON.stringify(req.body) would not match the signature.
app.post('/fasttradein-webhook', express.raw({ type: 'application/json' }), (req, res) => {
const signature = String(req.get('X-FastTradein-Signature') || '');
const expected = 'sha256=' + crypto
.createHmac('sha256', process.env.FASTTRADEIN_WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (
signature.length !== expected.length ||
!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature))
) {
return res.status(401).end('Invalid signature');
}
const event = JSON.parse(req.body.toString('utf8'));
// Skip an event_id you have already processed: a retry sends the same one.
res.status(200).end();
});
Statuscodes
| Code | Bedeutung |
|---|---|
| 200 | OK. GET liefert Konfiguration, Suchergebnisse, Katalog und Fragebogen, POST /quotes liefert das Angebot. |
| 201 | Created. POST /orders erfolgreich; Anfragenummer im Feld order_number. |
| 402 | Der Shop nimmt gerade keine neuen Widget-Anfragen an: Die Testphase ist abgelaufen oder das Abo gekündigt (TENANT_BILLING_INACTIVE), oder das Monatslimit an Anfragen ist aufgebraucht (TENANT_LIMIT_EXCEEDED). |
| 403 | Domain nicht erlaubt: Origin / Referer steht nicht auf der Shop-Freigabeliste (Fehler WIDGET_DOMAIN_DENIED), oder ein POST enthielt weder Origin noch Referer. |
| 404 | Unbekannter Widget-Schlüssel (Fehler WIDGET_NOT_FOUND), unbekannte Kategorie oder Anfragenummer. |
| 422 | Validierungsfehler: fehlende Antworten, inaktive Variante oder deaktivierte Kategorie. |
| 429 | Rate-Limit überschritten. Requests drosseln und später erneut senden. |