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.