Code Duplication    Length = 24-24 lines in 2 locations

Components/VariantConfigurator.php 2 locations

@@ 290-313 (lines=24) @@
287
        return $option;
288
    }
289
290
    private function addGroupTranslation(Group $group, Product $product)
291
    {
292
        /** @var \Shopware\Connect\Struct\Translation $translation */
293
        foreach ($product->translations as $key => $translation) {
294
            if (!array_key_exists($group->getName(), $translation->variantLabels)) {
295
                continue;
296
            }
297
298
            /** @var \Shopware\Models\Shop\Locale $locale */
299
            $locale = $this->getLocaleRepository()->findOneBy(['locale' => LocaleMapper::getShopwareLocale($key)]);
300
301
            /** @var \Shopware\Models\Shop\Shop $shop */
302
            $shop = $this->getShopRepository()->findOneBy(['locale' => $locale]);
303
            if (!$shop) {
304
                continue;
305
            }
306
307
            foreach ($translation->variantLabels as $groupKey => $groupTranslation) {
308
                if ($groupKey === $group->getName()) {
309
                    $this->translationGateway->addGroupTranslation($groupTranslation, $group->getId(), $shop->getId());
310
                }
311
            }
312
        }
313
    }
314
315
    private function addOptionTranslation(Option $option, Product $product)
316
    {
@@ 315-338 (lines=24) @@
312
        }
313
    }
314
315
    private function addOptionTranslation(Option $option, Product $product)
316
    {
317
        /** @var \Shopware\Connect\Struct\Translation $translation */
318
        foreach ($product->translations as $key => $translation) {
319
            if (!array_key_exists($option->getName(), $translation->variantValues)) {
320
                continue;
321
            }
322
323
            /** @var \Shopware\Models\Shop\Locale $locale */
324
            $locale = $this->getLocaleRepository()->findOneBy(['locale' => LocaleMapper::getShopwareLocale($key)]);
325
326
            /** @var \Shopware\Models\Shop\Shop $shop */
327
            $shop = $this->getShopRepository()->findOneBy(['locale' => $locale]);
328
            if (!$shop) {
329
                continue;
330
            }
331
332
            foreach ($translation->variantValues as $optionKey => $optionTranslation) {
333
                if ($optionKey === $option->getName()) {
334
                    $this->translationGateway->addOptionTranslation($optionTranslation, $option->getId(), $shop->getId());
335
                }
336
            }
337
        }
338
    }
339
340
    private function getShopRepository()
341
    {