# Sprachenindividueller Variantenlink

**URL:** <https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832>\
**Category:** Programmierung\
**Created:** [1. Februar 2018 um 07:48 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832 "2018-02-01T07:48:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [1. Februar 2018 um 07:48 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/1 "2018-02-01T07:48:26Z")

</div>

Hey Shopware-Gemeinde, eine Frage:&nbsp;

wir haben ein kleines Plugin was uns eine Variante als Bild mit hinterlegtem Link in den Einkaufswelten anzeigen lässt. Der Link wird dabei über folgende Variable erzeugt:&nbsp;$sArticle.linkVariantDetails

Leider gibt die Variable jedoch immer die deutsche Detailsseite aus. Als wenn der Kunde auf der Home ENG wählt und in der Einkaufswelt dann auf das entsprechende Bild klickt wird er zur&nbsp;deutschen Variante gebracht. Weiss jemand wie ich die Variable Sprachenindividuel ausgeben kann?&nbsp;

Im Endeffekt geht es doch nur darum im Browser den korrekten Link anzuhängen… Kann mir jemand helfen?&nbsp;

Danke!! VG Fabian&nbsp;

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [1. Februar 2018 um 08:34 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/2 "2018-02-01T08:34:16Z")

</div>

Also habt ihr ein eigenes Einkaufswelt erstellt. Wie befüllt ihr denn die Variable $sArticle ?

Viele Grüße

---

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [1. Februar 2018 um 08:41 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/3 "2018-02-01T08:41:03Z")

</div>

Ein eigenes Widget für die Einkaufswelt ja genau. Hab folgendes in der Bootstrap gefunden:

```
// Detail-Page Link
            $query = Shopware()->Db()->executeQuery('
                SELECT path
                FROM s_core_rewrite_urls
                WHERE org_path LIKE "' . str_replace('shopware.php?', '', $data['linkDetails']) . '" AND main=1
            ');

            $result = $query->fetchColumn();

            $data['linkVariantDetails'] = !empty($result) ? '/' . $result . '?number=' . $data['ordernumber'] : $data['linkDetails'];

            $aPicturesVariants = Shopware()->Modules()->Articles()->sGetArticlePictures($data['articleID'], false, 0, $data['ordernumber']);
            if (count($aPicturesVariants)) {
                $data['secondImage'] = $aPicturesVariants[0];
            }

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [1. Februar 2018 um 08:47 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/4 "2018-02-01T08:47:35Z")

</div>

Ähh ja. Das ist ja auch total falsch. Es gibt dafür extra Methoden, die dir die Daten des Artikels zur Verfügung stellen. Den Link direkt aus einer DB-Tabelle zu holen, ist eine ganz schlechte Idee. Dadurch erhälst du keine Übersetzungen.

Schau dir mal das StorefrontBundle an. Dort gibt es einen ProductService. Damit kannst du dir die Daten eines Artikels laden. Danach kannst du es mit dem LegacyStructConverter noch für das Template aufbereiten.

Den Code oben kannst du dann gleich mal wegschmeißen 😉

Viele Grüße

---

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [1. Februar 2018 um 08:59 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/5 "2018-02-01T08:59:34Z")

</div>

Sag das nicht, wir haben dafür bezahlt&nbsp; ![Undecided](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/8ae622c50104e84c5003fedfcc22572813a67b41.png "Undecided")

Danke für den Hinweis schonmal. Noch eine Frage … ich weiss nun das der Code nicht sauber ist, aber es gibt keine einfache Übergangslösung oder? Das implementieren mit den Productservices wird ja doch etwas zeit in Anspruch nehmen!&nbsp;

VG&nbsp;

---

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [5. Februar 2018 um 13:27 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/6 "2018-02-05T13:27:34Z")

</div>

Niemand noch eine Idee? Danke!&nbsp;

---

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [5. Februar 2018 um 14:01 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/7 "2018-02-05T14:01:25Z")

</div>

@simkli‍

Ich präzisiere nochmals … momentan wird ein Link nach dem folgenden Schema erstellt:&nbsp;

```
// Detail-Page Link
            $query = Shopware()->Db()->executeQuery('
                SELECT path
                FROM s_core_rewrite_urls
                WHERE org_path LIKE "' . str_replace('shopware.php?', '', $data['linkDetails']) . '" AND main=1
            ');

            $result = $query->fetchColumn();

            $data['linkVariantDetails'] = !empty($result) ? '/' . $result . '?number=' . $data['ordernumber'] : $data['linkDetails'];

```

also zum Beispiel „/Schuhe/191/Rome?number=SW10191.82“

kann ich den Code so anpassen, dass er nur noch folgendes ausgibt:&nbsp;

„191/Rome?number=SW10191.82“&nbsp;

Dann würde der Link einfah an den bestehenden hinten drangehängt werden und es gäbe keine Probleme mit der Sprache … Wenigstens als Übergangslösung&nbsp;

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [6. Februar 2018 um 08:38 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/8 "2018-02-06T08:38:17Z")

</div>

Kannst du mal folgende Zeile&nbsp;

```
$data['linkVariantDetails'] = !empty($result) ? '/' . $result . '?number=' . $data['ordernumber'] : $data['linkDetails'];

```

durch diese ersetzen:

```
$data['linkVariantDetails'] = !empty($result) ? $data['linkDetails']. '?number=' . $data['ordernumber'] : $data['linkDetails'];

```

Dann sollte der gesamte Link in linkVariantDetails drin stehen.

&nbsp;

Ich vermute der Code macht folgendes: Falls es sich um eine Variante handelt, dann verlinke direkt auf die Variante. Schöner fände ich, wenn man einfach abfrägt, ob die Artikelnummer nicht der Hauptartikelnummer entspricht und ggf. dann das ?number= anhängt.

Viele Grüße

---

<div class="post-metadata">

**Author:** ![fabianknorr](https://avatars.discourse-cdn.com/v4/letter/f/4491bb/32.png) [@fabianknorr](https://forum.shopware.com/u/fabianknorr)\
**Post date:** [10. Februar 2018 um 12:49 UTC](https://forum.shopware.com/t/sprachenindividueller-variantenlink/50832/9 "2018-02-10T12:49:12Z")

</div>

@simkli‍

Hi Simkli, nochmals danke für deine schnelle Antwort. Auf den ersten Blick hat es auch funktioniert. Leider ging im Anschluss der Konfigurator leider nicht mehr … &nbsp;mh&nbsp;

Meinst du das das erzeugen des Links in der Form:&nbsp;

“191/Rome?number=SW10191.82”

statt

“/Schuhe/191/Rome?number=SW10191.82”

möglich ist?&nbsp;

&nbsp;

Danke dir! VG
