Existem várias maneiras de fazer isso ... mas apenas se você quiser seguir o fluxo exatamente da mesma forma que no seu site de exemplo.
O mais importante é que o exemplo que você deu adiciona produtos como produtos individuais. Portanto, o truque aqui - é fazer o usuário pensar que é uma página de produto único, mas na verdade você precisa agrupar produtos e produzi-los como se fossem um único item. Mas todas essas opções - são 4 produtos diferentes no Magento. E eles não estão dentro do pacote. É um fluxo bastante "agradável e fácil" que não freia a funcionalidade do Magento-way :)
Para fazer isso - apenas agrupe produtos, por exemplo, por algum campo de Atributo personalizado, por tempo de SKU especial (por exemplo, SKU-GROUP-1, SKU-GROUP-2, etc), defina-os como relacionados ou etc etc etc. ESTEJA em algum lugar após o carregamento do produto - tente carregar esses produtos adicionais e salve dentro de um "principal". Do que apenas a saída de estilo, como o exemplo de site de exemplo fez - então eles parecem ser uma única página de produto.
Isso funcionou como um encanto no meu caso e funciona muito rápido. Confira:
https://www.conranshop.co.uk/home-accessories/bedroom-linen/citrine-bed-linen-collection.html
EDITAR:
Lógica M1:
Crie um novo atributo do produto chamado "SKUs vinculados" (linkedSKU) - campo de texto (varchar).
Inclua observador para ação de front-end: catalog_product_load_after. Dentro desta ação, verifique o valor do atributo "linkedSKU" que será "SKUs separados por vírgula", por exemplo, "SKU1, SKU2, SKU3". Carregue cada produto por SKU e salve dentro do objeto principal do produto. Por exemplo
$productIDs = explode(',',$product->getLinkedSKU());
foreach($productIDs as $pid) $productsLoaded[] = Mage::getModel('cat/prod')->load($pid);
$product->setLinkedSkuProducts($productsLoaded);
- Em FE, na visualização do produto, phtml - se houver algo dentro
$product->getLinkedSkuProducts()
e além da saída de cada produto como bloco de tyled.
Portanto, em admin, você pode definir o atributo "Produto principal" com a lista de SKUs que serão carregados nesse objeto principal.