feat(seo): add wsc_ai_seo_geo_defined_terms custom field for product and category #17

Merged
csaeum merged 1 commit from feature/custom-field-geo-defined-terms into main 2026-08-08 22:30:15 +00:00
Owner

Zusammenfassung

Neues Custom Field wsc_ai_seo_geo_defined_terms für Produkte und Kategorien. Nimmt JSON-Daten auf, wird headless (z. B. per API/Import) befüllt. Rendering als reine Textarea (mt-textarea), kein WYSIWYG-Editor.

Umsetzung

  • src/Service/CustomFieldsInstaller.php: neues Set wsc_ai_seo_geo ("AI-SEO GEO"), das per zwei Relationen an product UND category hängt (statt zweier getrennter Sets mit demselben Feld-Namen — custom_field.name muss in Shopware global eindeutig sein, siehe Kommentar bei CUSTOM_FIELDS_GEO).
  • addRelation() / uninstallSet() unterstützen jetzt entityName als Array (Set an mehreren Entities).
  • uninstall() entfernt gespeicherte Werte jetzt auch aus category_translation.custom_fields.

Verifikation (DDEV sw6-plugin, real durchgespielt)

  • bin/console plugin:update WSCSWPluginAiSeoTools erfolgreich
  • Genau 1 Datensatz in custom_field für den Key (kein Duplikat)
  • 2 Relationen in custom_field_set_relation: product und category, beide auf dasselbe Set
  • Feld-Konfiguration korrekt: componentName: sw-field, type: textarea
  • Unit-Tests angepasst und grün (5/5)

Closes #16

## Zusammenfassung Neues Custom Field `wsc_ai_seo_geo_defined_terms` für **Produkte** und **Kategorien**. Nimmt JSON-Daten auf, wird headless (z. B. per API/Import) befüllt. Rendering als reine Textarea (`mt-textarea`), kein WYSIWYG-Editor. ## Umsetzung - `src/Service/CustomFieldsInstaller.php`: neues Set `wsc_ai_seo_geo` ("AI-SEO GEO"), das per zwei Relationen an `product` UND `category` hängt (statt zweier getrennter Sets mit demselben Feld-Namen — `custom_field.name` muss in Shopware global eindeutig sein, siehe Kommentar bei `CUSTOM_FIELDS_GEO`). - `addRelation()` / `uninstallSet()` unterstützen jetzt `entityName` als Array (Set an mehreren Entities). - `uninstall()` entfernt gespeicherte Werte jetzt auch aus `category_translation.custom_fields`. ## Verifikation (DDEV `sw6-plugin`, real durchgespielt) - `bin/console plugin:update WSCSWPluginAiSeoTools` erfolgreich - Genau 1 Datensatz in `custom_field` für den Key (kein Duplikat) - 2 Relationen in `custom_field_set_relation`: `product` und `category`, beide auf dasselbe Set - Feld-Konfiguration korrekt: `componentName: sw-field`, `type: textarea` - Unit-Tests angepasst und grün (5/5) Closes #16
Headless-filled JSON field for GEO (Generative Engine Optimization) defined
terms, rendered as a plain textarea without WYSIWYG editor. Uses a shared
custom field set with relations to both "product" and "category" entities
instead of duplicating the field name across two sets, since custom_field.name
must be globally unique in Shopware.

Closes #16
csaeum merged commit db7148c597 into main 2026-08-08 22:30:15 +00:00
csaeum deleted branch feature/custom-field-geo-defined-terms 2026-08-08 22:30:15 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SW-Plugins/wsc_swplugin_aiseotools!17
No description provided.