Paketwo › Glossar

Shopify ↔ Mirakl ↔ PlentyOne Bridge

Du listest Produkte auf Shopify und auf Mirakl-Marktplätzen (Shop-Apotheke, Douglas, Galaxus …) und dein zentrales ERP ist PlentyOne. Jeder Kanal sieht eine andere Bestellnummer für dieselbe physische Sendung. Kundenservice-Fragen kommen in drei verschiedenen Postfächern an. So überbrückst du das für eine einheitliche Antwort.

Das ID-Mapping-Problem

Dieselbe physische Bestellung hat in jedem System andere IDs:

Um einem Kunden zu antworten, der „Wo ist meine Bestellung #79043?" von einer Shopify-Adresse schreibt, muss dein Code:

  1. #79043 als Shopify-Order-Name erkennen.
  2. Shopify-Admin-API anfragen für numerische ID + Tags (die oft den Mirakl-COM enthalten).
  3. Plenty per numerischer Shopify-ID ODER Mirakl-COM durchsuchen.
  4. Tracking aus dem Shipping-Package der Plenty-Order ziehen.

Paketwo's Bridge im Code

Der Matcher (in Produktion gehärtet):

# 1) Shopify-Seite: tag/note/name + Ambiguity-Guard
shopify_order = find_shopify_order_for_mirakl(
    client=tenant.shopify_client,
    mirakl_com="COM-237482229-2-A",
    strategies=["tag", "note", "name"],
)

# 2) Plenty-Seite: search_orders_by_external_id
plenty_order = plenty.search_orders_by_external_id(
    external_id=str(shopify_order.numeric_id),
)

# 3) Tracking aus dem Shipping-Package
tracking = plenty_order.shipping_packages[0].package_number

# 4) Antwort in Kundensprache komponieren
draft = responder.draft(
    intent="wismo",
    order=plenty_order,
    tracking=tracking,
    lang=customer_lang,
)

Shopify Partner App (read-only)

Paketwo ist registrierter Shopify Partner. Die Shopify-Admin-API- Integration nutzt OAuth-Install + HMAC-verifizierte Webhooks + read-only Scopes (read_orders, read_fulfillments). Dein Store bleibt unangetastet — die App liest nur Bestellungen. App-Store-Listing in Submission, geplant Q3 2026. Bis dahin per direktem OAuth-Install auf Anfrage.

Mirakl Read-only Safety

Paketwo's Mirakl-Client blockt nicht nur POST/PUT/DELETE, sondern auch state-mutating GETs (/messages/{id}/read, /orders/{id}/validate). Das ist über eine Path-Segment-Allowlist durchgesetzt, bevor der Request die App verlässt. Selbst ein Bug im Bot kann keine Kundenmail aus Versehen als „gelesen" für dein Team markieren.

FAQ

Brauche ich einen Paketwo-Account pro Kanal?

Nein, ein Tenant deckt alle Kanäle ab. Mailboxen, Plenty-Creds, Shopify-Install und Mirakl-Operators werden pro Tenant in einem Dashboard konfiguriert.

Was wenn Shopify und Plenty den Status uneinig haben?

Plenty ist die Source-of-Truth (dein ERP). Shopify dient nur zur Order-Erkennung; die Antwortdaten kommen aus Plenty + Live-Versand-Lookup.

Wie funktioniert der SSRF-Guard?

Shopify-OAuth-Install-URLs sind gegen Newline-, Path-, Scheme-Injection und per-Tenant-Store-Domain-Allowlist validiert. Nein, ein Angreifer kann den Install nicht zu einem fremden Host umlenken.

Eine Bridge, ein Postfach, null Copy-Paste.

Gratis testen Setup-Paket

Verwandt: Mirakl ↔ Plenty · WISMO-Automation Plenty · Zendesk vs. Paketwo