TL; DR : Czy jest jakiś powód, dla którego proste produkty powiązane z produktem konfigurowalnym muszą mieć ten sam zestaw atrybutów, co sam produkt konfigurowalny? Mam na myśli, czy jest jakiś powód techniczny ? Znam przyczynę „zdrowego rozsądku”. Jeśli sprzedajesz parę butów, wszystkie wersje w zależności od koloru i rozmiaru muszą być również butami .
Wersja długa : miałem za zadanie „scalić” niektóre konfigurowalne produkty. Mam na myśli z 2 lub więcej, aby zrobić tylko jeden. Nie chciałem robić ich ręcznie ze względu na ilość produktów i nie chciałem przejść$product->load(..)->set...()->save()
ze względu na czas potrzebny na uruchomienie skryptu. W ten sposób zwarłem proces, ponieważ byłem pewien, że żaden z prostych produktów się nie pokrywa. Było unikalne połączenie wielkości i koloru. Ja to zrobiłem:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
gdzie $simpleProductIds
jest tablica wszystkich prostych identyfikatorów produktów powiązanych z konfigurowalnymi produktami, które należy scalić.
Działa to doskonale dla większości produktów, ale było kilka, które mają problemy.
Gdybym zadzwonił
$productIds = $product->getTypeInstance()->getUsedProductIds()
Otrzymałbym wszystkie proste identyfikatory produktów, ale w backendie pojawiło się tylko kilka z nich. Po pewnym czasie kopania odkryłem, że jedynymi, które zostały pokazane, były te z tym samym zestawem atrybutów, co produkt konfigurowalny. Drugi zestaw atrybutów jest bardzo podobny do pierwszego, tylko kilka drobnych różnic, ale zawiera konfigurowalne atrybuty (rozmiar i kolor).
A teraz dziwna rzecz. W interfejsie spodziewałem się zobaczyć wszystkie produkty ($ productIds w powyższym kodzie) lub tylko produkty z tego samego zestawu atrybutów. Cóż, było coś pomiędzy.
- 20 powiązanych identyfikatorów produktów - 5 rozmiarów, 4 kolory
- 10 powiązanych produktów w zapleczu - 5 rozmiarów, 2 kolory - pozostałe 2 kolory (10 produktów) miały inny zestaw atrybutów
- 15 kombinacji w interfejsie - 5 rozmiarów 3 kolory (???)
Udało mi się rozwiązać problem, zmieniając zestaw atrybutów dla produktów, które nie pojawiły się, ale nadal jestem zdziwiony.
Uwaga : nie próbuj tego w domu. Możesz też wypróbować go w domu, ale nie na serwerze na żywo.
Używamy rozszerzenia o nazwie RapidFlow firmy Unirgy (którego nie mogę wystarczająco polecić) do importu i eksportu. Jedna z funkcji wersji Pro umożliwia zmianę zestawów atrybutów. Kolejnym jest tworzenie produktów poprzez import CSV. Czasami tworzymy nowe proste produkty do konfiguracji, a czasem przez przypadek te proste produkty mają inne zestawy atrybutów niż ich rodzice.
Rapidflow z przyjemnością zaimportuje te produkty i zmieni zestawy atrybutów. Nie jesteśmy zadowoleni z wyników. Konfigurowalne produkty, które są skonfigurowane za pomocą atrybutów poza ich zestawem atrybutów, nie są renderowane przez administratora produktu i muszą zostać naprawione. Jeśli nie zmienimy zestawu atrybutów rodzica, jak zauważyłeś, dzieci po prostu nie zostaną poprawnie powiązane z rodzicem. Istnieją jako encje Magento, mogą być edytowane, ale nie pojawią się jako dzieci na stronie produktu lub na powiązanej liście produktów konfigurowalnego rodzica.
Z czysto technicznego punktu widzenia proste produkty mogą mieć inny zestaw atrybutów niż ich elementy nadrzędne. Ale ponieważ takie zachowanie nie jest obsługiwane, nawet w EE, a więc Razor Razam mówi, że podczas projektowania Magento twórcy Varien nie widzieli takiej potrzeby.
źródło