Plugins · MineShopify · InstallationInstallation

Installations-GuideInstallation Guide

In etwa 10 Minuten vom Download zum ersten automatisch ausgelieferten Kauf. Folge einfach den Schritten – bei Problemen hilft der Troubleshooting-Abschnitt am Ende. From download to your first automatically delivered purchase in about 10 minutes. Just follow the steps — if anything goes wrong, check the troubleshooting section at the end.

Schritt 1 – Plugin installierenStep 1 — Install the plugin
  1. Lade die MineShopify-1.3.0.jar aus deinem Kunden-Dashboard (oder von BuiltByBit) herunter
  2. Lege die Datei in den plugins/-Ordner deines Servers
  3. Starte den Server neu – die Dateien config.yml und messages.yml werden automatisch erzeugt

Voraussetzungen: Spigot oder Paper 1.13+ und Java 11+. Sprache umstellen: in der messages.ymllanguage: de.

  1. Download MineShopify-1.3.0.jar from your customer dashboard (or from BuiltByBit)
  2. Drop the file into your server's plugins/ folder
  3. Restart the server — config.yml and messages.yml are generated automatically

Requirements: Spigot or Paper 1.13+ and Java 11+. Language is English by default (messages.ymllanguage).

Schritt 2 – Shopify verbinden (2 Wege)Step 2 — Connect Shopify (2 options)

Weg A: MineShopify-Dashboard (empfohlen, einfachster Weg)

  1. Konto erstellen auf mineshopify.com/dashboard
  2. Im Dashboard einen Verknüpfungs-Token erzeugen
  3. Ingame ausführen: /ms setup <token>
  4. Im Dashboard unter Settings → Connect Shopify Store deinen Shop verbinden – die Authentifizierung übernimmt das Dashboard

Fertig! Bestellungen kommen sofort per Webhook an – ohne API-Zugangsdaten, ohne Polling. Der Standard-Modus connection_mode: "webhook" ist bereits richtig eingestellt.

Weg B: Direkte API-Verbindung (ohne Dashboard)

Für neue Shopify-Shops (ab 2026):

  1. Auf dev.shopify.com anmelden → neue App erstellen → auf deinem Store installieren
  2. API-Scopes setzen: read_orders (Pflicht), read_customers (empfohlen)
  3. App → SettingsClient ID und Client Secret kopieren
  4. In der config.yml eintragen:
connection_mode: "polling"
shopify:
  domain: "dein-shop.myshopify.com"
  oauth:
    client_id: "DEINE_CLIENT_ID"
    client_secret: "DEIN_CLIENT_SECRET"

Danach /ms reload – Tokens holt und erneuert das Plugin vollautomatisch.

Für bestehende Shops mit Legacy-App: Einfach den vorhandenen shpat_…-Token unter shopify.token eintragen – funktioniert unverändert weiter.

Option A: MineShopify dashboard (recommended, easiest)

  1. Create an account at mineshopify.com/dashboard
  2. Generate a link token in the dashboard
  3. Run in-game: /ms setup <token>
  4. In the dashboard, go to Settings → Connect Shopify Store — authentication is handled for you

Done! Orders arrive instantly via webhook — no API credentials, no polling. The default connection_mode: "webhook" is already correct.

Option B: Direct API connection (no dashboard)

For new Shopify stores (2026+):

  1. Sign in at dev.shopify.com → create a new app → install it on your store
  2. Set API scopes: read_orders (required), read_customers (recommended)
  3. App → Settings → copy the Client ID and Client Secret
  4. Enter them in config.yml:
connection_mode: "polling"
shopify:
  domain: "your-shop.myshopify.com"
  oauth:
    client_id: "YOUR_CLIENT_ID"
    client_secret: "YOUR_CLIENT_SECRET"

Then run /ms reload — the plugin fetches and renews access tokens fully automatically.

Existing stores with a legacy app: just keep your shpat_… token in shopify.token — it continues to work unchanged.

Schritt 3 – Pakete anlegenStep 3 — Create packages

Pakete verknüpfen Shopify-Produkte mit Minecraft-Befehlen. Wichtig: Der Paketname muss exakt dem Produktnamen in Shopify entsprechen (Groß-/Kleinschreibung zählt!).

packages:
  "VIP Rank":
    commands:
      - "lp user %player% group add vip"
      - "give %player% diamond 32"
      - "broadcast &6%player% ist jetzt VIP!"

%player% wird durch den Minecraft-Namen ersetzt, den der Kunde beim Checkout angibt. Pakete lassen sich auch ingame verwalten: /ms addcommand, /ms removecommand, /ms listproducts.

Tipp: Füge im Shopify-Checkout ein Feld für den Minecraft-Namen hinzu (z. B. Line-Item-Property oder Cart-Attribut mit dem Namen username, minecraft_username oder ign) – das Plugin erkennt alle gängigen Feldnamen automatisch.

Packages map Shopify products to Minecraft commands. Important: the package name must match the Shopify product name exactly (case-sensitive!).

packages:
  "VIP Rank":
    commands:
      - "lp user %player% group add vip"
      - "give %player% diamond 32"
      - "broadcast &6%player% is now VIP!"

%player% is replaced with the Minecraft name the customer enters at checkout. Packages can also be managed in-game: /ms addcommand, /ms removecommand, /ms listproducts.

Tip: Add a Minecraft name field to your Shopify checkout (e.g. a line item property or cart attribute named username, minecraft_username or ign) — the plugin detects all common field names automatically.

Schritt 4 – TestenStep 4 — Test it
  1. /ms status – zeigt den Verbindungsstatus (Dashboard/API verbunden?)
  2. /ms test <dein-name> <paketname> – simuliert eine Bestellung und führt die Befehle aus
  3. Optional: eine echte Testbestellung im Shop aufgeben (Shopify-Testmodus) und mit /ms fetch abrufen (Polling) bzw. auf den Webhook warten
  4. /ms orders – die Bestellung sollte in der Liste erscheinen

Läuft alles? Glückwunsch – dein Shop liefert ab jetzt automatisch aus. 🎉

  1. /ms status — shows the connection state (dashboard/API connected?)
  2. /ms test <your-name> <package> — simulates an order and runs the commands
  3. Optional: place a real test order in your store (Shopify test mode) and fetch it with /ms fetch (polling) or wait for the webhook
  4. /ms orders — the order should appear in the list

Everything working? Congratulations — your store now delivers automatically. 🎉

Troubleshooting – häufige ProblemeTroubleshooting — common issues
  • „401/403 Unauthorized": Client ID/Secret falsch kopiert oder der App fehlt der Scope read_orders. Scope in der Dev-Dashboard-App prüfen, App neu auf dem Store installieren, /ms reload.
  • Bestellung kommt nicht an: Produktname in Shopify ≠ Paketname in der Config (exakte Schreibweise inkl. Groß-/Kleinschreibung prüfen). /ms debug aktivieren und die Konsole beim nächsten /ms fetch beobachten.
  • Spielername wird nicht erkannt: Das Checkout-Feld muss als Line-Item-Property oder Note-Attribut ankommen und z. B. username/ign heißen. Mit /ms info <id> siehst du, was Shopify tatsächlich übermittelt hat.
  • „429 Rate Limit": shopify.scheduler in der Config erhöhen (z. B. auf 120 Sekunden).
  • Domain-Fehler: Unter shopify.domain nur dein-shop.myshopify.com eintragen – ohne https:// und ohne Custom-Domain.
  • Alte Bestellungen fehlen: Das Plugin holt standardmäßig nur Bestellungen des aktuellen Tages (days_to_check: 1) – bei Bedarf erhöhen.

Nicht weitergekommen? Ticket im Dashboard erstellen oder auf dem Discord melden – am besten mit der Ausgabe von /ms debug.

  • "401/403 Unauthorized": Client ID/Secret copied incorrectly or the app is missing the read_orders scope. Check the scope in your Dev Dashboard app, reinstall the app on your store, then /ms reload.
  • Order doesn't arrive: Shopify product name ≠ package name in the config (check exact spelling incl. case). Enable /ms debug and watch the console during the next /ms fetch.
  • Player name not detected: The checkout field must arrive as a line item property or note attribute named e.g. username/ign. Use /ms info <id> to see what Shopify actually sent.
  • "429 rate limit": Increase shopify.scheduler in the config (e.g. to 120 seconds).
  • Domain errors: Enter only your-shop.myshopify.com under shopify.domain — no https://, no custom domain.
  • Old orders missing: By default the plugin only fetches today's orders (days_to_check: 1) — increase if needed.

Still stuck? Create a ticket in the dashboard or reach out on Discord — ideally with the output of /ms debug.

← Zurück zu MineShopify← Back to MineShopify