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
- Lade die
MineShopify-1.3.0.jaraus deinem Kunden-Dashboard (oder von BuiltByBit) herunter - Lege die Datei in den
plugins/-Ordner deines Servers - Starte den Server neu – die Dateien
config.ymlundmessages.ymlwerden automatisch erzeugt
Voraussetzungen: Spigot oder Paper 1.13+ und Java 11+. Sprache umstellen: in der messages.yml → language: de.
- Download
MineShopify-1.3.0.jarfrom your customer dashboard (or from BuiltByBit) - Drop the file into your server's
plugins/folder - Restart the server —
config.ymlandmessages.ymlare generated automatically
Requirements: Spigot or Paper 1.13+ and Java 11+. Language is English by default (messages.yml → language).
Schritt 2 – Shopify verbinden (2 Wege)Step 2 — Connect Shopify (2 options)
Weg A: MineShopify-Dashboard (empfohlen, einfachster Weg)
- Konto erstellen auf mineshopify.com/dashboard
- Im Dashboard einen Verknüpfungs-Token erzeugen
- Ingame ausführen:
/ms setup <token> - 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):
- Auf dev.shopify.com anmelden → neue App erstellen → auf deinem Store installieren
- API-Scopes setzen:
read_orders(Pflicht),read_customers(empfohlen) - App → Settings → Client ID und Client Secret kopieren
- In der
config.ymleintragen:
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)
- Create an account at mineshopify.com/dashboard
- Generate a link token in the dashboard
- Run in-game:
/ms setup <token> - 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+):
- Sign in at dev.shopify.com → create a new app → install it on your store
- Set API scopes:
read_orders(required),read_customers(recommended) - App → Settings → copy the Client ID and Client Secret
- 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
/ms status– zeigt den Verbindungsstatus (Dashboard/API verbunden?)/ms test <dein-name> <paketname>– simuliert eine Bestellung und führt die Befehle aus- Optional: eine echte Testbestellung im Shop aufgeben (Shopify-Testmodus) und mit
/ms fetchabrufen (Polling) bzw. auf den Webhook warten /ms orders– die Bestellung sollte in der Liste erscheinen
Läuft alles? Glückwunsch – dein Shop liefert ab jetzt automatisch aus. 🎉
/ms status— shows the connection state (dashboard/API connected?)/ms test <your-name> <package>— simulates an order and runs the commands- Optional: place a real test order in your store (Shopify test mode) and fetch it with
/ms fetch(polling) or wait for the webhook /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 debugaktivieren und die Konsole beim nächsten/ms fetchbeobachten. - Spielername wird nicht erkannt: Das Checkout-Feld muss als Line-Item-Property oder Note-Attribut ankommen und z. B.
username/ignheißen. Mit/ms info <id>siehst du, was Shopify tatsächlich übermittelt hat. - „429 Rate Limit":
shopify.schedulerin der Config erhöhen (z. B. auf 120 Sekunden). - Domain-Fehler: Unter
shopify.domainnurdein-shop.myshopify.comeintragen – ohnehttps://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_ordersscope. 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 debugand 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.schedulerin the config (e.g. to 120 seconds). - Domain errors: Enter only
your-shop.myshopify.comundershopify.domain— nohttps://, 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.