{ "name": "get_order_data", "description": "Pobierz dane zamówienia z WooCommerce. Zawsze podaj email klienta (używany do weryfikacji tożsamości). Opcjonalnie podaj numer zamówienia. Email pobierz z danych konwersacji — NIE pytaj użytkownika o email jeśli piszą z maila.", "color": "linear-gradient(rgb(100,150,200), rgb(50,100,170))", "iconSrc": "", "schema": "[{\"id\":0,\"property\":\"orderNumber\",\"description\":\"Numer zamówienia WooCommerce (opcjonalny)\",\"type\":\"string\",\"required\":false},{\"id\":1,\"property\":\"email\",\"description\":\"Adres e-mail klienta — wymagany do weryfikacji. Jeśli nieznany, zostanie pobrany automatycznie z danych konwersacji.\",\"type\":\"string\",\"required\":false}]", "func": "const fetch = require('node-fetch')\n\nconst base = String(($vars && ($vars.relay_base || $vars.webhook_base)) || 'http://localhost:8080').replace(/\\/$/,'')\nconst secret = String(($vars && $vars.relay_shared_secret) || '')\n\nconst orderNumber = typeof $orderNumber !== 'undefined' && $orderNumber ? String($orderNumber) : ''\n// Email: explicit parameter OR auto-filled from conversation sender\nconst email = (typeof $email !== 'undefined' && $email)\n ? String($email)\n : String(($vars && $vars.sender_email) || '')\n\nif (!email) return 'Błąd: nie można ustalić adresu e-mail klienta potrzebnego do weryfikacji tożsamości.'\nif (!secret) return 'Błąd: brak $vars.relay_shared_secret'\n\ntry {\n const body = { email }\n if (orderNumber) body.orderNumber = orderNumber\n\n const res = await fetch(`${base}/tools/get_order_data`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${secret}`\n },\n body: JSON.stringify(body)\n })\n const data = await res.json()\n if (data.ok) {\n return JSON.stringify(data.data, null, 2)\n }\n if (data.code === 'UNAUTHORIZED') {\n return 'Brak autoryzacji: podany adres e-mail nie pasuje do zamówienia.'\n }\n return `Błąd: ${data.message || JSON.stringify(data)}`\n} catch (error) {\n return `Błąd połączenia: ${error?.message || String(error)}`\n}\n" }