Télécharger versions 1.6 de Prestashop (MAJ 12/09/15)

septembre 12th, 2015 | by | prestashop

Sep
12

Voici les versions 1.6 de Prestashop.

Voir toutes les versions de prestashop

No Comments »

Quel est la différence entre getAllVisibleItems() et getAllItems() ?

septembre 12th, 2015 | by | magento

Sep
12

Avant de voir les résultats obtenus en appelant ces 2 fonctions, voyons déjà ce qu'elles ont dans le ventre.

Ces fonctions sont utilisées pour récupérer tous les produits d'une commande :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Charger une commande spécifique
$order_id = 100000123;
$order = Mage::getModel("sales/order")->load($order_id);
 
$items = $order->getAllItems(); 
// Ou
$items = $order->getAllVisibleItems();
 
foreach ($items as $itemId => $item)
{
    echo "SKU : ".$item->getSku()."<br />";
    /* d'autres infos :
    $item->getName();
    $item->getPrice();
    $item->getProductId();
    $item->getQtyOrdered();*/
}

Avec le code ci-dessus, on récupère une commande et affiche les infos des produits.

Voyons maintenant le code de chacune des deux fonctions qui nous intéressent :

1
2
3
4
5
6
7
8
9
10
public function getAllItems()
{
    $items = array();
    foreach ($this->getItemsCollection() as $item) {
       if (!$item->isDeleted()) {
          $items[] = $item;
       }
    }
    return $items;
}
1
2
3
4
5
6
7
8
9
10
public function getAllVisibleItems()
{
    $items = array();
    foreach ($this->getItemsCollection() as $item) {
       if (!$item->isDeleted() && !$item->getParentItemId()) {
          $items[] = $item;
      }
    }
    return $items;
}

Comme on peut le voir la seule différence se situe dans la condition avec l'ajout de && !$item->getParentItemId()

Qui ne récupèrent les produits, que s'ils sont parents. Cela signifie que si vous avez un produit configurable dans votre commande/panier getAllVisibleItems ne récupèrera que le produit parent alors que
getAllItems récupèrera les 2 produits (parent ET enfant)

Avec getAllItems() :

SKU : TsIbiza
Nom : Tshirt Ibiza
Prix : 24.9200
ID : 17212
quantité : 1.0000
SKU : TsIbizaFit
Nom : Tshirt Ibiza Fitness
Prix : 0.0000
ID : 17213
quantité : 1.0000

Avec getAllVisibleItems()

SKU : TsIbiza
Nom : Tshirt Ibiza
Prix : 24.9200
ID : 17212
quantité : 1.0000

Pour conclure, il est préférable d'utiliser getAllVisibleItems pour avoir la quantité exacte de produits.

No Comments »

Réorganiser les blocks dans les fichiers xml des layout

septembre 12th, 2015 | by | magento

Sep
12

Pour afficher les blocks dans les différentes positions de votre template (exemple : left, right, content…) Magento utilise les fichiers xml qui se trouvent dans le dossier "app\design\frontend\default\VOTRE_THEME\layout". Pour changer la façon, l'endroit ou même l'ordre d'affichage, cela est très simple.

Magento met à disposition des outils pour pouvoir attribuer des blocs de contenu à des blocs structurels.
Exemple : un bloc cms d'un encart promos dans la colonne droite du template.
Pour cela, il va falloir modifier les fichiers layout correspondant à la page où l'on veut afficher notre bloc de contenu. On va pouvoir les déplacer et les ordonner comme l'on souhaite.

Pour changer l'ordre, commencez par trouver le block que vous voulez déplacer.
Exemple pour déplacer le bloc pour comparer les produits :

1
2
3
4
5
6
7
<reference name="right">
            <block type="catalog/product_compare_sidebar" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
        </reference>
 
        <reference name="left">
            <block type="catalog/product_compare_sidebar" before="-" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
        </reference>

Pour afficher le bloc en premier :

1
before="-"

Pour afficher le bloc en dernier :

1
after="-"

Pour afficher un bloc avant un autre bloc :

1
before="block_name"

Pour afficher un bloc après un autre bloc :

1
after="block_name"

No Comments »

Désactiver la redirection automatique lors de l’ajout d’un produit au panier

mars 26th, 2015 | by | magento

Mar
26

Il y a 2 cas d'école lorsque l'on ajoute un produit à son panier : rediriger le client vers le panier récapitulatif ou bien laisser la personne sur la page (AJAX ou redirection vers la page originale).
Par défaut magento envoie le client vers le panier.

Désactiver la redirection automatique lors de l'ajout d'un produit au panier

Pour choisir la seconde option, point besoin de mettre les mains dans le cambouis c'est simplement une option :
Système -> Configuration -> Ventes -> Commander -> Panier -> "Rediriger vers le panier après l'ajout d'un produit"
Nous parlerons peut-être bientôt d'une version AJAX sans module...

 

No Comments »

Récupérer le chemin de la photo en cache d’un produit Magento

janvier 22nd, 2015 | by | magento

Jan
22

 

Vous pouvez récupérer le chemin de la photo en cache d'un produit ainsi que de la vignette avec ce petit bout de code :

1
2
3
4
$productId = 23; // ID produit
$product = Mage::getModel('catalog/product')->load($productId); // chargement du produit
$imageUrl = $product->getImageUrl(); // chemin de l'image
$imageThumbnailUrl = $product->getThumbnailUrl(); // chemin de la vignette

Le résultat ressemblera à :

1
2
http://www.mon-site.com/media/catalog/product/cache/1/image/265x/9df78eab33525d08d6e5fb8d27136e95/p/r/produit_15_cm_1.jpg
http://www.mon-site.com/media/catalog/product/cache/1/thumbnail/75x75/9df78eab33525d08d6e5fb8d27136e95/p/r/produit_15_cm_1.jpg

Les images des produits en cache se trouvent dans le dossier /media/catalog/product/cache/X/
avec X qui correspond à l'identifiant de votre magasin.
Ensuite ici dans notre exemple pour /p/r/, c'est les 2 premières lettres du nom du fichier pour ranger les images dans des dossiers.

Pour tout savoir de la création des URL des images produits voilà un petit lien : Deconstructing the cache image path on Magento

 

No Comments »