Direkt Zuweisung Kunde zu Produkt

Moin,

wollte mal Fragen ob jmd sowas schon gebaut hat. Ich benötige eine ManyToMany Assoziation Kunde zu Produkt und bestenfalls sollte es eine neue Kategorie für Kunden mit dieser speziellen Assoziation geben. In dieser Kategorie sollen via Produkt-Stream auch nur diese Produkte geladen werden, welche die Direktzuweisung zum eingeloggten Kunden haben.

Ich habe selbst schon was vorbereitet aber irgendwie habe ich das Gefühl dass ManyToMany Assoziationen von zwei Core Entities via Plugin nicht möglich sind?!

VG

Also nochmal zur Anmekung: Diesen Fehler bekomme ich nur wenn ich versuche eine ManyToMany Assoziation zwischen zwei Core Entities aufzubauen. Selbige Assoziation zwischen Core und Custom Entity geht soweit… 

class ProductCustomerDefinition extends MappingEntityDefinition
{
    public const ENTITY_NAME = 'moorl_product_customer';

    public function getEntityName(): string
    {
        return self::ENTITY_NAME;
    }

    protected function defineFields(): FieldCollection
    {
        return new FieldCollection([
            (new FkField('product_id', 'productId', ProductDefinition::class))->addFlags(new PrimaryKey(), new Required()),
            (new ReferenceVersionField(ProductDefinition::class))->addFlags(new PrimaryKey(), new Required()),
            (new FkField('customer_id', 'customerId', CustomerDefinition::class))->addFlags(new PrimaryKey(), new Required()),
            new ManyToOneAssociationField('product', 'product_id', ProductDefinition::class),
            new ManyToOneAssociationField('customer', 'customer_id', CustomerDefinition::class)
        ]);
    }
}

class ProductExtension extends EntityExtension
{
    public function getDefinitionClass(): string
    {
        return ProductDefinition::class;
    }

    public function extendFields(FieldCollection $collection): void
    {
        $collection->add(
            (new ManyToManyAssociationField(
                'moorlCustomers',
                CustomerDefinition::class,
                ProductCustomerDefinition::class,
                'customer_id',
                'product_id'
            ))->addFlags(new Inherited())
        );
    }
}

API Request:
/api/v3/product/ac27b9bf1e724b839d16eb41b7a8f531/extensions/moorlCustomers

{"id":"5985f020dd0d48fd9fbe16890b41fc03"}

API Response:

Wenn ich für customerId den Required-Flag entferne, dann bekomme ich diesen Fehler:

detail: "An exception occurred while executing 'REPLACE INTO moorl_product_customer (product_id, product_version_id, created_at) VALUES ('Y�� �\rH����A�','���jK¾K��u,4%','2020-11-25 11:59:28.189');':↵↵SQLSTATE[HY000]: General error: 1364 Field 'customer_id' doesn't have a default value"

Aber die customerId ist ja wie im vorherigen Bsp im Request Payload enthalten. Also wieso die diese nicht in die Datenbank geschrieben?

@Moorleiche Haben Sie die Ursache für den ‚General error: 1364 Field‘? Ich habe den gleichen Fehler, wenn ich meine Migration einrichte