One-To-One-Association für Produkttabelle

Hallo alles zusammen!

Ich versuche schon seit einieger Zeit eine OneToOne-Association zwischen der Core-Product-Tabelle und einer selbst erstellten Tabelle zu erstellen. Die eigene Tabelle soll einige Zusatztfelder aufnehmen, die aber nicht sprachen bezogen sind, und dadurch nicht durch CustomFields abgebildet werden sollen.

Ich habe die Verbindung mit der Anleitung und mit der Hilfe der Core-Dateien gebaut. Diese funktioniert aber nicht. Wenn ich mein Plugin installiere, funktioniert auch die Liste der Produkte in der Administration nicht mehr. Wenn ich versuche die Liste zu laden bekomme ich eine Fehler meldung in der Console: 

000/api/v3/search/product 500 (Internal Server Error)

Hat jemand eine Idee?

Vielen Dank im Voraus.

Ohne Code können wir dir kaum helfen

1 „Gefällt mir“

@Shyim schrieb:

Ohne Code können wir dir kaum helfen

Danke für die Antwort, dann Probieren wir es mit dem Code:

ProductExtension.php

public function extendFields(FieldCollection $collection): void
{
    $collection->add(
        (new OneToOneAssociationField(
            'extData',
            'id',
            'product_id',
            ExtensionDataDefinition::class,
            false
        ))->addFlags(new CascadeDelete())
    );
}

ExtensionDataDefinition.php

protected function defineFields(): FieldCollection
{
    return new FieldCollection([
        (new IdField('id', 'id'))->addFlags(new PrimaryKey(), new Required()),

        new FkField('product_id', 'productId', ProductDefinition::class),
        
        (new OneToOneAssociationField(
            'product',
            'product_id',
            'id',
            ProductDefinition::class
        ))->addFlags(new CascadeDelete()),

        new StringField('video_code', 'videoCode'),

    ]);
}

 

@spdenis‍ Hat es bei dir mittlerweile funktioniert? Will ebenfalls eine OneToOne erstellen, die Doku behandelt aber nur die ManyToMany.

@Shopware6User schrieb:

@spdenis‍ Hat es bei dir mittlerweile funktioniert? Will ebenfalls eine OneToOne erstellen, die Doku behandelt aber nur die ManyToMany.

Nein, leider nicht. Habe meine Struktur etwas angepasst um keine One-To-One zu verwenden. Aber so als Tipp: in der Erweiterung „Customized Products“ von Shopware AG wird sowas ähnliches gemacht. Vielleicht hilft dir das weiter.