Forums fragento
Accueilvue en cascadeRèglesAide
Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?
Traduction d'un tutorial (1 lecteur(s)) (1) Invité(s)
Aller en bas Répondre
SUJET: Traduction d'un tutorial
#242
admin (Admin)
Administrateur
Messages: 116
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Traduction d'un tutorial Il y a 1 Année Karma: 9  
Varien vient d'annoncer la sortie d'un nouveau tutorial pour la création de module de paiement.
http://www.magentocommerce.com/wiki/how-to/create-payment-method-module

Un volontaire pour le traduire ?
 
 
Vive le ecommerce open source !
  L'administrateur a désactivé l'accès public en écriture.
#244
Otaugames (Utilisateur)
Gold Boarder
Messages: 171
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin Sim Emporium Lieu: Troyes Date de naissance: 1986-06-28
Re:Traduction d'un tutorial Il y a 1 Année Karma: 6  
Bonjour à tous,

J'avais un peu de temps à tuer dans le train, alors je m'y suis mis. Je ne suis pas sûr à 100% de la traduction de certains termes techniques (model logic, adapter model, par exemple) que j'ai traduit par ce qui me semblait le plus correct sans utiliser le mot à mot. N'hésitez pas à me corriger au besoin.

Etant donné que c'est mon premier message j'en profite aussi pour me présenter rapidement. Je m'appelle Loïc, j'ai 21 ans et je suis étudiant. Je me penche depuis quelques temps maintenant sur la mise en place d'une boutique ce qui m'a amené à lire le blog de Capitaine Commerce, et à connaitre Fragento au lancement de la bêta de Magento.

Voila, place au tutorial maintenant


---------------------


Traduction française du tutorial
« Create Payment Method Module »



Source : http://www.magentocommerce.com/wiki/how-to/create-payment-method-module


I. Introduction :

Chaque méthode de paiement peut être mise en place comme un module indépendant. Plusieurs méthodes peuvent également être combinées dans le même module si elles partagent des fonctionnalités ou sont utilisables ensembles.

Nous allons créer dans ce tutorial un module avec une méthode de paiement qui va :
    - accepter les informations de la carte de crédit
    - autoriser la carte quand la commande est passée
    - sauvegarder l’ID de la transaction dans le registre des paiements


Notre nouveau module sera appelé NewModule.

Remplacez chaque apparition de « NewModule » par le nom de votre module, et « newmodule » avec le code simplifié, qui ne peut contenir que des caractères alphanumériques et l’underscore.

Pour rendre ce tutorial plus concis, il est entendu que la création des dossiers mentionnés par la suite est implicite.

Vérifiez que app/code/local se trouve dans include_path.

Si vous utilisez le cache pour la configuration, n’oubliez pas de le vider après avoir modifié les fichiers de configuration XML.


II. Configuration :

Créez app/code/local/Mage/NewModule/etc/config.xml :

