Stammproduktnummer im Template herausfinden

Hallo,
ich versuche die Stammproduktnummer einer Produkt Variante herauszufinden, die Varianten Produktnummer erhalte ich via:

{{ page.product.productNumber }}

In der ProductEntity Datenstruktur konnte ich keinen Hinweis finden: platform/ProductEntity.php at trunk · shopware/platform · GitHub

Ich habe bei der Variante bspw.: SW10005.8 und erwarte zusätzlich die Stammnummer SW10005. Dabei möchte ich nicht darauf hoffen, dass alle Shops der Separation mit Punkt einhalten.

Vielen Dank für Hilfe.

Bei mir ging das

{% if page.extensions.tsParentProduct.productNumber %}
   {{ page.extensions.tsParentProduct.productNumber }}
{% else %}
   {{ page.product.productNumber }}
{% endif %}

Ich weiß gerade aber nicht genau, von welchem Plugin die Werte kommen. Ich schau mal ob ich das raus finde. Melde mich.

maybe von dem hier

Hier ein unschöner Quick-Fix:

{% if page.product.parentId and "." in page.product.productNumber %}
    {% set parentNumber = page.product.productNumber|split(".")[1] %}
{% endif %}

Der funktioniert natürlich nur dann, wenn das Format parentNumber.childNumber eingehalten wird.

Am besten machst du dir in einem Plugin einen Subscriber auf ProductPageCriteriaEvent und erweiterst die Assotiations in $criteria um parent (ungetestet):

    public static function getSubscribedEvents(): array
    {
        return [
            ProductPageCriteriaEvent::class => 'onProductPageCriteria',
        ];
    }

    public function onProductPageCriteria(ProductPageCriteriaEvent $event): void
    {
        $criteria->addAssociation('parent');
    }

Dann hast du im Template den Parent-Artikel:

{{ page.product.parent.productNumber }}

Hallo,
danke für die Antworten. Ich sollte vielleicht noch erwähnen, dass ich da ganze im App Kontext mache. Daher funktionieren die vorgeschlagenen Lösungen nicht wirklich.
Ich habe page.product „gedumpt“ und die parentId ist vorhanden. Wie könnte ich anhand dieser die Produktnummer im Template ermitteln?

edit:

Das liefert mir null:

  {% set matchedProducts = services.repository.search('product', { 'ids': [ page.product.parentId ] }) %}
  {{ dump(matchedProducts) }}
{{ matchedProducts.first.productNumber }}

Wenn matchedProducts aber null ist, hat die App wahrscheinlich nicht die benötigten Rechte. In der Doku steht:

The repository service allows you to query data, that is stored inside shopware. Keep in mind that your app needs to have the correct permissions for the data it queries through this service.

Ich habe es jetzt mit der Permission

<read>product</read>

versucht. Leider ohne Erfolg. Ist es die falsche Persmission?