Magento

Aujourd’hui je démarre une série de posts (totalement HS) sur Magento, par curiosité personnelle, avec pour objectif d’en apprendre un peu plus sur la gestion du catalogue produits au travers de l’api en version 2.
C’est le manque de documentation, ou mon incapacité à l’a trouver, qui m’incite à démarrer cette série.

A l’heure actuelle, mes tests se basent sur la version 1.7.0.0-beta1 1.7.0.0-rc1 de Magento téléchargeable ici : http://www.magentocommerce.com/download

NB : 15 avril 2012
Suite à une mise à jour vers la version 1.7.0.0-rc1, certains menus ont changé et peuvent ne plus correspondre à mes captures d’écran. Dans le mesure du possible, je vais reprendre les anciens posts pour les mettre à jour.

Index des posts :

Attributs

Produits

Magento API v2 : Posts à venir…

Dans les posts suivants, nous allons…

  • Créer les attributs « color » et « size » et créer des options ( xs,s,m,… rouge,jaune,…) @todo
  • Ajouter les attributs « color » et « size » à notre set d’attributs
  • Création d’un produit « simple » de couleur « rouge » et de taille « xs »
  • Créer plusieurs produits « simples » en variant les options des attributs « color » et « size »
  • Nous écarter de l’API pour créer massivement des produits « simples » à l’aide d’un fichier CSV
  • Et finalement créer des produits « configurables » à partir de nos produits « simples »

Magento API v2 : Ajout des attributs « color » et « size » dans notre set d’attributs.

Première étape de notre « programme« …
Magento attributs non assignés

<?php

// =========================================================
// --- Ajout des attributs "color" - Magento SOAP API v2 ---
// --- et "size" dans notre set    - Magento SOAP API v2 ---
// =========================================================
 
/* ->catalogProductAttributeSetAttributeAdd()
 * 
 * Attribut "color" : ID = 92
 * Attribut "size"  : ID = 138
 * 
 * Arguments :
 * 
 * - string sessionId        : Identifiant de session.
 * - string attributeId      : Identifiant de l'attribut. 
 *                     Voir ->catalogProductAttributeInfo()
 * - string attributeSetId   : Identifiant du set.
 *                     Voir ->catalogProductAttributeSetList()
 * - string attributeGroupId : Identifiant du groupe dans le set.
 *                     null = groupe par defaut (general)
 *                     Voir ->catalogProductAttributeSetGroupAdd()
 * - string sortOrder        : 0 = defaut
 * 
 * */

$urlApi   = 'http://magento.local/index.php/api/v2_soap?wsdl=1';
$username = 'username';
$apiKey   = 'apiKey';
 
$soapClient = new SoapClient($urlApi);

// Arguments :

$sessionId        = $soapClient->login($username, $apiKey);
$attributeSetId   = '9';  // Voir catalogProductAttributeSetList()
$attributeGroupId = null; // Groupe "General"
$sortOrder        = '0';

$attributs = array(
    'color' => 92,        // Voir catalogProductAttributeInfo()
    'size'  => 138        // Voir catalogProductAttributeInfo()
);
        
// ---

foreach ( $attributs as $attributeCode => $attributeId )
{
    try {
        $soapClient->catalogProductAttributeSetAttributeAdd( 
                                                $sessionId, 
                                                $attributeId,
                                                $attributeSetId, 
                                                $attributeGroupId,
                                                $sortOrder      );
    } catch (Exception $e) {

        echo '
            FILE : '.$e->getFile()          .'<br>
            ERROR: '.$e->getMessage()       .'<br>
            <tt><pre>
        ';

        print_r($e);
    }
}

echo 'FIN';

?>

Executez votre programme et admirez le résultât.
Magento attributs assignés

Magento API v2 : Ajouter un attribut dans un set

Après la création d’un set d’attributs, d’un groupe à l’intérieur du set, et finalement la création de l’attribut, voici le moment d’associer notre attribut au set.

<?php

// ==========================================================
// --- Ajouter un attribut à un set - Magento SOAP API v2 ---
// ==========================================================
 
/* ->catalogProductAttributeSetAttributeAdd()
 * 
 * Arguments :
 * 
 * - string sessionId        : Identifiant de session.
 * - string attributeId      : Identifiant de l'attribut. 
 *                     Voir ->catalogProductAttributeInfo()
 * - string attributeSetId   : Identifiant du set.
 *                     Voir ->catalogProductAttributeSetList()
 * - string attributeGroupId : Identifiant du groupe dans le set.
 *                             null = groupe par defaut (general)
 *                     Voir ->catalogProductAttributeSetGroupAdd()
 * - string sortOrder        : 0 = defaut
 * 
 * */
 
$urlApi   = 'http://magento.local/index.php/api/v2_soap?wsdl=1';
$username = 'username';
$apiKey   = 'apiKey';
 
$soapClient = new SoapClient($urlApi);

// Arguments :

$sessionId        = $soapClient->login($username, $apiKey);
$attributeId      = '134'; // catalogProductAttributeInfo()
$attributeSetId   = '9';  // catalogProductAttributeSetList()
$attributeGroupId = '25';  // catalogProductAttributeSetGroupAdd()
$sortOrder        = '0';

// ---

try {
    $soapClient->catalogProductAttributeSetAttributeAdd( 
                                                $sessionId, 
                                                $attributeId,
                                                $attributeSetId, 
                                                $attributeGroupId,
                                                $sortOrder );
} catch (Exception $e) {
    
    echo '
        FILE : '.$e->getFile()          .'<br>
        ERROR: '.$e->getMessage()       .'<br>
        <tt><pre>
    ';
    
    print_r($e);
}

echo 'FIN';

?>

catalogProductAttributeSetAttributeAdd