Code :
<?xml version="1.0"> <config> <modules> <!-- declare module's version information --> <Mage_NewModule> <!-- this version number will be used for database upgrades --> <version>0.1.0</version> </Mage_NewModule> </modules> <global> <!-- declare model group for new module --> <models> <!-- model group alias to be used in Mage::getModel() --> <newmodule> <!-- base class name for the model group --> <class>Mage_NewModule_Model</class> </newmodule> </models> <!-- declare resource setup for new module --> <resources> <!-- resource identifier --> <newmodule_setup> <!-- specify that this resource is a setup resource and used for upgrades --> <setup> <!-- which module to look for install/upgrade files in --> <module>Mage_NewModule</module> </setup> </newmodule_setup> </resources> </global> </config>
Editez app/etc/local.xml :
Code :
<config> <!-- ... --> <modules> <!-- ... --> <!-- declare Mage_NewModule module --> <Mage_NewModule> <active>true</active> <codePool>local</codePool> </Mage_NewModule> <!-- ... --> </modules> <!-- ... --> </config>
Maintenant l’application connaît ce module, mais rien ne se passera tant que nous n’aurons pas créé la chaîne de traitement. III. Chaine de traitement : Remarque : le nom PaymentMethod est arbitraire et ne dépend que de vous. Créez app/code/local/Mage/NewModule/Model/PaymentMethod.php :
Code :
<?php /** * Our test CC module adapter */ class Mage_NewModule_Model_PaymentMethod extends Mage_Payment_Model_Abstract { /** * unique internal payment method identifier * * @var string [a-z0-9_] */ protected $_code = 'newmodule'; /** * Possible result statuses */ const RESPONSE_CODE_APPROVED = 1; const RESPONSE_CODE_DECLINED = 2; const RESPONSE_CODE_ERROR = 3; const RESPONSE_CODE_HELD = 4; /** * This method will be called on checkout payment methods page * * @param string $name global block name in layout (provided by payment method collector automatically) * @return Mage_Core_Block_Abstract block instance to be shown on payment methods page */ public function createFormBlock($name) { // create block instance $block = $this->getLayout()->createBlock('payment/form_cc', $name); // set internal method name (should be simple [a-z0-9_] string) $block->setMethod($this->_code); // assign payment instance to the block to get saved information for form representation $block->setPayment($this->getPayment()); return $block; } /** * This method will be called on order review page * * @param string $name global block name in layout (provided by payment method collector automatically) * @return Mage_Core_Block_Abstract block instance to be shown on order review page */ public function createInfoBlock($name) { // create block instance $block = $this->getLayout()->createBlock('payment/info_cc', $name); // assign payment instance to the block to get saved information $block->setPayment($this->getPayment()); return $block; } /** * This method will run when customer click on Place Order button on review page * * @param Mage_Sales_Model_Order_Payment $payment submitted order payment instance */ public function onOrderValidate(Mage_Sales_Model_Order_Payment $payment) { // run CC authorization procedure $result = $this->_authorize($payment); // process response switch ($result->getResponseCode()) { case self::RESPONSE_CODE_APPROVED: // collect authorization result into order payment instance to be saved with order $payment->setStatus('APPROVED') ->setCcApproval($result->getApprovalCode()) ->setCcTransId($result->getTransactionId()) ->setCcAvsStatus($result->getAvsResultCode()) ->setCcCidStatus($result->getCardCodeResponseCode()); // retrieve new order status id from store configuration $statusId = Mage::getStoreConfig('payment/'.$this->_code.'/order_status'); // set initial order status and save it in order history $payment->getOrder()->addStatus($statusId); break; case self::RESPONSE_CODE_DECLINED: // do necessary operations on DECLINED status $payment->setStatus('DECLINED') ->setStatusDescription($result->getResponseReasonText()); break; // can add here other result options such as self::RESPONSE_CODE_ERROR } return $this; } /** * Payment gateway specific authorization procedure * * @param Varien_Object $payment * @return mixed result of authorization API call */ protected function _authorize($payment) { // Logic can be moved to external API class: Mage_NewModule_Model_Api // It is recommended to use create request object, // if you use external API class /// $request = Mage::getModel('payment/paygate_request'); // set service specific parameters for request $request = array( 'x_card_num' => $payment->getCcNumber(), 'x_exp_date' => sprintf('%02d-%04d', $payment->getCcExpMonth(), $payment->getCcExpYear() ); ///... here we have our payment gateway API authorization calls ///... utilizing array $request and returning array $response // create result object $result = Mage::getModel('payment/paygate_result'); // fill it with transaction data from $response // example array from authorize.net $result->setResponseCode($response[0]); $result->setApprovalCode($response[4]); $result->setTransactionId($response[6]); $result->setAvsResultCode($response[5]); return $result; } }
Maintenant que nous avons le modèle, donnons à l’admin de quoi pouvoir configurer le module et informer la procédure de paiement de l’existence de cette méthode. III. Mise à jour de la base de données : Créez app/code/local/Mage/NewModule/sql/newmodule_setup/mysql4-install-0.1.0.php :
Code :
<?php $code = 'newmodule'; // set model that should be used for this payment method // no configuration field available in admin - definitely not for user change $this->setConfigData('payment/'.$code.'/model', 'newmodule/paymentMethod'); // create payment method group in Admin / System / Configuration / Payment Methods $this->addConfigField('payment/'.$code, 'New Module'); // specify title for this payment method $this->addConfigField('payment/'.$code.'/title', 'Title'); $this->setConfigData('payment/'.$code.'/title', 'New Module'); // add Enabled flag configuration $this->addConfigField('payment/'.$code.'/active', 'Enabled', array( 'frontend_type'=>'select', 'source_model'=>'adminhtml/system_config_source_payment_active' )); // choose initial order status when checking out with this payment method $this->addConfigField('payment/'.$code.'/order_status', 'Order Status', array( 'frontend_type'=>'select', 'source_model'=>'adminhtml/system_config_source_order_status' )); // set position for this payment method in list $this->addConfigField('payment/'.$code.'/sort_order', 'Sort Order');
Si vous allez dans Admin / System / Configuration / Payment Methods, vous devriez maintenant voir le groupe « New Module ». Activez-le et essayez de valider votre commande. Sur la page des solutions de paiement, vous devriez voir « New Module » avec le formulaire pour saisir les données de la carte de crédit. Créons maintenant le fichier de désinstallation de la base de données. Créez app/code/local/Mage/NewModule/sql/newmodule_setup/mysql4-uninstall-0.1.0.php :
Code :
<?php $code = 'newmodule'; $this->run(" delete from `core_config_field` where `path`='payment/".$code."' or `path` like 'payment/".$code."/%'; delete from `core_config_data` where `path` like 'payment/".$code."/%'; ");
Message édité par : Otaugames, à : 07 10 2007 18:21:16nnMessage édité par : Otaugames, à : 07 10 2007 18:22:48
 
  L'administrateur a désactivé l'accès public en écriture.
#245
admin (Admin)
Administrateur
Messages: 116
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Traduction d'un tutorial Il y a 1 Année Karma: 9  
Bravo pour ton travail.
Je vais le relire et le valider, puis on le passera sur le wiki ou autre...
A bientôt
 
 
Vive le ecommerce open source !
  L'administrateur a désactivé l'accès public en écriture.
#357
Dustea (Utilisateur)
Fresh Boarder
Messages: 5
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Traduction d'un tutorial Il y a 11 Mois, 2 Semaines Karma: 0  
je ne suis pas sûre de devoir poster ici, mais ça me semble pas si mal.
J'ai fait une traduction d'un tutorial du wiki : 'designing for Magento'.
La traduction n'est pas parfaite mais elle peut intéresser quelqu'un ?
C'est fait sous word , et il reste des expressions non traduites mais si vous voulez la compléter/relire n'hésitez pas
http://www.missleili.com/ressources/Designing-for-Magento-FR.doc
 
  L'administrateur a désactivé l'accès public en écriture.
#358
admin (Admin)
Administrateur
Messages: 116
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Traduction d'un tutorial Il y a 11 Mois, 2 Semaines Karma: 9  
ça me fait dire qu'il va vraiment falloir que je l'ouvre ce wiki :-p
 
 
Vive le ecommerce open source !
  L'administrateur a désactivé l'accès public en écriture.
#361
Otaugames (Utilisateur)
Gold Boarder
Messages: 171
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin Sim Emporium Lieu: Troyes Date de naissance: 1986-06-28
Re:Traduction d'un tutorial Il y a 11 Mois, 2 Semaines Karma: 6  
Très bon document Dustea
 
  L'administrateur a désactivé l'accès public en écriture.
#363
Dustea (Utilisateur)
Fresh Boarder
Messages: 5
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Traduction d'un tutorial Il y a 11 Mois, 1 Semaine Karma: 0  
yes merci, mais en le relisant, j'ai pu constater qu'il y avait pas mal de choses à améliorer, mais bon c'est déjà une base qui peut aider je pense.
A ce propos, le wiki a été mis à jour : cf ce thread en anglais et à l'utilisation j'ai pu préciser certaines parties, mais je ne sais pas encore si je dois mettre à jour le fichier vu que du coup il ne correspondra plus exactement au wiki anglais de l'équipe Magento...
 
  L'administrateur a désactivé l'accès public en écriture.
#833
alphanono (Utilisateur)
Expert Boarder
Messages: 111
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Net Ambition Lieu: France, Toul (54)
Re:Traduction d'un tutorial Il y a 6 Mois, 2 Semaines Karma: 1  
Je pense que les priorités seraient de traduire la 'Magento Knowledge Base' et le 'Designer's Guide to Magento'. Je me demande même s'il ne serait pas intéressant de traduire aussi les parties 'Accueil' et 'Overview'.

Comment pourrions-nous lancer concrétement et rassembler ces traductions ?

Je suis prêt à réaliser quelques traductions mais il nous faut un moyen plus souple qu'un échange de documents Word !

J'apprécierais assez qu'il y ai un vrai travail graphique sur la présentation des traductions. Variant a mis le paquet là-dessus et c'est aussi ce qui fait le début de son succès face à d'autres projets. Pourrait-on reprendre le design du site officiel ?

Pourrions-nous prévoir un système de CMS pour les traduction officielles ('Accueil' 'Overview' 'Magento Knowledge Base' et 'Designer's Guide to Magento') et un Wiki en parallèle ?

Personnellement je pourrais mettre en place un CMS avec un design proche du site officiel et gérer des droits d'accès pour les traducteurs volontaires. Mais je n'y connais rien en système de Wiki.

Y'a t'il des avis ? des volontaires ? des solutions ?
 
  L'administrateur a désactivé l'accès public en écriture.
Revenir en haut Répondre
Développé par FireBoardObtenir les derniers messages directement sur votre PC