Das meiste habe ich tatsächlich der Shopware Doku entnommen. Symfony Kenntnisse habe ich kaum. Ich komme eigentlich aus der Magento Schiene, dort funktionieren ein paar Grundkonzepte sehr ähnlich, nur ungefähr 3x komplizierter. Unabhängig davon, muss man auch bei Shopware in den Code schauen, wenn man herausfinden will, wie Dinge tatsächlich funktionieren.
Was deine Frage angeht, bin ich nicht sicher, ob ich dich korrekt verstanden habe. Ich antworte mal in der Annahme, dass du die Felder eben in dem jeweiligen Artikel in der Adminoberfläche pflegen willst.
Dafür reicht es, soweit ich das bis jetzt beobachten konnte, wenn du ein Custom Field Set erstellst (welchem logischerweise deine Customfields zugeordnet sind) und dieses Custom Field Set mit dem Artikel Datentyp verknüpfst.
Damit hast du automatisch bereits eine Anzeige deines Custom Field Sets mit den entsprechenden Customfields, welches du bei den Artikeln pflegen kannst.
Somit musst du auch selbst gar nichts mehr in Vue anpassen.
Also angenommen du erstellst dein Custom Field Set und deine Custom Fields wie folgt:
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
$customFieldSetRepository->create(
[
[
'name' => 'swag_backback',
'config' => [
'label' => [
'en-GB' => 'Custom Fieldset',
'de-DE' => 'Custom Fieldset'
]
],
'customFields' => [
[
'name' => 'swag_backpack_size',
'type' => CustomFieldTypes::INT,
'config' => [
'componentName' => 'sw-field',
'customFieldType' => 'text',
'label' => [
'en-GB' => 'Swag Backpack Size',
'de-DE' => 'Swag Backpack Size',
]
],
'active' => true
],
[
'name' => 'swag_backpack_color',
'type' => CustomFieldTypes::TEXT,
'config' => [
'componentName' => 'sw-field',
'customFieldType' => 'text',
'label' => [
'en-GB' => 'Swag Backpack Color',
'de-DE' => 'Swag Backpack Color',
]
],
'active' => true
],
],
'relations' => [
[
'entityName' => 'product'
]
]
]
], $context->getContext()
);
Dann solltest du, wenn alles gut geht, im Adminbereich bei der Detailansicht eines Artikels im Reiter „Allgemein“, wenn du entsprechend runterscrollst, den Bereich „Zusatzfelder“ mit deinen eigenen CustomFields finden. Sollte ungefähr so aussehen:
Ich hab das jetzt nicht selbst geprüft, aber in ähnlicher Form habe ich das bereits auf diese Weise umgesetzt.
Vielleicht musst du daher noch ein wenig an der Definition des Custom Fieldsets und Customfields feilen.
Eine gute Referenz um nachzuvollziehen, wie Custom Fields und Field Sets und mit welchen Optionen erstellt werden können, sind die Generatoren der Demodaten.
Wenn man sich z.B. https://github.com/shopware/platform/blob/master/src/Core/Framework/Demodata/Generator/CustomFieldGenerator.php sowie die dadurch erzeugten Datensätze dann in der Datenbank ansieht, bekommt man schon eine sehr gute Idee davon, wie der Code für die eigenen Custom Fields aussehen muss.