Shopify Functions / Shipping Discount - Locations

Topic summary

Ein Händler betreibt zwei Lager (Express und Standard) und möchte Kunden bei Mischwarenkörben die Wahl zwischen zwei Versandoptionen geben: entweder doppelte Versandkosten für getrennte Lieferungen oder nur Standardversand für eine gemeinsame Lieferung.

Technische Herausforderung:

  • Shopify Functions bieten keinen Zugriff auf Lager-Locations
  • fetch-Aufrufe zur API sind in Functions nicht möglich
  • Die Versandkostenlogik soll über eine Custom App mit Shipping Discount Function umgesetzt werden

Aktueller Stand:

  • Ein Nutzer verwies auf die neue “Split Shipping”-Funktion (Summer 2025 Update), die jedoch nicht die gewünschte Lösung bietet
  • Die Custom App funktioniert im Entwicklungs-Shop erfolgreich
  • Problem im Live-Shop: Nach Auswahl des Rabatttyps erfolgt eine Weiterleitung zur App-Seite, obwohl keine UI vorgesehen ist. Die GraphQL-basierte Zuweisung, die im Dev-Shop funktionierte, schlägt im Live-Shop fehl

Offene Frage: Wie lässt sich eine Custom App mit Shopify Functions korrekt in einer produktiven Umgebung ohne UI einsetzen?

Summarized with AI on October 27. AI used: claude-sonnet-4-5-20250929.

Hallo zusammen,

wir stehen aktuell vor der Herausforderung, dass unser Produktpool aus zwei unterschiedlichen Lagern beliefert wird: einem Express-Lager und einem Standard-Lager.

Um dem Kunden auf der Produktdetailseite (PDP) transparente Informationen zur Lieferzeit anzeigen zu können, rufen wir die Lagerverfügbarkeit per AJAX-Call zur Live-API ab. Zusätzlich müssen wir die Versandkosten je nach Lagerquelle dynamisch anpassen.

Bei einem Mischwarenkorb (Produkte aus beiden Lagern) soll der Kunde entscheiden können:

  1. Doppelte Versandkosten zahlen und zwei getrennte Lieferungen erhalten (Express + Standard), oder

  2. Nur Standardversandkosten zahlen, wobei alle Produkte gemeinsam mit Standard-Lieferzeit versendet werden.

Für die Umsetzung der Versandkostenlogik nutze ich eine eigene App mit einer Shipping Discount Function.

Das Problem:
In der Function fehlt mir der Zugriff auf wichtige Informationen wie z. B. die Lager-Location.
Da fetch in Shopify Functions nicht verfügbar ist, kann ich diese Daten auch nicht zur Laufzeit über die API abfragen.


Meine Frage:

Welche Möglichkeiten habe ich, dieses Problem trotzdem zu lösen?

Ziel:
Mischwarenkorb mit Produkt A (Standardlager) und Produkt B (Expresslager)

Optionen:

  1. Aufsummierung beider Versandkosten (Standardverhalten in Shopify)

  2. Versandkosten nur basierend auf dem Standardlager berechnen (Interaktion vom Kunden notwendig, Button)

Ich freue mich über Anregungen oder Lösungsansätze.

Vielen Dank und beste Grüße
Benjamin

Da gibt es seit dem summer 2025 - Update eine coole Funktion.

https://help.shopify.com/de/manual/checkout-settings/split-shipping

GGf. hilft dir das beim Problem schon weiter.

Vielen Dank – leider führt das noch nicht zur gewünschten Lösung.

Ich habe das Problem inzwischen in einem Entwicklungs-Shop mithilfe einer eigenen Custom App erfolgreich lösen können. Dort funktioniert alles wie gewünscht.

Allerdings habe ich nun Schwierigkeiten, die Custom App im produktiven Live-Shop zum Laufen zu bringen.

Soweit ich es verstanden habe, werden Shopify Functions über den Partner-Account gehostet. Meine App ist dort verfügbar, und ich sehe sowohl die Extension als auch deren Function ID.

Da es sich um eine Versand Gutschein Funktion handelt, erscheint beim Erstellen eines neuen Rabatts im Admin-Bereich meines Shops der entsprechende Rabatttyp. Ich kann diesen auch auswählen, werde anschließend jedoch immer zur App-Seite weitergeleitet. Dort habe ich aber keine UI. Ist auch nicht gewünscht.

Im Entwicklungs-Shop habe ich die Function über GraphQL erfolgreich zugewiesen und aktiviert – im Live-Shop funktioniert dies jedoch nicht auf die gleiche Weise.

Hat jemand damit bereits Erfahrung und kann mir weiterhelfen?
Gibt es eventuell eine Anleitung oder Best Practices, wie man eine solche App korrekt in einer produktiven Shopify-Umgebung einsetzt?

Viele Grüße
Benjamin