option('dry-run'); $variants = $shopify->getAllVariants(); $this->info('Shopify-Varianten geladen: ' . count($variants)); $mapped = 0; $skipped = 0; $noSku = 0; foreach ($variants as $variant) { if (empty($variant['sku'])) { $noSku++; continue; } $size = ProductSize::where('sku', $variant['sku'])->first(); if (!$size) { $this->warn(" SKU nicht gefunden: {$variant['sku']} ({$variant['product_title']})"); $skipped++; continue; } if ($size->shopify_variant_id === $variant['id']) { continue; // already correct } if (!$dryRun) { $size->update(['shopify_variant_id' => $variant['id']]); } $this->line(" {$variant['sku']} → Variant-ID {$variant['id']}"); $mapped++; } $this->info("✓ {$mapped} verknüpft" . ($dryRun ? ' (dry-run)' : '')); if ($skipped) $this->warn("⚠ {$skipped} SKUs lokal nicht gefunden"); if ($noSku) $this->warn("⚠ {$noSku} Shopify-Varianten ohne SKU übersprungen"); return self::SUCCESS; } }