[Magento] Mettre certains produits au début d'un tableau en renseignant leurs Sku

le but de ce snippet est de trier un tableau de produit en mettant en avant 1 (ou plusieurs) de ces produits.

on va créer un helper qui prend en paramètre un tableau de produits et un autre définissant l'odre des sku qui nous intéressent

allez dans le Data.php (ou autre helper) du dossier helper de votre module et collez le code suivant :

    /**
     * trie un tableau en mettant les elements de order en premier
     * et retourne le tableau passé en param
     *
     * @param array $array
     * @param array $order
     */
    public function orderProductsArray(&$array, $order = array())
    {
        if(!empty($order)) {
            if(!empty($array)) {
                $new_array = array();
                foreach($array as $index => $ele) {
                    if(($pos = array_search($ele->getSku(), $order)) !== false) {
                        $new_array[$pos] = $ele;
                        unset($array[$index]);
                    }
                }
                ksort($new_array);
                array_splice($new_array, count($new_array), 0, $array);
                $array = $new_array;
            }
        }
    }


//exmple d'utilisation :
Mage::helper('NOM-DE-MON-MODULE')->orderProductsArray($produtsTab, array('sku-du-prod-a-mettre-en-premier', 'sku-du-second-prod')); 
//cette exemple met les objets des 2 sku passé en param au début du tableau (et tout le reste par la suite)

categorie: