Choisir un mode de paiement juste pour information

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38681

Bonjour à tous,

J'aimerai savoir si c'est possible (via un plugin ou autre) de proposer des type de paiement à sélectionner juste pour informer le vendeur du mode de paiement qu'utilisera le client.
Exemple : Le client souhaite payer lors de la réception de sa commande (case à sélectionner via le plugin "pay on delivery").
Et en dessous il sélectionne "Carte Bleu", "Chèque", "Espèces" ou autre ...
Le vendeur reçoit la commande avec dans le message la méthode de paiement qu'utilisera le client à la réception.

Si je ne suis pas clair dans ma demande n'hésitez pas à poser des questions.

En vous remerciant par avance.

Charles


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr
Last edit: 12 years 9 months ago by guitarre78.

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
12 years 9 months ago #38700

Bonjour,

Je pense que le mieux pour vous serait de dupliquer le plugin "pay on delivery" afin de pouvoir mettre des noms et descriptions différentes.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: guitarre78

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38723

Oui j'y avait pensé, mais n'ayant pas trouvé comment dupliquer le plugin pay on delivery" je pensais que cela n'était pas possible ...

Comment puis-je procéder pour effectuer la duplication ?

Merci

Charles


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
12 years 9 months ago #38733

Bonjour,

Le plus simple est de récuperer les 4 fichiers de "collectondelivery".
* collectondelivery.php
* collectondelivery.xml
* collectondelivery_configuration.php
* collectondelivery_end.php

Vous pouvez alors les renommer en changeant "collectondelivery" par "collectondeliverya" / "collectondeliveryb" / "collectondeliveryc".
Après il y a les deux premiers fichiers à éditer.

Dans collectondelivery.php, il faut changer le nom de la classe et faire les quelques remplacements de "collectondeveliry" dans le fichier (pour la gestion du "payment_type").
Dans collectondelivery.xml, il faut changer les noms des fichiers.

Ensuite vous pouvez faire une archive zip contenant ces 4 fichiers et passer par l'interface de joomla pour installer votre nouveau plugin de paiement hikashop.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38740

Petit soucis.

J'ai bien fait comme vous me l'avez demandé :
1) J'ai récupéré les 4 fichiers dans le dossier "/administrator/components/com_hikashop/extensions/plg_hikashoppayment_collectondelivery"
2) J'ai changé leur nom en "collectondelivery_b.php", "collectondelivery_b.xml", "collectondelivery_b_configuration.php", "collectondelivery_b_end.php"
3) Dans le fichier XML j'ai changé les 3 lignes où apparaissent le 3 nom de fichiers :

<filename plugin="collectondelivery">collectondelivery_b.php</filename>
		<filename>collectondelivery_b_end.php</filename>
		<filename>collectondelivery_b_configuration.php</filename>
4) Dans le fichier "collectondelivery_b.php" j'ai changé la ligne de payment_type :
$element->payment_type=$this->collectondelivery_b;
ainsi que la ligne "class" en haut du fichier.
5) j'ai zippé le tout, et ai effectué l'installation via joomla (Extension > Gestion des extensions).

