S'il y a bien quelque chose qui m'a étonné, c'est de voir que le mode de paiement Paypal apparraissait lors d'une commande (processus onepage checkout par exemple) dont le montant du panier d'achat est de 0. Ce scénario peut effectivement arrivé pour certains sinon Varien ne proposerai pas dans les modes de paiement de Magento l'option "No payment information is required". Je vous propose de changer ce comportement en ajoutant simplement trois fichiers dans votre installation de Magento.

Voici comment procéder:

  1. Créé un module Paypal dans Magento dans le dossier suivant, par exemple: /app/code/local/Your_name/Paypal/
  2. Créé un dossier "etc" dans le nouveau module créé: /app/code/local/Your_name/Paypal/etc/
  3. Créé un fichier config.xml avec le contenu affiché ci-dessous (remplacer your_name par le nom souhaité - nom de société ou autre)
  4. Créé un fichier system.xml avec le contenu affiché ci-dessous
  5. Activer votre nouveau module en créant le fichier /app/etc/modules/Your_name_All.xml avec les informations ci-dessous en n'oubliant pas de remplacer Your_name.

- fichier config.xml:

<?xml version="1.0"?>
<config>
	<modules>
		<Your_name_Paypal>
			<version>0.1.0</version>
		</Your_name_Paypal>
	</modules>
 
	<default>
		<payment>
			<paypal_express>
				<min_order_total>0</min_order_total>
				<max_order_total>0</max_order_total>
			</paypal_express>
			<paypal_direct>
				<min_order_total>0</min_order_total>
				<max_order_total>0</max_order_total>
			</paypal_direct>
			<paypal_standard>
				<min_order_total>0</min_order_total>
				<max_order_total>0</max_order_total>
			</paypal_standard>
		</payment>
	</default>
</config>
 

- fichier system.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<sections>
		<payment>
			<groups>
				<paypal_direct>
					<fields>
						<min_order_total translate="label">
							<label>Minimum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>98</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</min_order_total>
						<max_order_total translate="label">
							<label>Maximum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>99</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</max_order_total>
					</fields>
				</paypal_direct>
				<paypal_express>
					<fields>
						<min_order_total translate="label">
							<label>Minimum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>98</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</min_order_total>
						<max_order_total translate="label">
							<label>Maximum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>99</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</max_order_total>
					</fields>
				</paypal_express>
				<paypal_standard>
					<fields>
						<min_order_total translate="label">
							<label>Minimum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>98</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</min_order_total>
						<max_order_total translate="label">
							<label>Maximum Order Total</label>
							<frontend_type>text</frontend_type>
							<sort_order>99</sort_order>
							<show_in_default>1</show_in_default>
							<show_in_website>1</show_in_website>
							<show_in_store>0</show_in_store>
						</max_order_total>
					</fields>
				</paypal_standard>
			</groups>
		</payment>
	</sections>
</config> 
 

- fichier Your_name_All.xml:

<?xml version="1.0"?>
<config>
	<modules>
		<Your_name_Paypal>
			<active>true</active>
			<codePool>local</codePool>
		</Your_name_Paypal>
	</modules>
</config>

Pour terminer, vous n'aurez plus qu'à aller dans votre backend, Configuration > Modes de paiement > Paypal (Express, standard ou direct) et fournir un montant minimum ou voir même maximum pour que ce mode de paiement soit affiché ou pas.

Bonne programmation.