MarketPlace avec Drupal commerce

Quelques pistes pour créer un Market Place avec le module Drupal commerce et les API Drupal:

Paramétrage Drupal

  • Créer un vocabulaire Magasin (admin/structure/taxonomy/add)
  • Ajouter au vocabulaire Magasin des termes pour lister les noms des magasins (admin/structure/taxonomy/magasin/add)
  • Ajouter un champ Magasin de type reference à un terme (vocabulaire: Magasin)  au paramétrage du compte utilisateur (admin/config/people/accounts/fields)
  • Ajouter un champ Magasin de type reference à un terme (vocabulaire: Magasin)  au type de contenu Product (admin/commerce/products/types/product/fields)
  • Créer un Role Vendeur (admin/people/permissions/roles)
  • Attribuer aux utlisateurs le Role et le Magasin

Codes PHP (Module)

Création d'un module qui affiche uniquement les produits du magasin du vendeur lors de l'édition ou de la consultaion

<?php
  
function latrach_custom_init() {
    global
$user;
   
$user_fields = user_load($user->uid);   
   
$user_role= $user_fields -> roles;
    if (isset(
$user_role['4'])) //Role = 4 ==> Vendeurs
       
{
       
$user_categorie= $user_fields -> field_magasin;           
       
$cat_tid = $user_categorie['und'][0]['tid'];
        if (isset(
$_GET['q']))
        {
            if (
$_GET['q'] == 'admin/commerce/products')
                {
               
$_GET['field_magasin_tid'] = $cat_tid;
                }
        }
    }
}

function

latrach_custom_form_alter(&$form, &$form_state, $form_id) {

    global

$user;
    if (
$form_id == 'commerce_product_ui_product_form')
    {       
       
$user_fields = user_load($user->uid);
       
$user_categorie= $user_fields -> field_magasin;
       
$cat_tid = $user_categorie['und'][0]['tid'];
       
$cat_term = taxonomy_term_load($cat_tid)->name;
       
$language = $form['field_magasin']['#language'];
       
$form['field_magasin'][$language]['#options'] = array (
         
$cat_tid => $cat_term,
        );
    }
       
    if (
$form_id == 'views_exposed_form')
    {       
    
$view = $form_state['view'];
        if (
$view->name == 'commerce_products' && $view->current_display == 'admin_page')
        {
           
$user_fields = user_load($user->uid);
           
$user_categorie= $user_fields -> field_magasin;
           
$cat_tid = $user_categorie['und'][0]['tid'];
           
$cat_term = taxonomy_term_load($cat_tid)->name;
           
$form['field_magasin_tid']['#options'] = array ( $cat_tid => $cat_term);   
   
        }
    }
}
?>

Tags: 

Catégories: 

Share/Save