TL; DR : ¿Hay alguna razón por la cual los productos simples asociados a un producto configurable tienen que estar en el mismo conjunto de atributos que el producto configurable en sí? Quiero decir, ¿hay alguna razón técnica ? Sé la razón del "sentido común". Si vende un par de zapatos , todas las versiones según el color y el tamaño también deben ser zapatos .
Versión larga : tuve la tarea de "fusionar" algunos productos configurables. Quiero decir de 2 o más para hacer solo uno. No quería hacerlo manualmente debido a la cantidad de productos y no quería pasar por$product->load(..)->set...()->save()
debido a la cantidad de tiempo que llevó ejecutar el script. Así que cortocircuité el proceso porque estaba seguro de que ninguno de los productos simples se superponía. Había una combinación única de tamaño y color. Hice esto:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
donde $simpleProductIds
hay una matriz de todos los identificadores de productos simples asociados a todos los productos configurables que deben fusionarse.
Esto funcionó perfectamente para la mayoría de los productos, pero había algunos que tenían problemas.
Si llamara
$productIds = $product->getTypeInstance()->getUsedProductIds()
Obtendría todos los identificadores de productos simples, pero en el backend aparecieron solo algunos. Después de excavar por un tiempo descubrí que los únicos que se mostraban eran los del mismo conjunto de atributos que el producto configurable. El otro conjunto de atributos es muy similar al primero, solo algunas diferencias menores, pero contiene los atributos configurables (tamaño y color).
Y ahora lo extraño. En la interfaz, esperaba ver todos los productos ($ productIds en el código anterior) o solo los productos en el mismo conjunto de atributos. Bueno, había algo en medio.
- 20 identificadores de producto asociados: 5 tamaños, 4 colores
- 10 productos asociados en el backend - 5 tamaños, 2 colores - los otros 2 colores (10 productos) estaban en un conjunto de atributos diferente
- 15 combinaciones en la interfaz - 5 tamaños 3 colores (???)
Pude resolver el problema cambiando el conjunto de atributos para los productos que no aparecían, pero todavía estoy desconcertado.
Nota : No intentes esto en casa. O puede probarlo en casa pero no en un servidor en vivo.
Utilizamos una extensión llamada RapidFlow de Unirgy (que no puedo recomendar lo suficiente) para importar y exportar. Una de las características de la versión Pro permite cambiar los conjuntos de atributos. Otra es la creación de productos a través de la importación CSV. Ocasionalmente creamos nuevos productos simples para configurables, y a veces, por accidente, esos productos simples tienen diferentes conjuntos de atributos que sus padres.
Rapidflow importará felizmente estos productos y cambiará los conjuntos de atributos. Tendemos a no estar contentos con los resultados. Los productos configurables que están configurados por atributos fuera de su conjunto de atributos no se procesan en el administrador del producto y deben repararse. Si no cambiamos el conjunto de atributos del padre, como usted ha notado, los hijos simplemente no se asocian correctamente con su padre. Existen como entidades de Magento, se pueden editar, pero no aparecerán como elementos secundarios en la página de productos front-end o en la lista de productos asociados configurables de los padres.
Entonces, desde un punto de vista puramente técnico, es posible que los productos simples estén en un conjunto de atributos diferente al de sus padres. Pero como este comportamiento no es compatible, incluso en EE, y la Navaja de Occam dice que cuando diseñaron Magento, los desarrolladores de Varien no vieron la necesidad.
fuente