Technische probleemoplossing
Eerste stap in alle gevallen: vraag de chat om ps_get_shop_info en ps_check_shop_health uit te voeren. Samen melden ze versies, editie en licentiestatus, de schrijfgebieden (welke schakelaars aan staan en tot wanneer), het niveau klantgegevens, ontbrekende rechten van de medewerker, resterende uurlimieten en modules die aan het opslaan hangen. De kaart Verbindingslogboek (laatste 50) toont elke aanroep met IP, resultaat en tijd.
Verbinding
De connector maakt geen verbinding vanuit Claude of ChatGPT.
Controleer in deze volgorde:
- Het adres is
https://your-shop.com/module/tellmyshop/mcp(sinds 2.8 zonder token; bij de oudere methode met het volledige token). Het endpoint weigert gewoon HTTP (403). - De hosting geeft de
Authorization-header door aan PHP. Zo niet, dan meldt “Verbinding opnieuw testen” dat de hostingpartij de header met het toegangsbewijs van de chat verwijdert, en werkt inloggen niet. Laat de header doorgeven (bijvoorbeeld een regel in.htaccessof de serverconfiguratie), of zet Verbonden chats > Geavanceerd: hoe chats verbinden > Adres met sleutel (oudere methode) aan en gebruik dat adres. - De connector staat aan. Stap 1 van de kaart Start (Connector aanzetten) zet hem aan; uit geeft 503 “connector disabled”.
- “Verbinding opnieuw testen” in de module werkt (testtoken, 2 minuten geldig; controleert ook het inloggen). De test merkt geen blokkades op land of IP bij een CDN op; de eerste echte aanroep van de chat in het verbindingslogboek wel.
- Niets vóór de winkel blokkeert POST naar
/module/tellmyshop/mcp: basic auth, onderhoudspagina, WAF, Cloudflare Bot Fight Mode of managed challenges. Voeg alleen voor dat pad een uitzonderingsregel toe. - De lijst met toegestane IP’s in Instellingen: veiligheid, meldingen, limieten is leeg, of bevat de adressen van je chat-app. Laat hem met ChatGPT leeg: OpenAI publiceert geen vaste adreslijst. Voor Claude heeft de instellingenkaart een knop die de adressen van Anthropic toevoegt.
- Winkel achter Cloudflare of een andere proxy: zet Winkel achter een proxy / Cloudflare aan en vul de proxybereiken in bij Vertrouwde proxy’s, anders ziet de IP-lijst het IP van de proxy.
- In ChatGPT voeg je de winkel toe in Plugins als aangepaste MCP-server met authenticatie OAuth.
403 Forbidden.
Waarschijnlijke oorzaken:
- Origin. Een verzoek met een
Origin-header wordt alleen geaccepteerd vanhttps://claude.ai,https://claude.com,https://chatgpt.comofhttps://chat.openai.com. Verzoeken zonderOrigingaan door. Een testtool in de browser met een andere Origin wordt geweigerd. - IP-lijst. Het IP staat niet op de lijst.
- Gewoon HTTP.
503 Service niet beschikbaar.
De connector staat uit, of er is geen connectormedewerker (verwijderd, of SuperAdmin gemaakt). Voer stap 1 van de kaart Start opnieuw uit; die maakt het account aan als het ontbreekt.
429 Te veel mislukte pogingen.
20 mislukte authenticaties vanaf één IP binnen 10 minuten blokkeren dat IP tot het venster voorbij is; de eigenaar krijgt een melding. Typische oorzaak: een oud token (adres met sleutel) dat nog in de chat-app of in een monitoringscript staat. Corrigeer het token en wacht 10 minuten.
Het venster van de winkel toont een fout.
- “Het terugkeeradres komt niet overeen met de registratie”: verwijder de connector in de chat-app en voeg hem opnieuw toe.
- Verzoek verlopen: een verbindingsverzoek en de code zijn 15 minuten geldig. Verbind opnieuw vanuit de chat.
- Waarschuwing dat het niet om Claude of ChatGPT gaat: andere apps kunnen alleen verbinden als Andere apps dan Claude en ChatGPT laten verbinden aan staat (standaard uit), en ook dan alleen met goedkeuring van de eigenaar.
401 na een wijziging van het adres met sleutel (oudere methode).
Een nieuw token trekt het oude direct in, en het uitzetten van Adres met sleutel (oudere methode) verwijdert het adres. Een via inloggen verbonden chat die op Verbonden chats is ontkoppeld, krijgt ook 401: verbind hem opnieuw vanuit de chat. Werk de connector-URL in Claude bij, of de header Authorization: Bearer in de configuratie van Claude Code / Claude Desktop.
Claude Code of Claude Desktop (lokaal) kan geen verbinding maken.
Kan de client niet inloggen via een venster, zet dan het adres met sleutel (oudere methode) aan en gebruik --header "Authorization: Bearer <token>" in plaats van een token in de URL. Het endpoint vereist ook lokaal HTTPS (mkcert). Verzoeken zonder Origin-header worden doorgelaten. Is er een toegestane IP-lijst ingesteld, voeg dan het openbare IP van de machine toe.
Fout in de protocolversie.
Ondersteund: 2026-07-28, en 2025-11-25, 2025-06-18, 2025-03-26. Een niet-ondersteunde versie geeft 400 met de lijst van ondersteunde versies.
Opslaan werkt niet
De chat leest en plant alleen.
Ofwel is de licentie niet actief (Pro zonder actieve licentie werkt als Free), ofwel is dit TellMyShop Free, dat geen schrijftools heeft. ps_get_shop_info zegt welke (editie audit of audit_free). Controleer de kaart Licentie en klik op Verversen.
‘Writing in the … area is off. Nothing was saved.’
Verkoop, Thema, Modules en Onderhoud slaan alleen op terwijl hun schakelaar aan staat in de kaart Opslaan per gebied. Verkoop blijft aan tot je het uitzet; Thema en Modules 24 uur; Onderhoud 3 uur. Een schakelaar die midden in een gesprek afloopt, stopt meteen met opslaan. Het voorbeeld blijft werken, dus de chat kan het plan laten zien voordat je de schakelaar aanzet. Sinds 2.7.0 is er geen aparte serviceconnector meer: één adres dekt alle gebieden.
Thema, Modules of Onderhoud gaan niet aan.
Aanzetten vraagt een aangevinkte bevestiging en een voltooide databaseback-up. In een grote winkel gebeurt de back-up in delen: houd de pagina open of klik op Back-up afronden. Zonder vrije schijfruimte van ongeveer twee keer de databasegrootte blijven deze schakelaars uit; Content, Catalogus en Verkoop blijven werken.
ps_restore_file_backup geweigerd.
Terugzetten vraagt de schakelaar van de zone van het bestand: Thema voor themabestanden, Modules voor modulebestanden, Onderhoud voor andere winkelbestanden. De kaart Bestandsback-ups in het paneel zet terug zonder schakelaar, met de rechten van de medewerker zelf.
De klantenservicetool weigert.
ps_customer_service weigert zolang het niveau klantgegevens Uit is. Kies Gepseudonimiseerd of Volledige toegang (tijdelijk) in de kaart Klantgegevens (AVG).
Blogtools ontbreken.
De 5 blogtools worden alleen geregistreerd als SmartBlog wordt gevonden. Andere blogmodules worden niet ondersteund. ps_check_shop_health meldt ‘geen blog’ als info.
Limieten
Limiet bereikt.
Standaard per uur: 300 aanroepen, 150 schrijfacties, 20 bestandswijzigingen (bereik 10–2000, 1–500, 1–200), in te stellen in Instellingen: veiligheid, meldingen, limieten. Een schrijfactie met een groep van maximaal 50 items telt als één, en de schrijflimiet wordt vóór het opslaan gecontroleerd, dus een groep stopt nooit halverwege. Verdeel grote klussen over meerdere uren of verhoog de limieten voor de duur van het werk; ps_check_capacity controleert een geplande klus vooraf.
Groep geweigerd met een limietfout.
Limieten per aanroep, bijvoorbeeld: ps_update_product_content 50, ps_update_category_content 20, ps_update_image_legends 100, ps_set_product_categories 200, ps_update_prices 100, ps_update_stock 100, ps_manage_combinations 100, ps_set_product_redirect 100, ps_translate_catalog_items 200, ps_manage_redirects 100, ps_db_query 200 rijen, ps_db_execute 1000 rijen met back-up. Volledige tabel: Specificatie §11.1.
Schrijfacties
change_token verlopen, gebruikt of komt niet overeen.
Het token is een HMAC van tool, argumenten en een hash van de ‘voor’-toestand, 30 minuten geldig, eenmalig. Herhaal met identieke argumenten of maak een nieuw voorbeeld.
Uitvoering geblokkeerd: gegevens gewijzigd sinds het voorbeeld.
De ‘voor’-toestand klopt niet meer, bijvoorbeeld door een bewerking in de backoffice, een import of een feedmodule. Maak een nieuw voorbeeld.
Het resultaat toont wijzigingen buiten het voorbeeld.
Het vastleggen van rijen zag tijdens de schrijfactie gewijzigde rijen die het voorbeeld niet toonde, meestal door de hook van een andere module. De chat laat ze aan de eigenaar zien en vraagt wat te doen; hij zet ze niet zelf terug. Het terugdraaien van de bewerking zet alle vastgelegde rijen terug in hun eerdere toestand.
Prijswijziging geweigerd.
ps_update_prices weigert prijs 0 en wijzigingen van meer dan 30% zonder allow_big_change. ps_manage_specific_prices en ps_manage_catalog_price_rules vereisen allow_big_change boven 90% korting (waarschuwing boven 50%). De chat zet de vlag pas nadat de winkelier een wijziging van die omvang heeft goedgekeurd.
Winkelwagenregel aangemaakt maar niet actief / kan niet worden verwijderd.
ps_manage_cart_rules maakt regels bewust inactief aan; gebruik action=set_active. Er is geen verwijderactie; zet de regel uit. Een regel zonder code heeft auto_apply nodig.
Validatiefout bij opslaan.
ObjectWriter valideert elk veld met de regels van de klasse (validateField, isCleanHtml, lengtes). Productnamen mogen geen <>;=#{} bevatten en zijn maximaal 128 tekens. De melding noemt het veld.
Een andere module reageert niet op de wijziging.
ObjectWriter roept update() aan, dat actionObject<Class>Update* afvuurt (en actionProductSave / actionProductUpdate voor producten). Modules die alleen naar formulierhooks van de backoffice luisteren, zien de wijziging niet. ps_check_shop_health noemt ze.
Toegang geweigerd.
ExecutionContext::requirePermissions controleert de connectormedewerker per tabblad en actie. Sinds 2.7.0 krijgt het profiel dat stap 1 aanmaakt de rechten van alle gebieden; is het profiel met de hand aangepast, dan toont ps_get_shop_info wat ontbreekt. Op sommige PrestaShop-versies negeren modules opslagacties van een medewerker zonder ‘bekijken’-recht op modules; de kaart Start biedt een oplossing met één klik.
Terugdraaien geweigerd.
ps_revert_change kan niet terugdraaien: een childthema aanmaken, een module installeren, bijwerken of verwijderen, DDL, verwijderde afbeeldingen, een aangemaakt product dat al in een order zit, URL-wijzigingen (gebruik een nieuwe ps_change_url), bestandsbewerkingen (gebruik de bestandsback-ups). Een wijziging in Verkoop, Thema, Modules of Onderhoud terugdraaien vraagt die schakelaar; de kaart Wijzigingsgeschiedenis en ongedaan maken kan alles terugdraaien met de rechten van de ingelogde medewerker. Versleutelde geschiedenisregels hebben het sleutelbestand nodig.
URL’s
URL-wijziging geblokkeerd.
ps_change_url weigert als de canonieke doorverwijzing 302 is (Winkelinstellingen > Verkeer & SEO, zet op 301), de ontwikkelaarsmodus aan staat (_PS_MODE_DEV_) of een module routes overschrijft (UrlGuard; ps_check_shop_health noemt die). URL-wijzigingen in de blog vragen dat ‘301-doorverwijzingen voor de blog’ aan staat in de instellingen.
Doorverwijzing geweigerd door ps_manage_redirects.
Het voorbeeld accepteert alleen bronnen die nu 404 of 410 geven en doelen die 200 geven op het domein van de winkel. Ketens en lussen worden geblokkeerd. Tot 100 items per add, 100 ID’s per disable/enable; bron tot 1.024 tekens, doel-URL tot 2.048. Er is geen verwijderen: gebruik disable, of draai terug via de wijzigingsgeschiedenis.
Bestanden, thema en cache
Wijziging niet zichtbaar na het schrijven in het thema.
Voer ps_clear_cache uit (bereik smarty; all leegt ook de Symfony-cache). Leeg full-page-cachemodules en de CDN-cache apart.
Smarty-validatiefout.
Alleen tags en modifiers op de whitelist zijn toegestaan, daarna volgt een testcompilatie; {php}, {include_php} en statische toegang tot klassen worden geweigerd. Er is niets opgeslagen.
‘search must appear exactly once’.
Gebruik een langer fragment of schrijf het hele bestand met content.
Toegang tot bestand geweigerd.
Paden moeten relatief zijn, zonder .., binnen de zone uitkomen (realpath) en een tekstextensie hebben. Altijd geweigerd: parameters.php/yml, settings.inc.php, .env*, sleutels en certificaten, SQL-dumps, archieven en .bak, .git, var/logs, upload, download, de privémap van de module en de module zelf.
Schrijven van een PHP-bestand geweigerd.
De syntaxcontrole (token_get_all(TOKEN_PARSE)) vond een parseerfout. Fouten tijdens het uitvoeren (bijvoorbeeld een niet-gedefinieerde functie) worden niet gevonden; daarom heeft elke PHP-wijziging een back-up en bestaat de noodsleutel.
Terugzetten na een wijziging die de winkel kapotmaakt.
ps_list_file_backups, dan ps_restore_file_backup (maakt eerst een back-up van de huidige versie), dan ps_clear_cache. Werkt de backoffice niet meer: open het noodadres en voer de noodsleutel in; die zet de door de connector gewijzigde bestanden terug en zet Onderhoud uit, maar raakt de database niet. Gebruik voor de database de databaseback-ups van de module (kaart Opslaan per gebied, Downloaden, daarna importeren met je gewone tools).
SQL (Onderhoud)
Query geweigerd.
Eén statement, zonder commentaar dat inhoud verbergt. Nooit toegankelijk: tabellen van medewerkers, sessies, toegang en profielen, configuration (gebruik ps_config), webservice- en API-tabellen, connectortabellen. Nooit wijzigbaar: belastingen, koppelingen van betaalmodules, orders, statussen, betalingen, facturen. Bewerkingen op bestanden en MySQL-gebruikers geblokkeerd. Tabellen met persoonsgegevens alleen op niveau klantgegevens pseudo (gemaskeerd) of full.
ps_db_execute teruggedraaid.
Er wijzigden meer rijen dan opgegeven, of er zouden meer dan 1000 rijen een back-up nodig hebben. Maak de WHERE nauwer of splits de wijziging.
Wat er sinds 2.6 is veranderd
| 2.6.x | 2.7.x |
|---|---|
| Alleen-lezenmodus en de kaart ‘Werkbereik en rechten’ | Verwijderd. De licentie bepaalt of opslaan mogelijk is; de kaart Opslaan per gebied bevat de schakelaars |
| Dagelijkse connector plus een aparte serviceconnector met eigen token, IP-lijst en vervaltijd | Eén connector voor alle gebieden |
| Thema, Modules en Onderhoud alleen bereikbaar via de serviceconnector | Schakelaars met tijdslimiet: Thema en Modules 24 u, Onderhoud 3 u, elk eerst met een databaseback-up |
| Zonder licentie: alleen blok 1 leesbaar | Zonder licentie: de hele winkel leesbaar, opslaan uit |
| TellMyShop Audit | Hernoemd tot TellMyShop Free |
| 14 kant-en-klare taken | 32 taken in 6 groepen |
Een probleem melden
Stuur naar [email protected]: domein, versies van PrestaShop en PHP, moduleversie, pakket (Pro of Free), chat-app (Claude of ChatGPT), naam van de tool, exacte fouttekst, tijdstip. Stuur nooit een adres met sleutel of een volledig token; bij de oudere methode volstaat het prefix van het token.
PrestaShop is een geregistreerd handelsmerk van PrestaShop SA. Claude is een handelsmerk van Anthropic. ChatGPT is een handelsmerk van OpenAI. TellMyShop is met geen van hen verbonden.
Laatst bijgewerkt: 2026-10-04