Le problème c'est que le collectondelivery_b n'apparait nul part dans la liste de moyen de paiement de hikashop, ni dans la liste des plugin de joomla, et aussi : le collectondelivery de base ne fonctionne plus (pas d'erreur signalée dans l'administration, mais sur le site le moyen de paiement n'apparait plus et le message "aucun moyen de paiement disponible" apparait.

Help !

Merci


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr
Last edit: 12 years 9 months ago by guitarre78.

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38741

Chose étrange :
Je viens de mettre à jour hikashop avec la dernière mise à jour, et lors de l'installation de cette mise à jour, il m'a signalé que mon collectondelivery_b avait bien été installé.


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38801

Bon après quelques essais hier soir, j'ai des soucis qui viennent de je ne sais pas où ...

Comme dit dans mon précédent message, le collectondelivery_b c'est installé tout seul avec la mise à jour, et a fonctionné.
J'ai donc voulu procéder de la même manière avec un collectondelivery_c.
Il s'est installé mais n'a jamais voulu s'afficher sur le site ...

J'ai donc voulu recommencer : j'ai effacé les fichiers et le dossier du plugin, ainsi que le dossier collectondelivery_c dans le dossier www/plugins/hikashoppayment/collectondelivery_c.
J'ai remarqué que le plugin apparaissait toujours dans la liste de paiement, mais aussi que le collectondelivery de base s'appellait Hikashop Collect On Delivery Payment Plugin C alors que je ne l'avais pas touché ...

J'ai donc voulu tous les supprimer, de la même façon que pour le C, mais ils apparaissent toujours ...

Un peu d'aide serait la bienvenue avant que j'enfonce encore le couteau dans la plaie ... :unsure:


Merci


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
12 years 9 months ago #38827

Bonjour,

Premièrement, dans le fichier XML, vous avez laissé : <filename plugin="collectondelivery">
Il va donc modifier le plugin "collectondelivery" existant pour le lier avec les fichiers de la version "C".

Faites la modification et vous pouvez aussi faire un zip avec les fichiers de base de "collectondelivery" pour pouvoir réinstaller le plugin de base (et enlever les effets de bord).


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38844

Ok j'ai fait la modification.
Je n'ai plus de soucis pendant l'installation ni au niveau du nom des plugins dans la liste des moyen de paiement, seulement j'ai une erreur PHP quand je souhaite rentrer dans les paramètre du mode de paiement :

Fatal error: Call to a member function display() on a non-object in ***/plugins/hikashoppayment/collectondelivery_b/collectondelivery_b_configuration.php on line 18


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 9 months ago #38846

Veuillez vérifier que vous avez bien remplacé collectondelivery par collectondelivery_a/b/c partout dans le fichier PHP du plugin.

Si vous avez toujours le problème meric de poster votre fichier de plugin.

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #38853

Je pensais qu'il ne fallait changer que la ligne des "payment_type".
j'ai donc essayé en les modifiants tous ... sans succès, même erreur.

Voici mon fichier collectondelivery_b.php :

<?php
/**
 * @package		HikaShop for Joomla!
 * @version		1.5.6
 * @author		hikashop.com
 * @copyright	(C) 2010-2012 HIKARI SOFTWARE. All rights reserved.
 * @license		GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?>
<?php
class plgHikashoppaymentCollectondeliveryb extends JPlugin
{
    function onPaymentDisplay(&$order,&$methods,&$usable_methods){
    	if(!empty($methods)){
    		foreach($methods as $method){
				if($method->payment_type!='collectondelivery_b' || !$method->enabled){
					continue;
				}
				if(!empty($method->payment_zone_namekey)){
					$zoneClass=hikashop_get('class.zone');
	    			$zones = $zoneClass->getOrderZones($order);
					if(!in_array($method->payment_zone_namekey,$zones)){
						return true;
					}
				}

				$usable_methods[$method->ordering]=$method;
    		}
    	}
    	return true;
    }
    function onPaymentSave(&$cart,&$rates,&$payment_id){
    	$usable = array();
    	$this->onPaymentDisplay($cart,$rates,$usable);
    	$payment_id = (int) $payment_id;
    	foreach($usable as $usable_method){
    		if($usable_method->payment_id==$payment_id){
    			return $usable_method;
    		}
    	}
    	return false;
    }
    function onPaymentConfiguration(&$element){
    	$this->collectondelivery_b = JRequest::getCmd('name','collectondelivery_b');
    	if(empty($element)){
    		$element = null;
    		$element->payment_name='Collect on delivery';
    		$element->payment_description='You can pay when your package is delivered by using this payment method.';
    		$element->payment_images='Collect_on_delivery';
    		$element->payment_type=$this->collectondeliver_b;
    		$element->payment_params=null;
    		$element->payment_params->order_status='created';
    		$element = array($element);
    	}
    	$bar = & JToolBar::getInstance('toolbar');
		JToolBarHelper::save();
		JToolBarHelper::apply();
		JToolBarHelper::cancel();
		JToolBarHelper::divider();
		$bar->appendButton( 'Pophelp','payment-collectondelivery_b-form');
		hikashop_setTitle(JText::_('COLLECT_ON_DELIVERY'),'plugin','plugins&plugin_type=payment&task=edit&name='.$this->collectondelivery_b);
		$app =& JFactory::getApplication();
		$app->setUserState( HIKASHOP_COMPONENT.'.payment_plugin_type', $this->collectondelivery_b);
		$this->category = hikashop_get('type.categorysub');
		$this->category->type = 'status';
    }
	function onPaymentConfigurationSave(&$element){
    	return true;
    }
    function onAfterOrderConfirm(&$order,&$methods,$method_id){
    	$method =& $methods[$method_id];
    	$orderObj = null;
    	$orderObj->order_status = $method->payment_params->order_status;
    	$orderObj->history->history_notified = @$method->payment_params->status_notif_email;
    	$orderObj->order_id = $order->order_id;
    	$orderClass = hikashop_get('class.order');
    	$orderClass->save($orderObj);
    	$app =& JFactory::getApplication();
    	$this->removeCart = true;
		$name = $method->payment_type.'_end.php';
    	$path = JPATH_THEMES.DS.$app->getTemplate().DS.'hikashoppayment'.DS.$name;
    	if(!file_exists($path)){
    		if(version_compare(JVERSION,'1.6','<')){
    			$path = JPATH_PLUGINS .DS.'hikashoppayment'.DS.$name;
    		}else{
    			$path = JPATH_PLUGINS .DS.'hikashoppayment'.DS.$method->payment_type.DS.$name;
    		}
    		if(!file_exists($path)){
    			return true;
    		}
    	}
    	$currencyClass = hikashop_get('class.currency');
    	$amount = $currencyClass->format($order->order_full_price,$order->order_currency_id);
    	$order_number = $order->order_number;
    	require($path);
		return true;
    }
}

Et voici le fichier collectondelivery.xml :
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install type="plugin" version="1.5" method="upgrade" group="hikashoppayment">
	<name>Hikashop Collect On Delivery Payment Plugin B</name>
	<creationDate>April 2010</creationDate>
	<version>1.0.0</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>Copyright (C) 2010 HIKARI SOFTWARE SARL - All rights reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
	<description>This plugin enables you to setup your Collect On Delivery payment system</description>
	<files>
		<filename plugin="collectondelivery_b">collectondelivery_b.php</filename>
		<filename>collectondelivery_b_end.php</filename>
		<filename>collectondelivery_b_configuration.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="pluginoptions" type="pluginoptions" default="plugin" label="hikashop" description="HikaShop options" />
	</params>
	<config>
		<fields name="params" addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field
                        id="pluginoptions"
                        name="pluginoptions"
                        type="pluginoptions"
                        label="hikashop"
                        description="HikaShop options"
                />
            </fieldset>
		</fields>
	</config>
</install>


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
12 years 9 months ago #38857

Bonjour,

Appelez votre classe "plgHikashoppaymentCollectondelivery_b".
Je ne recommende pas trop d'utiliser des "_b" mais plus des "b", comme indiqué dans mon premier message.
Ensuite, il y a certains éléments qui été remplacés en trop mais ce n'est pas forcement très génant.

$bar->appendButton('Pophelp','payment-collectondelivery-form');

Le soucis vient du fait que le nom de la classe ne correponds pas au niveau du plugin. L'objet passé à la partie de configuration n'existe pas et donc cela pose soucis.

Le simple fait de nommer correctement la classe devrait régler les soucis.


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 0
12 years 9 months ago #39113

Merci pour votre aide.
J'ai plus de soucis de message d'erreur, mais j'ai des soucis comme :
- je ne peux pas supprimer les plugins. Si je supprime les fichier dans admin/components/hikashop/extension et dans www/plugins/hikashoppayment les plugins apparaissent toujours dans la liste. Même après suppression du cache et vidage des fichiers expirés.
- J'ai parfois un plugins qui apparait en double car l'ancien ne s'est pas effacé.

Une solution ? :)

EDIT : Problème réglé : il suffisait de vider les tables de la base de donnée. Ca m'apprendra à mal désinstaller les plugins sur joomla !
Merci pour le temps que vous avez pris à gérer mon soucis !


Découvrez et écoutez HQ-Sound, sur www.hqsound.fr
Last edit: 12 years 9 months ago by guitarre78.

Please Log in or Create an account to join the conversation.

Time to create page: 0.080 seconds
Powered by Kunena Forum