He desarrollado un motor de búsqueda personalizado para nuestra tienda Magento y estoy tratando de cargar la colección de productos en un orden muy específico (he clasificado los resultados según un algoritmo que diseñé) .Magento obtener una colección de productos en un orden arbitrario
puedo cargar la colección producto correctamente, sin embargo, no está en el orden que me gusta estar aquí es básicamente la forma en que está trabajando ahora:.
Mi consulta de base de datos, básicamente, vuelve con un PHP matriz de ID de productos. Para este ejemplo vamos a decir que se parece a esto:
$entity_ids = array(140452, 38601);
Ahora puede transponer el 140452 y el 38601 y la colección producto viene de nuevo en el mismo orden cada vez. Me gustaría que la colección de productos esté en el mismo orden que la ID de los ID de la entidad.
El código que estoy utilizando para crear mi colección es el siguiente:
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array('in' => $entity_ids))
->setPageSize($results_per_page)
->setCurPage($current_page)
->load();
¿Hay una manera de establecer el orden de clasificación a estar a la orden del array $ entity_ids?
que pueden haber leído mal la pregunta, pero creo que quiere a la orden de la matriz que tiene actualmente en PHP (que no necesariamente se correlaciona a cualquier columna en el DB). Esto debería darle clasificación por cualquier columna, pero tendría que volver a poner los datos en la base de datos. –
Ah, sí, he leído mal la pregunta. SO Burnout, creo. –
Pregunta actualizada con más respuesta correcta. –