Commerce Server 2009

TechDays 2012 – Ask The Expert

Posted on

C’est avec une grande joie que je serai présent aux TechDays 2012 en tant qu’ATE (Ask-The-Expert) dans le pôle Efficacité Collective et Individuelle .

De plus je serai aussi sur le stand Communautaire ExiaMS (http://www.exiams.fr/).

@bientôt

IT Pro Magazine – Commerce Server 2009 R2

Posted on

Dans le magazine du mois de Novembre vous pouvez trouver un article sur Commerce Server 2009 R2.

image

 

Bref Sommaire :

Commerce Server 2009  et bientôt R2 offre une solution intégrée  et complète de site  e-commerce portant sur les relations B2C, B2B et B2X (les deux).

Le produit dispose d’un nombre non négligeable de fonctionnalités permettant aux entreprises actuelles de répondre aux besoins principaux d’un site e-commerce…

 

Lien : CommerceServer

SlideShare Commerce Server 2009 R2

Posted on

Et une nouvelle Slide sur Commerce Server 2009 R2

Commerce server 2009 R2

Rendez vous des Experts : Commerce Server

Posted on

Voici une WEBTV sur Commerce Server tournée avec Julien Dollon (MVP Client AppDev) , Gaël Duhamel ( MVP Commerce Server) et moi-même.

[tube]http://www.youtube.com/watch?v=CHO1gHCxCnk[/tube]

 

Commerce Server 2009 R2– Exploitation de service WCF

Posted on

Nativement Commerce Server embarque des Web Services ASMX avec les appels natifs à l’API, mais comment faire en sorte d’exploiter la nouvelle surcouche MCCF et disposer

de librairies LINQ, tout en implémentant les CommerceEntities ? C’est ce que nous allons voir en créer un simple Web Service WCF exploitable depuis n’importe quelle technologie.

 

Etapes :

Sous Visual Studio 2010, créez un nouveau projet de type WCF application service

Ajouter les références suivantes :

Sous Commerce Server 2009

  • Microsoft.Commerce.Application.Common
  • Microsoft.Commerce.Broker
  • Microsoft.Commerce.Common
  • Microsoft.Commerce.Contracts
  • Microsoft.Commerce.Providers
  • Microsoft.CommerceServer.Runtime

Sous Commerce Server R2

  • Microsoft.Commerce.Server
  • Microsoft.Commerce.SequenceComponents
  • Microsoft.Commerce

Supprimer les fichiers IService.cs et Service1.svc.cs

 

Dans le fichier Service1.svc remplacez la ligne existante par :
Pour vérifiez le PublicKeyToken d’une assembly : utilisez l’exécutable sn.exe depuis le répertoire C:Program FilesMicrosoft SDKsWindowsv6.0ABin avec l’option –T
exemple : image
<%@ ServiceHost Language="C#" Debug="true" Service="Microsoft.Commerce.Server.OperationService,
 Microsoft.Commerce.Server, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>

Dans le fichier Web.config fait les changements suivants :

<?xmlversion=1.0encoding=utf-8?>

 

<configuration>

<system.web>

<compilation debug=truetargetFramework=4.0/>

</system.web>

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled=truemultipleSiteBindingsEnabled=true/>

<services>

<servicename=Microsoft.Commerce.Server.OperationServicebehaviorConfiguration=CommerceServiceBehavior>

<endpoint address=“” binding=basicHttpBindingcontract=Microsoft.Commerce.IOperationService/>

<endpoint address=mexbinding=mexHttpBindingcontract=IMetadataExchange/>

</service>

</services>

<behaviors>

<serviceBehaviors>

<behavior name=CommerceServiceBehavior>

<serviceMetadata httpGetEnabled=true/>

<serviceDebug includeExceptionDetailInFaults=true/>

</behavior>

</serviceBehaviors>

</behaviors>

</system.serviceModel>

<system.webServer>

<modulesrunAllManagedModulesForAllRequests=true/>

</system.webServer>

 

</configuration>

Ajouter les fichiers suivants :

  • ChannelConfiguration.config
  • MetadataDefinitions.xml
  • OrderObjectMappings.xml (Option)
  • OrderPipelineMappings.xml (Option)
  • Les fichiers Pipelines (.pcf)

 

Générer et publier votre Service :

image

 

 

Une fois déployé, rendez le répertoire navigable en activant l’option “enable” dans Directory Browsing. De là votre Service sera opérationnel.

image

Maintenant vous avez accès au service WCF depuis n’importe quelle couche de présentation, il vous restera à configurer les authentifications de votre service.

Commerce Server 2009 – Tutoriel Part 2– Utilisation du Catalog Manager

Posted on

Dans la partie 1 de notre tutoriel ( lien Partie 1), nous avons vu comment créer un site Commerce Server au sens propre du terme, la création d’un Schéma, créer des définitions pour nos catalogues,produit et catégories.

Maintenant voyons comment les utiliser afin de pouvoir les utiliser dans nos développement futurs.

Catalog Manager

Rendez-vous dans le Catalog Manager, en configurant les Web Services adéquats et les autorisations nécessaire depuis l’outil azman.msc.

clip_image002

Le Catalog Manager est l’outil indispensable au management de produits. De ce fait vous pouvez organiser, ajouter, mettre à jour vos produits, mais aussi importer et exporter votre catalogue, créer des catalogues virtuels d’un ou plusieurs catalogues, appliquer des règle de prix sur des produits ou des variants de produits.

 

Création du Catalogue 

 

  • Depuis View, sélectionnez Catalogs
  • Dans le menu Task, cliquez sur Create New Catalog

Renseignez les champs suivants :

clip_image003

Puis faites Next en laissant les options par défaut sur l’ensemble des fenêtres.

 

Création de Catégories

 

  • Sélectionnez votre catalogue
  • Dans le menu Task, sélectionnez Create a New Category
  • Sélectionnez GenericCategory dans la fenêtre Definition Type Selection

Renseignez les champs suivants :

clip_image004

  • Custom properties : Vide
  • Category Associations : Vide
  • Product Associations : Vide
  • Category Relationships : Vide

Puis créer une deuxième catégorie :

clip_image005

  • Custom properties : Vide
  • Category Associations : Vide
  • Product Associations : Vide
  • Category Relationships : Vide

 

Création de Produit

 

  • Sélectionnez une catégorie MemoryCards
  • Dans le menu Task, cliquez sur Create a New Product
  • Dans la fenêtre Definition Type Selection, choisissez MemoryCard

Renseignez les champs suivants :

Base Properties

clip_image006

Custom Properties

clip_image007

Variant Properties

clip_image008

Category Associations

clip_image009

Product Relationships

clip_image010

Créons un produit Caméra avec les paramètres suivants :

 

Base Properties

clip_image011

Custom Properties

clip_image012

Category Associations

clip_image013

Product Relationships

clip_image015

Maintenant que nous avons l’ensemble des éléments à savoir un catalogue avec des catégories, des produits et des relations nous allons pouvoir attaquer la partie développement en utilisant les composants Commerce Server et Visual Studio

Commerce Server 2009 – Tutoriel Part 1– Utilisation du Catalog Manager

Posted on

Aujourd’hui je vous propose un guide sur comment aborder le développement sur Commerce Server. Nous verrons au cours de ce tutorial, la création de catalogue, de produit et de catégorie depuis les interfaces fournis. Ensuite nous verrons comment partir d’un projet vide afin de pouvoir effectuer des requêtes en vue d’afficher nos différents produits en ASP.NET.

Site Packager

L’utilisation du Site Packager est l’étape indispensable à notre guide puisqu’il amorce la première brique en déployant les Web Services nécessaire. Pour ce faire allez dans le dossier C:Program Files (x86)Microsoft Commerce Server 9.0Pup Packages et lancer le fichier CSharp.pup puis choisissez le mode Quick Unpack. De là veillez à ce que le site par défaut soit bien déployer dans le DefaultWebSite et que les paramètres de connexion vers votre SQL Server soient correctes.

Une fois que cela est accompli il vous faudra ajouter les autorisations nécessaires sur les Web Services depuis l’outil azman.msc (Article: Configuration ASMX)

Catalog & Inventory Schema Editor

Avant tout chose il est préférable d’avoir effectué un Unpack d’un site via le Site Packager.

Afin que le logiciel se lance nous devons configurer notre connexion, lancez le Catalog and Schema Manager et configurer l’adresse du CatalogWebServices.asmx dans les Settings.

clip_image001

Dans votre interface vous trouverez deux éléments importants :

  • Tasks : Effectuer des actions (Création de définition de produits, catégories, propriétés)
  • Views : Zones du schéma (Zone des produits, des catégories, des propriétés)

Création du Schéma

Avant de commencer la création d’un catalogue il est primordial de créer des propriétés de produit, puis de créer une définition d’un produit et enfin de créer la définition d’une catégorie.

Création d’une définition de propriété

• Depuis le menu View cliquez sur Properties Definition

• Sélectionnez Create New Property depuis le menu Task

• Dans la fenêtre New Property Definition choisissez Text

• Dans la fenêtre New Create Property renseignez les champs suivants dans Basic Properties

La première propriété est MemorySize :

clip_image003

La deuxième propriété est MemoryType et est de type MultipleChoice :

clip_image004

Ajouter les valeurs en cliquant sur le bouton Add

clip_image005

Créer une troisième propriété Model avec les paramètres suivants:

clip_image006

Création d’une définition produit

  • Depuis le menu View, sélectionnez Product Definition
  • Dans le menu Task, cliquez sur Create New Definition

Renseignez les champs suivants :

  • Name : MemoyCard
  • Assigned Product Properties : MemoryType
  • Assigned Variant Properties : MemorySize

clip_image007

Faire de même avec Camera afin d’avoir les paramètres suivants :

clip_image008

Création d’une définition de catégorie

  • Depuis le menu View, sélectionnez Category Definition
  • Dans le menu Task, cliquez sur Create New Definition

Renseignez les champs suivant :

  • Name : GenericCategory

clip_image009

A partir de ce moment nous avons fait la première partie du travail il nous reste à créer un catalogue, nos catégories et nos produits à définir.

Commerce Server 2009 – Architecture Orders et Pipeline (Schéma)

Posted on

Faisant suite au précédent article sur l’étroite relation qui existe entre les Orders System et les Pipelines, voici un schéma permettant d’avoir une vue globale de l’interaction entre les deux systèmes.

Le lien vers l’article : Introduction aux Orders System et Pipeline

 

image

Mécanisme Orders et Pipeline

Commerce Server 2009 – Introduction aux Orders System et Pipelines

Posted on

Dans ce billet je vais vous exposer quelles sont les fonctionnalités propre à un des composants essentiel du “ Core System “ de Commerce Server à savoir les Orders System, et la relation étroite qu’il possède avec les Pipelines.

Orders System :

Le système d’ordre est une brique importante dans Commerce Server, dans la mesure où l’ensemble des opérations d’achat sont gérées. Dans celui-ci nous pouvons dire qu’il est premièrement mise en place via les Pipelines, même si il dispose de ses propres modèles objets. En effet les Pipelines représentent la couche ‘ Business logic ‘ de Commerce Server et permettent à l’Order System d’effectuer uniquement des interrogations vers les Pipelines qui eux se chargent de traiter des fonctionnalités comme , la gestion du panier, des totaux, des remises sur produits etc.. L’Order System dispose actuellement de composants tels que :

– Abstraction des données ( accès aux ordres depuis le modèle objet)

– Abstraction des processus (utilisation des pipelines)

– Séparation des ‘shipments’ (Plusieurs adresses d’envoi pour un seule ordre d’achat)

– Mapping ( Tables SQL)

– Méthodes de paiement modifiable ( création de nouvelles méthode de paiement)

– Gestion de paniers modifiable

– Modèle Objet Extensible

– Une interface de gestion pour les Business Users ( Custom and Orders Manager)

– Intégration des Web Services pour les LOB ( CRM- ERP)

Order Files :

Dans les différentes solutions et package de site nous retrouvons deux fichiers XML importants qui sont les OrderObjectMappings.xml et OrderPipelineMappings.xml.

Plus précisément le premier défini comment les objets dans le Runtime Orders sont mapper en tables et colonnes dans la BDD .

image

OrderObjectMappings

 

Quant au deuxième il défini comment les objets dans le Runtime Orders mappent les entrées dans un dictionnaire que le pipeline va utiliser.

image

OrderPipelineMappings

Pipelines :

Les pipelines représentent un Framework à part entière qui a la capacité de lire un ou plusieurs composants et va les exécuter en une seule séquence. En ce sens nous distinguons la “Séquence” dans la quelle nous retrouvons nos “Stages” qui sont les étapes de traitement de notre workflow et à l’intérieur des “Composants” qui eux (déjà configurés) permettent d’effectuer des opérations avec une granularité importante sur fonctionnalités métiers ( calcul de sous-totaux, tva, remise etc..).

image

Représentation des pipeline via le Pipeline Editor

Les pipelines traitent des COM objets et peuvent être utilisés de trois façons :

– OPP ( Order Processing pipelines – lie plusieurs composants et les lancent en séquence pour un OrderForm – B2B/ B2C)

– CSF ( Content Selection Framework – modification et extension des publicités et opérations de discount )

– Direct Mailer ( email de masse, custom email)

Enfin sachez que par défaut, Commerce Server fournit des fichiers pipelines ( format .pcf) et possède des mécanismes de traitement déjà configurés ou configurables à votre guise :

– Advertising.pcf

– Basket.pcf

– Checkout.pcf

– Discounts.pcf

– Product.pcf

– RecordEvent.pcf

– Total.pcf

En définitif grâce au Pipeline vous avez les briques déjà toute prêtes pour votre site E-commerce sans devoir tout redévelopper, donc un gain de temps énorme.

Commerce Server 2009 – Multi Channel Commerce Foundation

Posted on

Une des nouvelles moutures de Commerce Server 2009  concerne le Multi Channel Commerce Foundation ( MCCF). Cette fonctionnalité représente en réalité une couche supérieure à l’API déjà présente de Commerce Server 2007 ( Core System). Ce qui nous permet aujourd’hui de tirer les bénéfices du Framework 3.5 en l’occurrence l’utilisation de LINQ.

Dans cette image vous trouvez les différentes imbrications des briques de développement sur Commerce Server 2009.

image

En effet MCCF introduit le concept de CommerceEntities. Celles-ci représentent un mapping de chaque entité essentiel à nos développement. Ainsi nous retrouvons :

– UserProfile

– LineItem

– Basket

– Advertisement

– CreditCard

– etc…

Chacune de ces entités possèdent des propriétés globale du type :

– UniqueModelName ( Identifiant unique)

– PropertyBag ( liste de propriétés faiblement typés ex : CreditCard [ AccountNumber, Expire Year, Expire Month])

– Relationship (Relation avec les autres Entités ( UserProfile est relié avec CreditCard et Adress)

– Possibilité de créer vos propres CommerceEntities dérivé de ICommerceEntity

Commerce Server Operations :

Une fois que nous avons identifiés nos entités respectives, nous pouvons effectués des requêtes. MCCF fournit des Operations qui sont considérées comme des opérations de haut-niveau, car elles se détachent du Core System. En ce sens nous distinguons les opérations de bases d’un CRUD :

– CommerceQuery

– CommerceCreate

– CommerceUpdate

– CommerceDelete

Chacune de ces méthodes comportent des propriétés supplémentaires :

Model (Identifie comme cible l’entité choisie)

Search Criteria (Types de recherches : CommerceModelSearch  et CommerceCatalogFullTextSearch)

Related Operations (Optionnel) (Opérations de relations)

Operation Specific Options (Optionnel) (Descriptions etc..)

Comme une image vaut mille mots un exemple de code MCCF:

Sample Code MCCF

image

Operation Sequences :

Un autre composant va se servir d’acheminer nos requêtes, les traiter en conséquences et les restituer, il s’agit de l’Operation Sequences. Il est l’intermédiaire entre nos composants Entity et les couches supérieures.  Prenons le schéma fournit par Microsoft sur les Operation Sequences.

image

Les Operations Sequence vont suivre le workflow de traitement suivant :

    1. Création d’un requête ( une ou plusieurs entités)
    2. Soumission de la requête
    3. Récupération et analyse de la réponse envoyée

Partant de ces différentes étapes nous pouvons émettre un diagramme plus simpliste :

image

Avec un mode de fonctionnement plus simple ou lors d’une recherche le Broker va analyser un nom bien précis d’une commande suivit du nom de l’entité( ex: CommerceQueryOperation_UserProfile) et va rendre l’exécution de la commande avec le « Components » associé (ex:chargement du profil utilisateur, chargement des informations reliés etc ..)

Nous pouvons conclure que MCCF offre aux développeurs de programmer avec les fonctionnalités actuelles propres au .Net Framework 3.5 ou encore 4.0 mais aussi de pouvoir s’en passer et de développer en Core System, API de 2007. De toute les façons l’information, quelque soit son canal d’entrée, va être automatiquement récupérer via l’API native.