Version Notes
Compatible 1.7
Download this release
Release Info
Developer | Berlioz |
Extension | ColiPoste_La_Poste_So_Colissimo |
Version | 2.0.0 |
Comparing to | |
See all releases |
Code changes from version 1.1.1 to 2.0.0
- app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php +21 -21
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php +17 -17
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php +28 -28
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Transaction.php +23 -13
- app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php +18 -28
- app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml +6 -6
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-1.1.2.php +23 -0
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-2.0.0.php +23 -0
- app/design/frontend/default/default/template/socolissimosimplicite/form.phtml +103 -82
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml +113 -29
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml +23 -7
- app/locale/fr_FR/LaPoste_SoColissimoSimplicite.csv +1 -1
- package.xml +7 -7
app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
-
* @author
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstract
|
@@ -26,7 +26,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
26 |
* @var string
|
27 |
*/
|
28 |
const FAILURE_URL = 'socolissimosimplicite/form/failure';
|
29 |
-
|
30 |
/**
|
31 |
* Numéro de version à envoyer obligatoirement à la plateforme
|
32 |
* @var string
|
@@ -41,7 +41,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
41 |
{
|
42 |
return self::NUM_VERSION;
|
43 |
}
|
44 |
-
|
45 |
/**
|
46 |
* Retourne l'url complète de la page contenant le formulaire à soumettre
|
47 |
* pour l'accès au front de SO Colissimo
|
@@ -51,7 +51,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
51 |
{
|
52 |
return Mage::getUrl(self::FORM_URL);
|
53 |
}
|
54 |
-
|
55 |
/**
|
56 |
* Retourne l'url complète appelée en cas de succès suite à la
|
57 |
* sélection de la livraison dans l'interface SO Colissimo
|
@@ -62,7 +62,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
62 |
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/success/';
|
63 |
return Mage::getUrl(self::SUCCESS_URL);
|
64 |
}
|
65 |
-
|
66 |
/**
|
67 |
* Retourne l'url complète appelée en cas d'échec suite à
|
68 |
* l'accès au front de SO Colissimo
|
@@ -73,7 +73,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
73 |
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/failure/';
|
74 |
return Mage::getUrl(self::FAILURE_URL);
|
75 |
}
|
76 |
-
|
77 |
/**
|
78 |
* Retourne le code du mode de livraison tel qu'utilisé lors du passage
|
79 |
* d'une commande (code transporteur + mode).
|
@@ -82,16 +82,16 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
82 |
public function getRateCode()
|
83 |
{
|
84 |
$shippingMethod = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
|
85 |
-
|
86 |
//le code du transporteur et le code du mode de livraison sont les mêmes
|
87 |
//cf Mage_Shipping_Model_Carrier_Abstract : un seul attribut "code" utilisé dans les deux cas
|
88 |
//les modes de livraison natifs sont également implémentés de cette manière
|
89 |
$carrierCode = $shippingMethod->getCarrierCode();
|
90 |
$methodCode = $shippingMethod->getCarrierCode();
|
91 |
-
|
92 |
return $carrierCode.'_'.$methodCode;
|
93 |
}
|
94 |
-
|
95 |
/**
|
96 |
* Retourne l'identifiant d'accès au FO de SO Colissimo Simplicité
|
97 |
* @return string
|
@@ -100,7 +100,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
100 |
{
|
101 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/account');
|
102 |
}
|
103 |
-
|
104 |
/**
|
105 |
* Retourne la clé de cryptage nécessaire à la génération de la signature
|
106 |
* pour l'accès au FO de SO Colissimo Simplicité.
|
@@ -110,7 +110,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
110 |
{
|
111 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/encryption_key');
|
112 |
}
|
113 |
-
|
114 |
/**
|
115 |
* Retourne l'url du front de SO Colissimo Simplicité
|
116 |
* @return string
|
@@ -119,7 +119,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
119 |
{
|
120 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/url_fo');
|
121 |
}
|
122 |
-
|
123 |
/**
|
124 |
* Retourne le message à afficher lors du choix de mode de livraison,
|
125 |
* sous le titre.
|
@@ -129,7 +129,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
129 |
{
|
130 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/selectmessage');
|
131 |
}
|
132 |
-
|
133 |
/**
|
134 |
* Retourne le message à afficher lors de la redirection vers le front de
|
135 |
* SO Colissimo Simplicité.
|
@@ -179,7 +179,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
179 |
$map = Mage::getStoreConfig('carriers/socolissimosimplicite/mapprefix');
|
180 |
return json_decode($map, true);
|
181 |
}
|
182 |
-
|
183 |
/**
|
184 |
* Retourne les frais de livraison correctement formatés pour la soumission auprès
|
185 |
* de SO Colissimo
|
@@ -192,7 +192,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
192 |
$formatedPrice = number_format($shippingPrice, $maxDecimalDigit, '.', '');
|
193 |
return $formatedPrice;
|
194 |
}
|
195 |
-
|
196 |
/**
|
197 |
* Retourne le poids total de la commande correctement formaté pour la soumission
|
198 |
* auprès de SO Colissimo
|
@@ -203,10 +203,10 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
203 |
{
|
204 |
$weight = str_replace(',', '.', $weight);
|
205 |
$weight = $weight * 1000; //converti kg en g
|
206 |
-
$formatedWeight = number_format($weight,
|
207 |
return $formatedWeight;
|
208 |
}
|
209 |
-
|
210 |
/**
|
211 |
* Retourne le code civilité de SO Colissimo correspondant au code
|
212 |
* civilité donné.
|
@@ -222,7 +222,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
222 |
}
|
223 |
return $prefixSoCo;
|
224 |
}
|
225 |
-
|
226 |
/**
|
227 |
* Retourne la civilité correspondant au code civilité au format
|
228 |
* SO Colissimo donné.
|
@@ -241,7 +241,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
241 |
|
242 |
/**
|
243 |
* Vérifier que la plateforme socolissimo est disponible
|
244 |
-
*
|
245 |
* @return boolean
|
246 |
*/
|
247 |
public function checkServiceAvailability()
|
@@ -261,7 +261,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
261 |
curl_close($c);
|
262 |
return $serviceAvailable;
|
263 |
}
|
264 |
-
|
265 |
/**
|
266 |
* Vérifie si on est dans le cas du recalcul des frais de livraison
|
267 |
* effectué par Magento à l'étape de vérification de la commande
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstract
|
26 |
* @var string
|
27 |
*/
|
28 |
const FAILURE_URL = 'socolissimosimplicite/form/failure';
|
29 |
+
|
30 |
/**
|
31 |
* Numéro de version à envoyer obligatoirement à la plateforme
|
32 |
* @var string
|
41 |
{
|
42 |
return self::NUM_VERSION;
|
43 |
}
|
44 |
+
|
45 |
/**
|
46 |
* Retourne l'url complète de la page contenant le formulaire à soumettre
|
47 |
* pour l'accès au front de SO Colissimo
|
51 |
{
|
52 |
return Mage::getUrl(self::FORM_URL);
|
53 |
}
|
54 |
+
|
55 |
/**
|
56 |
* Retourne l'url complète appelée en cas de succès suite à la
|
57 |
* sélection de la livraison dans l'interface SO Colissimo
|
62 |
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/success/';
|
63 |
return Mage::getUrl(self::SUCCESS_URL);
|
64 |
}
|
65 |
+
|
66 |
/**
|
67 |
* Retourne l'url complète appelée en cas d'échec suite à
|
68 |
* l'accès au front de SO Colissimo
|
73 |
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/failure/';
|
74 |
return Mage::getUrl(self::FAILURE_URL);
|
75 |
}
|
76 |
+
|
77 |
/**
|
78 |
* Retourne le code du mode de livraison tel qu'utilisé lors du passage
|
79 |
* d'une commande (code transporteur + mode).
|
82 |
public function getRateCode()
|
83 |
{
|
84 |
$shippingMethod = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
|
85 |
+
|
86 |
//le code du transporteur et le code du mode de livraison sont les mêmes
|
87 |
//cf Mage_Shipping_Model_Carrier_Abstract : un seul attribut "code" utilisé dans les deux cas
|
88 |
//les modes de livraison natifs sont également implémentés de cette manière
|
89 |
$carrierCode = $shippingMethod->getCarrierCode();
|
90 |
$methodCode = $shippingMethod->getCarrierCode();
|
91 |
+
|
92 |
return $carrierCode.'_'.$methodCode;
|
93 |
}
|
94 |
+
|
95 |
/**
|
96 |
* Retourne l'identifiant d'accès au FO de SO Colissimo Simplicité
|
97 |
* @return string
|
100 |
{
|
101 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/account');
|
102 |
}
|
103 |
+
|
104 |
/**
|
105 |
* Retourne la clé de cryptage nécessaire à la génération de la signature
|
106 |
* pour l'accès au FO de SO Colissimo Simplicité.
|
110 |
{
|
111 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/encryption_key');
|
112 |
}
|
113 |
+
|
114 |
/**
|
115 |
* Retourne l'url du front de SO Colissimo Simplicité
|
116 |
* @return string
|
119 |
{
|
120 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/url_fo');
|
121 |
}
|
122 |
+
|
123 |
/**
|
124 |
* Retourne le message à afficher lors du choix de mode de livraison,
|
125 |
* sous le titre.
|
129 |
{
|
130 |
return Mage::getStoreConfig('carriers/socolissimosimplicite/selectmessage');
|
131 |
}
|
132 |
+
|
133 |
/**
|
134 |
* Retourne le message à afficher lors de la redirection vers le front de
|
135 |
* SO Colissimo Simplicité.
|
179 |
$map = Mage::getStoreConfig('carriers/socolissimosimplicite/mapprefix');
|
180 |
return json_decode($map, true);
|
181 |
}
|
182 |
+
|
183 |
/**
|
184 |
* Retourne les frais de livraison correctement formatés pour la soumission auprès
|
185 |
* de SO Colissimo
|
192 |
$formatedPrice = number_format($shippingPrice, $maxDecimalDigit, '.', '');
|
193 |
return $formatedPrice;
|
194 |
}
|
195 |
+
|
196 |
/**
|
197 |
* Retourne le poids total de la commande correctement formaté pour la soumission
|
198 |
* auprès de SO Colissimo
|
203 |
{
|
204 |
$weight = str_replace(',', '.', $weight);
|
205 |
$weight = $weight * 1000; //converti kg en g
|
206 |
+
$formatedWeight = number_format($weight, 0, '.', '');
|
207 |
return $formatedWeight;
|
208 |
}
|
209 |
+
|
210 |
/**
|
211 |
* Retourne le code civilité de SO Colissimo correspondant au code
|
212 |
* civilité donné.
|
222 |
}
|
223 |
return $prefixSoCo;
|
224 |
}
|
225 |
+
|
226 |
/**
|
227 |
* Retourne la civilité correspondant au code civilité au format
|
228 |
* SO Colissimo donné.
|
241 |
|
242 |
/**
|
243 |
* Vérifier que la plateforme socolissimo est disponible
|
244 |
+
*
|
245 |
* @return boolean
|
246 |
*/
|
247 |
public function checkServiceAvailability()
|
261 |
curl_close($c);
|
262 |
return $serviceAvailable;
|
263 |
}
|
264 |
+
|
265 |
/**
|
266 |
* Vérifie si on est dans le cas du recalcul des frais de livraison
|
267 |
* effectué par Magento à l'étape de vérification de la commande
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
@@ -21,7 +21,7 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
21 |
* @var string
|
22 |
*/
|
23 |
protected $_code = 'socolissimosimplicite';
|
24 |
-
|
25 |
/**
|
26 |
* Récolte et retourne les informations sur le mode de livraison utiles
|
27 |
* pour le passage d'une commande.
|
@@ -33,8 +33,8 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
33 |
//on stoppe si le mode de livraison n'est pas activé dans la configuration
|
34 |
if (!$this->getConfigFlag('active')) {
|
35 |
return false;
|
36 |
-
}
|
37 |
-
|
38 |
//idem si la limite de poids ou la tranche de prix ne sont pas respectés
|
39 |
$packageValue = $request->getPackageValue();
|
40 |
$packageWeight = $request->getPackageWeight();
|
@@ -44,16 +44,16 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
44 |
&& ($this->getConfigData('max_weight') == '' || $packageWeight <= $this->getConfigData('max_weight'));
|
45 |
|
46 |
$result = Mage::getModel('shipping/rate_result');
|
47 |
-
|
48 |
if ($allow == true) {
|
49 |
$method = Mage::getModel('shipping/rate_result_method');
|
50 |
-
|
51 |
$method->setCarrier($this->_code);
|
52 |
$method->setCarrierTitle($this->getConfigData('title'));
|
53 |
-
|
54 |
$method->setMethod($this->_code);
|
55 |
$method->setMethodTitle($this->getConfigData('name'));
|
56 |
-
|
57 |
// vérifier si la livraison collisimo est offerte et à partir de quel montant
|
58 |
$minQuotePriceForFreeShipping = $this->getConfigData('minquotepriceforfree');
|
59 |
$quotePriceWithDiscount = $request->getData('package_value_with_discount');
|
@@ -62,17 +62,17 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
62 |
} else {
|
63 |
$method->setPrice($this->getCalculatedPrice());
|
64 |
}
|
65 |
-
|
66 |
// vérifier si la livraison collisimo est offerte via une règle de prix
|
67 |
if ($request->getFreeShipping()) {
|
68 |
$method->setPrice(0);
|
69 |
}
|
70 |
-
|
71 |
$result->append($method);
|
72 |
}
|
73 |
return $result;
|
74 |
}
|
75 |
-
|
76 |
/**
|
77 |
* Retourne les modes de livraison authorisés.
|
78 |
* @return array
|
@@ -81,7 +81,7 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
81 |
{
|
82 |
return array($this->_code => $this->getConfigData('name'));
|
83 |
}
|
84 |
-
|
85 |
/**
|
86 |
* Retourne le montant des frais de livraison après éventuels calculs
|
87 |
* selon le mode de tarification choisi dans l'administration.
|
@@ -92,13 +92,13 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
92 |
$amountBaseType = $this->getConfigData('amountbasetype');
|
93 |
$amountCalculation = $this->getConfigData('amountcalculation');
|
94 |
$helper = Mage::helper('socolissimosimplicite');
|
95 |
-
|
96 |
// récupérer l'adresse
|
97 |
$shippingAddress = Mage::getModel('checkout/cart')->getQuote()->getShippingAddress();
|
98 |
|
99 |
// en mode rendez-vous, on utilise directement le prix transmis par socolissimo
|
100 |
// on ne re-calcule pas (supplément de 4€)
|
101 |
-
if ($shippingAddress->getData('soco_mode_rdv') == true
|
102 |
and $shippingAddress->getData('base_shipping_amount') > 0) {
|
103 |
return $shippingAddress->getData('base_shipping_amount');
|
104 |
// sinon si bug des frais RDV non comptabilisés, on utilise le montant mémorisé en session
|
@@ -167,14 +167,14 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
167 |
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le sous-total" fournie "'.$amountCalculation.'" n\'est pas dans le bon format, exemple {"0":"3","50":"5","100":"8","250":"0"}'));
|
168 |
}
|
169 |
}
|
170 |
-
break;
|
171 |
default:
|
172 |
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Type des frais de livraison" fourni "'.$amountBaseType.'" n\'est pas disponible'));
|
173 |
break;
|
174 |
}
|
175 |
return $calculatedPrice;
|
176 |
}
|
177 |
-
|
178 |
/**
|
179 |
* Getter for carrier code
|
180 |
* needed for Magento version under 1.4
|
@@ -184,5 +184,5 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
184 |
public function getCarrierCode()
|
185 |
{
|
186 |
return $this->_code;
|
187 |
-
}
|
188 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
21 |
* @var string
|
22 |
*/
|
23 |
protected $_code = 'socolissimosimplicite';
|
24 |
+
|
25 |
/**
|
26 |
* Récolte et retourne les informations sur le mode de livraison utiles
|
27 |
* pour le passage d'une commande.
|
33 |
//on stoppe si le mode de livraison n'est pas activé dans la configuration
|
34 |
if (!$this->getConfigFlag('active')) {
|
35 |
return false;
|
36 |
+
}
|
37 |
+
|
38 |
//idem si la limite de poids ou la tranche de prix ne sont pas respectés
|
39 |
$packageValue = $request->getPackageValue();
|
40 |
$packageWeight = $request->getPackageWeight();
|
44 |
&& ($this->getConfigData('max_weight') == '' || $packageWeight <= $this->getConfigData('max_weight'));
|
45 |
|
46 |
$result = Mage::getModel('shipping/rate_result');
|
47 |
+
|
48 |
if ($allow == true) {
|
49 |
$method = Mage::getModel('shipping/rate_result_method');
|
50 |
+
|
51 |
$method->setCarrier($this->_code);
|
52 |
$method->setCarrierTitle($this->getConfigData('title'));
|
53 |
+
|
54 |
$method->setMethod($this->_code);
|
55 |
$method->setMethodTitle($this->getConfigData('name'));
|
56 |
+
|
57 |
// vérifier si la livraison collisimo est offerte et à partir de quel montant
|
58 |
$minQuotePriceForFreeShipping = $this->getConfigData('minquotepriceforfree');
|
59 |
$quotePriceWithDiscount = $request->getData('package_value_with_discount');
|
62 |
} else {
|
63 |
$method->setPrice($this->getCalculatedPrice());
|
64 |
}
|
65 |
+
|
66 |
// vérifier si la livraison collisimo est offerte via une règle de prix
|
67 |
if ($request->getFreeShipping()) {
|
68 |
$method->setPrice(0);
|
69 |
}
|
70 |
+
|
71 |
$result->append($method);
|
72 |
}
|
73 |
return $result;
|
74 |
}
|
75 |
+
|
76 |
/**
|
77 |
* Retourne les modes de livraison authorisés.
|
78 |
* @return array
|
81 |
{
|
82 |
return array($this->_code => $this->getConfigData('name'));
|
83 |
}
|
84 |
+
|
85 |
/**
|
86 |
* Retourne le montant des frais de livraison après éventuels calculs
|
87 |
* selon le mode de tarification choisi dans l'administration.
|
92 |
$amountBaseType = $this->getConfigData('amountbasetype');
|
93 |
$amountCalculation = $this->getConfigData('amountcalculation');
|
94 |
$helper = Mage::helper('socolissimosimplicite');
|
95 |
+
|
96 |
// récupérer l'adresse
|
97 |
$shippingAddress = Mage::getModel('checkout/cart')->getQuote()->getShippingAddress();
|
98 |
|
99 |
// en mode rendez-vous, on utilise directement le prix transmis par socolissimo
|
100 |
// on ne re-calcule pas (supplément de 4€)
|
101 |
+
if ($shippingAddress->getData('soco_mode_rdv') == true
|
102 |
and $shippingAddress->getData('base_shipping_amount') > 0) {
|
103 |
return $shippingAddress->getData('base_shipping_amount');
|
104 |
// sinon si bug des frais RDV non comptabilisés, on utilise le montant mémorisé en session
|
167 |
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le sous-total" fournie "'.$amountCalculation.'" n\'est pas dans le bon format, exemple {"0":"3","50":"5","100":"8","250":"0"}'));
|
168 |
}
|
169 |
}
|
170 |
+
break;
|
171 |
default:
|
172 |
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Type des frais de livraison" fourni "'.$amountBaseType.'" n\'est pas disponible'));
|
173 |
break;
|
174 |
}
|
175 |
return $calculatedPrice;
|
176 |
}
|
177 |
+
|
178 |
/**
|
179 |
* Getter for carrier code
|
180 |
* needed for Magento version under 1.4
|
184 |
public function getCarrierCode()
|
185 |
{
|
186 |
return $this->_code;
|
187 |
+
}
|
188 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
@@ -16,7 +16,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
16 |
{
|
17 |
const modRDV = 'RDV';
|
18 |
const modDOM = 'DOM';
|
19 |
-
|
20 |
/**
|
21 |
* Tableau de correspondance les champs simples retournés par SO COlissimo
|
22 |
* et les champs d'une adresse de livraison dans Magento.
|
@@ -33,8 +33,8 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
33 |
'DYFORWARDINGCHARGES' => 'base_shipping_amount',
|
34 |
'PRZIPCODE' => 'postcode',
|
35 |
'PRTOWN' => 'city'
|
36 |
-
);
|
37 |
-
|
38 |
/**
|
39 |
* Met à jour les données de livraison à partir des infos récupérées depuis
|
40 |
* SO Colissimo.
|
@@ -46,14 +46,14 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
46 |
public function setShippingAddressWithSoColissimoAddress($observer)
|
47 |
{
|
48 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
49 |
-
|
50 |
$transactionId = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_transactionid');
|
51 |
$nextStep = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_nextstep');
|
52 |
-
|
53 |
//on regarde s'il existe une transaction avec SO Colissimo en session et si on cherche à afficher
|
54 |
//le choix du mode de paiement
|
55 |
if ($transactionId && $nextStep == 'payment') {
|
56 |
-
|
57 |
//on regarde s'il s'agit d'une adresse de livraison
|
58 |
$shippingAddress = Mage::getModel('checkout/cart')
|
59 |
->getQuote()->getShippingAddress();
|
@@ -64,16 +64,16 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
64 |
//il faut donc mettre à jour les informations de livraison récupérées
|
65 |
//depuis SO Colissimo
|
66 |
$shippingData = $checkoutSession->getData('socolissimosimplicite_shipping_data');
|
67 |
-
|
68 |
$this->_updateQuoteAndShippingAddress($shippingAddress, $shippingData);
|
69 |
}
|
70 |
}
|
71 |
}
|
72 |
-
|
73 |
public function clearCheckoutSession($observer)
|
74 |
{
|
75 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
76 |
-
|
77 |
if ($checkoutSession) {
|
78 |
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
|
79 |
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_transactionid');
|
@@ -86,13 +86,13 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
86 |
$checkoutSession->unsetData('socolissimosimplicite_shipping_amount');
|
87 |
}
|
88 |
}
|
89 |
-
|
90 |
/**
|
91 |
-
*
|
92 |
* Sauvegarde les donnees de la commande propre a So Colissimo
|
93 |
* @param $observer
|
94 |
*/
|
95 |
-
|
96 |
public function addSocoAttributesToOrder($observer)
|
97 |
{
|
98 |
try {
|
@@ -110,13 +110,13 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
110 |
$observer->getEvent()->getOrder()->setSocoShippingInstruction($shippingData['CEDELIVERYINFORMATION']);
|
111 |
}
|
112 |
|
113 |
-
if (isset($shippingData['CEDOORCODE1'])) {
|
114 |
$observer->getEvent()->getOrder()->setSocoDoorCode1($shippingData['CEDOORCODE1']);
|
115 |
}
|
116 |
|
117 |
if (isset($shippingData['CEDOORCODE2'])) {
|
118 |
$observer->getEvent()->getOrder()->setSocoDoorCode2($shippingData['CEDOORCODE2']);
|
119 |
-
}
|
120 |
|
121 |
if (isset($shippingData['CEENTRYPHONE'])) {
|
122 |
$observer->getEvent()->getOrder()->setSocoInterphone($shippingData['CEENTRYPHONE']);
|
@@ -124,7 +124,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
124 |
|
125 |
if (isset($shippingData['PRID'])) {
|
126 |
$observer->getEvent()->getOrder()->setSocoRelayPointCode($shippingData['PRID']);
|
127 |
-
}
|
128 |
|
129 |
if (isset($shippingData['CECIVILITY'])) {
|
130 |
$observer->getEvent()->getOrder()->setSocoCivility($shippingData['CECIVILITY']);
|
@@ -142,7 +142,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
142 |
Mage::Log('Failed to save so-colissimo data : '.print_r($shippingData, true));
|
143 |
}
|
144 |
}
|
145 |
-
|
146 |
/**
|
147 |
* Met à jour les données sur l'adresse de livraison à partir des
|
148 |
* informations retournées par SO Colissimo.
|
@@ -159,13 +159,13 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
159 |
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
160 |
|
161 |
$helper = Mage::helper('socolissimosimplicite');
|
162 |
-
|
163 |
$arrayData = array();
|
164 |
$arrayData['customer_address_id'] = null;
|
165 |
|
166 |
$street = array();
|
167 |
$customerNotesArray = array();
|
168 |
-
|
169 |
foreach ($shippingData as $fieldSoCo => $valueSoCo) {
|
170 |
if (array_key_exists($fieldSoCo, $this->_mapFields)) {
|
171 |
$fieldMagento = $this->_mapFields[$fieldSoCo];
|
@@ -177,9 +177,9 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
177 |
case 'CECIVILITY':
|
178 |
$arrayData['prefix'] = $helper->getPrefixForMagento($shippingValue);
|
179 |
break;
|
180 |
-
|
181 |
//cas particulier des informations de rue, complément d'adresse etc.
|
182 |
-
|
183 |
//cas livraison à domicile
|
184 |
case 'CEADRESS3':
|
185 |
$street['0'] = $shippingValue; //mis en 1er car numéro de rue obligatoire côté SoCo
|
@@ -221,33 +221,33 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
221 |
case 'CEDELIVERYINFORMATION':
|
222 |
$customerNotesArray['3'] = $shippingValue;
|
223 |
break;
|
224 |
-
|
225 |
default:
|
226 |
break;
|
227 |
}
|
228 |
}
|
229 |
}
|
230 |
-
|
231 |
if (! empty($customerNotesArray)) {
|
232 |
$arrayData['customer_notes'] = implode("\n", $customerNotesArray);
|
233 |
}
|
234 |
|
235 |
//recuperation du mode de livraison choisi
|
236 |
$deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] : null;
|
237 |
-
|
238 |
// sauvegarde dans le carnet d'adresse seulement pour le mode domicile
|
239 |
if ($deliveryMode != self::modDOM) {
|
240 |
$arrayData['save_in_address_book'] = 0;
|
241 |
}
|
242 |
-
|
243 |
//en mode RDV, on ajoute dans l'adresse la notion de rendez-vous
|
244 |
if ($deliveryMode == self::modRDV) {
|
245 |
if (isset($street['3'])) {
|
246 |
-
$street['3'] .= ' '.$helper->__('
|
247 |
} else {
|
248 |
-
$street['3'] = $helper->__('
|
249 |
}
|
250 |
-
|
251 |
// marquer le mode RDV au niveau de l'adresse (calcul dépend du mode)
|
252 |
$arrayData['soco_mode_rdv'] = true;
|
253 |
} else {
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
16 |
{
|
17 |
const modRDV = 'RDV';
|
18 |
const modDOM = 'DOM';
|
19 |
+
|
20 |
/**
|
21 |
* Tableau de correspondance les champs simples retournés par SO COlissimo
|
22 |
* et les champs d'une adresse de livraison dans Magento.
|
33 |
'DYFORWARDINGCHARGES' => 'base_shipping_amount',
|
34 |
'PRZIPCODE' => 'postcode',
|
35 |
'PRTOWN' => 'city'
|
36 |
+
);
|
37 |
+
|
38 |
/**
|
39 |
* Met à jour les données de livraison à partir des infos récupérées depuis
|
40 |
* SO Colissimo.
|
46 |
public function setShippingAddressWithSoColissimoAddress($observer)
|
47 |
{
|
48 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
49 |
+
|
50 |
$transactionId = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_transactionid');
|
51 |
$nextStep = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_nextstep');
|
52 |
+
|
53 |
//on regarde s'il existe une transaction avec SO Colissimo en session et si on cherche à afficher
|
54 |
//le choix du mode de paiement
|
55 |
if ($transactionId && $nextStep == 'payment') {
|
56 |
+
|
57 |
//on regarde s'il s'agit d'une adresse de livraison
|
58 |
$shippingAddress = Mage::getModel('checkout/cart')
|
59 |
->getQuote()->getShippingAddress();
|
64 |
//il faut donc mettre à jour les informations de livraison récupérées
|
65 |
//depuis SO Colissimo
|
66 |
$shippingData = $checkoutSession->getData('socolissimosimplicite_shipping_data');
|
67 |
+
|
68 |
$this->_updateQuoteAndShippingAddress($shippingAddress, $shippingData);
|
69 |
}
|
70 |
}
|
71 |
}
|
72 |
+
|
73 |
public function clearCheckoutSession($observer)
|
74 |
{
|
75 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
76 |
+
|
77 |
if ($checkoutSession) {
|
78 |
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
|
79 |
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_transactionid');
|
86 |
$checkoutSession->unsetData('socolissimosimplicite_shipping_amount');
|
87 |
}
|
88 |
}
|
89 |
+
|
90 |
/**
|
91 |
+
*
|
92 |
* Sauvegarde les donnees de la commande propre a So Colissimo
|
93 |
* @param $observer
|
94 |
*/
|
95 |
+
|
96 |
public function addSocoAttributesToOrder($observer)
|
97 |
{
|
98 |
try {
|
110 |
$observer->getEvent()->getOrder()->setSocoShippingInstruction($shippingData['CEDELIVERYINFORMATION']);
|
111 |
}
|
112 |
|
113 |
+
if (isset($shippingData['CEDOORCODE1'])) {
|
114 |
$observer->getEvent()->getOrder()->setSocoDoorCode1($shippingData['CEDOORCODE1']);
|
115 |
}
|
116 |
|
117 |
if (isset($shippingData['CEDOORCODE2'])) {
|
118 |
$observer->getEvent()->getOrder()->setSocoDoorCode2($shippingData['CEDOORCODE2']);
|
119 |
+
}
|
120 |
|
121 |
if (isset($shippingData['CEENTRYPHONE'])) {
|
122 |
$observer->getEvent()->getOrder()->setSocoInterphone($shippingData['CEENTRYPHONE']);
|
124 |
|
125 |
if (isset($shippingData['PRID'])) {
|
126 |
$observer->getEvent()->getOrder()->setSocoRelayPointCode($shippingData['PRID']);
|
127 |
+
}
|
128 |
|
129 |
if (isset($shippingData['CECIVILITY'])) {
|
130 |
$observer->getEvent()->getOrder()->setSocoCivility($shippingData['CECIVILITY']);
|
142 |
Mage::Log('Failed to save so-colissimo data : '.print_r($shippingData, true));
|
143 |
}
|
144 |
}
|
145 |
+
|
146 |
/**
|
147 |
* Met à jour les données sur l'adresse de livraison à partir des
|
148 |
* informations retournées par SO Colissimo.
|
159 |
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
160 |
|
161 |
$helper = Mage::helper('socolissimosimplicite');
|
162 |
+
|
163 |
$arrayData = array();
|
164 |
$arrayData['customer_address_id'] = null;
|
165 |
|
166 |
$street = array();
|
167 |
$customerNotesArray = array();
|
168 |
+
|
169 |
foreach ($shippingData as $fieldSoCo => $valueSoCo) {
|
170 |
if (array_key_exists($fieldSoCo, $this->_mapFields)) {
|
171 |
$fieldMagento = $this->_mapFields[$fieldSoCo];
|
177 |
case 'CECIVILITY':
|
178 |
$arrayData['prefix'] = $helper->getPrefixForMagento($shippingValue);
|
179 |
break;
|
180 |
+
|
181 |
//cas particulier des informations de rue, complément d'adresse etc.
|
182 |
+
|
183 |
//cas livraison à domicile
|
184 |
case 'CEADRESS3':
|
185 |
$street['0'] = $shippingValue; //mis en 1er car numéro de rue obligatoire côté SoCo
|
221 |
case 'CEDELIVERYINFORMATION':
|
222 |
$customerNotesArray['3'] = $shippingValue;
|
223 |
break;
|
224 |
+
|
225 |
default:
|
226 |
break;
|
227 |
}
|
228 |
}
|
229 |
}
|
230 |
+
|
231 |
if (! empty($customerNotesArray)) {
|
232 |
$arrayData['customer_notes'] = implode("\n", $customerNotesArray);
|
233 |
}
|
234 |
|
235 |
//recuperation du mode de livraison choisi
|
236 |
$deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] : null;
|
237 |
+
|
238 |
// sauvegarde dans le carnet d'adresse seulement pour le mode domicile
|
239 |
if ($deliveryMode != self::modDOM) {
|
240 |
$arrayData['save_in_address_book'] = 0;
|
241 |
}
|
242 |
+
|
243 |
//en mode RDV, on ajoute dans l'adresse la notion de rendez-vous
|
244 |
if ($deliveryMode == self::modRDV) {
|
245 |
if (isset($street['3'])) {
|
246 |
+
$street['3'] .= ' '.$helper->__('livraison sur rendez-vous');
|
247 |
} else {
|
248 |
+
$street['3'] = $helper->__('livraison sur rendez-vous');
|
249 |
}
|
250 |
+
|
251 |
// marquer le mode RDV au niveau de l'adresse (calcul dépend du mode)
|
252 |
$arrayData['soco_mode_rdv'] = true;
|
253 |
} else {
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Transaction.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
@@ -15,7 +15,7 @@
|
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Abstract
|
16 |
{
|
17 |
protected $_helper;
|
18 |
-
|
19 |
/**
|
20 |
* Constructeur par défaut
|
21 |
* @return LaPoste_SoColissimoSimplicite_Model_Transaction
|
@@ -25,7 +25,7 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
25 |
parent::_construct();
|
26 |
$this->_init('socolissimosimplicite/transaction');
|
27 |
}
|
28 |
-
|
29 |
/**
|
30 |
* Retourne le helper principal du module.
|
31 |
* @return LaPoste_SoColissimoSimplicite_Helper_Data
|
@@ -37,7 +37,7 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
37 |
}
|
38 |
return $this->_helper;
|
39 |
}
|
40 |
-
|
41 |
/**
|
42 |
* Crée et sauvegarde les données de la transaction avec SO Colissimo
|
43 |
* (avant l'accès à la plateforme).
|
@@ -49,20 +49,20 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
49 |
$now = date('Y-m-d h:i:s');
|
50 |
$this->setCreatedAt($now);
|
51 |
$this->setIsDone(0);
|
52 |
-
|
53 |
try {
|
54 |
$this->setQuoteId($shippingAddress->getQuoteId());
|
55 |
$this->save(); //1ère sauvegarde pour récupérer le transaction_id pour la signature
|
56 |
|
57 |
$this->setSignature($this->_getGeneratedSignature($shippingAddress));
|
58 |
$this->save();
|
59 |
-
|
60 |
} catch (Exception $e) {
|
61 |
throw new Exception($e);
|
62 |
}
|
63 |
return $this;
|
64 |
}
|
65 |
-
|
66 |
/**
|
67 |
* Génère la signature requise pour l'accès à la plateforme SO Colissimo (front-office).
|
68 |
*
|
@@ -92,14 +92,24 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
92 |
*
|
93 |
* @param LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod $method
|
94 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
95 |
-
* @todo when signature is calculated with strtolower($stringToConvert),
|
96 |
* access to colissimo is forbidden (error code 007 signature invalide)
|
97 |
* @return string signature de 160 bits (40 caractères)
|
98 |
*/
|
99 |
protected function _getGeneratedSignature($shippingAddress)
|
100 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
$stringToConvert = '';
|
102 |
-
|
103 |
$shippingPrice = ($shippingAddress->getFreeShipping() === '1') ? 0 : $shippingAddress->getShippingAmount();
|
104 |
$data = array(
|
105 |
'pudoFOId'=>$this->helper()->getAccountId(),
|
@@ -119,22 +129,22 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
119 |
'ceZipCode'=>$shippingAddress->getPostcode(),
|
120 |
'ceTown'=>$shippingAddress->getCity(),
|
121 |
'ceEmail'=>$shippingAddress->getEmail(),
|
122 |
-
'cePhoneNumber'=>$
|
123 |
'dyWeight'=>$this->helper()->getFormatedWeight($shippingAddress->getWeight()),
|
124 |
'trReturnUrlKo'=>$this->helper()->getFailureUrl(),
|
125 |
'trReturnUrlOk'=>$this->helper()->getSuccessUrl(),
|
126 |
'encryptionKey'=>$this->helper()->getEncryptionKey(),
|
127 |
);
|
128 |
-
|
129 |
foreach ($data as $field=>$value) {
|
130 |
if (!empty($value)) {
|
131 |
$stringToConvert .= utf8_decode($value);
|
132 |
}
|
133 |
}
|
134 |
-
|
135 |
return sha1($stringToConvert);
|
136 |
}
|
137 |
-
|
138 |
/**
|
139 |
* Retourne la ligne n° $line des informations (rue, étage, immeuble, etc.) de l'adresse
|
140 |
* de livraison de la commande en cours.
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Abstract
|
16 |
{
|
17 |
protected $_helper;
|
18 |
+
|
19 |
/**
|
20 |
* Constructeur par défaut
|
21 |
* @return LaPoste_SoColissimoSimplicite_Model_Transaction
|
25 |
parent::_construct();
|
26 |
$this->_init('socolissimosimplicite/transaction');
|
27 |
}
|
28 |
+
|
29 |
/**
|
30 |
* Retourne le helper principal du module.
|
31 |
* @return LaPoste_SoColissimoSimplicite_Helper_Data
|
37 |
}
|
38 |
return $this->_helper;
|
39 |
}
|
40 |
+
|
41 |
/**
|
42 |
* Crée et sauvegarde les données de la transaction avec SO Colissimo
|
43 |
* (avant l'accès à la plateforme).
|
49 |
$now = date('Y-m-d h:i:s');
|
50 |
$this->setCreatedAt($now);
|
51 |
$this->setIsDone(0);
|
52 |
+
|
53 |
try {
|
54 |
$this->setQuoteId($shippingAddress->getQuoteId());
|
55 |
$this->save(); //1ère sauvegarde pour récupérer le transaction_id pour la signature
|
56 |
|
57 |
$this->setSignature($this->_getGeneratedSignature($shippingAddress));
|
58 |
$this->save();
|
59 |
+
|
60 |
} catch (Exception $e) {
|
61 |
throw new Exception($e);
|
62 |
}
|
63 |
return $this;
|
64 |
}
|
65 |
+
|
66 |
/**
|
67 |
* Génère la signature requise pour l'accès à la plateforme SO Colissimo (front-office).
|
68 |
*
|
92 |
*
|
93 |
* @param LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod $method
|
94 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
95 |
+
* @todo when signature is calculated with strtolower($stringToConvert),
|
96 |
* access to colissimo is forbidden (error code 007 signature invalide)
|
97 |
* @return string signature de 160 bits (40 caractères)
|
98 |
*/
|
99 |
protected function _getGeneratedSignature($shippingAddress)
|
100 |
{
|
101 |
+
// transfer phone number only if its a cell phone
|
102 |
+
// Same code is used in form.phtml
|
103 |
+
$phone = $shippingAddress->getTelephone();
|
104 |
+
$phone = substr($phone, 0, 2);
|
105 |
+
if (($phone == '06') || ($phone == '07')) {
|
106 |
+
$phone = $shippingAddress->getTelephone();
|
107 |
+
} else {
|
108 |
+
$phone = '';
|
109 |
+
}
|
110 |
+
|
111 |
$stringToConvert = '';
|
112 |
+
|
113 |
$shippingPrice = ($shippingAddress->getFreeShipping() === '1') ? 0 : $shippingAddress->getShippingAmount();
|
114 |
$data = array(
|
115 |
'pudoFOId'=>$this->helper()->getAccountId(),
|
129 |
'ceZipCode'=>$shippingAddress->getPostcode(),
|
130 |
'ceTown'=>$shippingAddress->getCity(),
|
131 |
'ceEmail'=>$shippingAddress->getEmail(),
|
132 |
+
'cePhoneNumber'=>$phone,
|
133 |
'dyWeight'=>$this->helper()->getFormatedWeight($shippingAddress->getWeight()),
|
134 |
'trReturnUrlKo'=>$this->helper()->getFailureUrl(),
|
135 |
'trReturnUrlOk'=>$this->helper()->getSuccessUrl(),
|
136 |
'encryptionKey'=>$this->helper()->getEncryptionKey(),
|
137 |
);
|
138 |
+
|
139 |
foreach ($data as $field=>$value) {
|
140 |
if (!empty($value)) {
|
141 |
$stringToConvert .= utf8_decode($value);
|
142 |
}
|
143 |
}
|
144 |
+
|
145 |
return sha1($stringToConvert);
|
146 |
}
|
147 |
+
|
148 |
/**
|
149 |
* Retourne la ligne n° $line des informations (rue, étage, immeuble, etc.) de l'adresse
|
150 |
* de livraison de la commande en cours.
|
app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
@@ -23,33 +23,22 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
23 |
|
24 |
// vérifier la disponibilité de la plateforme, si ce n'est pas le cas,
|
25 |
// sélectionner la livraison à domicile et passer à l'étape suivante
|
|
|
|
|
26 |
$helper = Mage::helper('socolissimosimplicite');
|
27 |
if ($helper->getServiceIsAvailable() and $helper->getServiceIsAvailableUrl() != '') {
|
28 |
$serviceAvailable = $helper->checkServiceAvailability();
|
29 |
// passer à l'étape suivante avec le mode livraison à domicile
|
30 |
if (!$serviceAvailable) {
|
31 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'payment');
|
32 |
-
$
|
33 |
-
return;
|
34 |
}
|
35 |
}
|
36 |
|
37 |
-
// utiliser un flag en session pour vérifier si l'on accède à l'action suite
|
38 |
-
// à un retour du site collissimo, si c'est le cas on redirige sur le checkout
|
39 |
-
if ($checkoutSession->hasData('socolissimosimplicite_from_socolissimo')) {
|
40 |
-
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
41 |
-
// sauvegarde de l'étape suivante en session (choix de la méthode de livraison)
|
42 |
-
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'shipping_method');
|
43 |
-
$this->getResponse()->setRedirect(Mage::getUrl('checkout/onepage'));
|
44 |
-
return;
|
45 |
-
} else {
|
46 |
-
$checkoutSession->setData('socolissimosimplicite_from_socolissimo', true);
|
47 |
-
}
|
48 |
-
|
49 |
//récupération de l'adresse de livraison de la commande en cours
|
50 |
$shippingAddress = $this->getShippingAddress();
|
51 |
|
52 |
-
// on relance le calcul du prix de livraison pour gérer le cas du choix
|
53 |
// du mode RDV puis du retour en arrière et du choix du mode classique
|
54 |
$shippingAddress->setCollectShippingRates(true);
|
55 |
$shippingAddress->collectShippingRates();
|
@@ -64,11 +53,12 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
64 |
//passage de données à la vue
|
65 |
$this->getLayout()->getBlock('form.socolissimosimplicite')
|
66 |
->setShippingAddress($shippingAddress)
|
67 |
-
->setTransaction($transaction)
|
|
|
68 |
|
69 |
$this->renderLayout();
|
70 |
}
|
71 |
-
|
72 |
/**
|
73 |
* Succès suite au retour de SO Colissimo
|
74 |
* @todo use TRPARAMPLUS to pass / get "payment" ?
|
@@ -86,12 +76,12 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
86 |
// sauvegarde des données retournées par SO Colissimo en session (choix du mode de paiement)
|
87 |
$this->_saveSoColissimoData($checkoutSession);
|
88 |
|
89 |
-
// sauvegarde de l'étape suivante en session
|
90 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'payment');
|
91 |
|
92 |
$this->getResponse()->setRedirect(Mage::getUrl('checkout/onepage'));
|
93 |
}
|
94 |
-
|
95 |
/**
|
96 |
* Échec lors de la soumission du formulaire d'accès à SO Colissimo
|
97 |
*/
|
@@ -100,10 +90,10 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
100 |
// permettre de revenir en arrière pour change le mode de livraison
|
101 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
102 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
103 |
-
|
104 |
// sauvegarde de l'étape suivante en session (choix de la méthode de livraison)
|
105 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'shipping_method');
|
106 |
-
|
107 |
// récupérer le code erreur et afficher le message correspondant
|
108 |
$errCode = trim($this->getRequest()->getPost('ERRORCODE'));
|
109 |
$helper = Mage::helper('socolissimosimplicite');
|
@@ -128,11 +118,11 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
128 |
} else {
|
129 |
$msg = $helper->__('Erreur non identifiée');
|
130 |
}
|
131 |
-
$checkoutSession->addError($msg);
|
132 |
$this->_redirect('checkout/cart');
|
133 |
return;
|
134 |
}
|
135 |
-
|
136 |
/**
|
137 |
* Retourne l'adresse de livraison de la commande en cours.
|
138 |
* @todo to deal with session lost
|
@@ -144,7 +134,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
144 |
->getQuote()->getShippingAddress();
|
145 |
return $shippingAddress;
|
146 |
}
|
147 |
-
|
148 |
/**
|
149 |
* Vérifie si la signature a changée (ie l'adresse de livraison a changée),
|
150 |
* dans ce cas mettre à jour la signature
|
@@ -155,7 +145,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
155 |
// signature invalide
|
156 |
if (empty($newSignature)) {
|
157 |
throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la signature retournée par colissimo est vide"));
|
158 |
-
}
|
159 |
$transactionId = $this->getRequest()->getParam('ORDERID');
|
160 |
$transactions = Mage::getModel('socolissimosimplicite/transaction')
|
161 |
->getCollection()
|
@@ -172,7 +162,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
172 |
$transaction->save();
|
173 |
}
|
174 |
}
|
175 |
-
|
176 |
/**
|
177 |
* Enregistre les données retournées par SO Colissimo en session,
|
178 |
* afin de mettre à jour les données de livraison ultérieurement.
|
@@ -198,7 +188,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
198 |
// sauve transaction id, pour éviter de créer une nouvelle transaction si retour en arrière
|
199 |
$transactionId = $this->getRequest()->getParam('ORDERID');
|
200 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_transactionid', $transactionId);
|
201 |
-
|
202 |
// indique que l'adresse vient de socolissimo
|
203 |
$checkoutSession->setData('socolissimosimplicite_new_address_from_socolissimo', true);
|
204 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
23 |
|
24 |
// vérifier la disponibilité de la plateforme, si ce n'est pas le cas,
|
25 |
// sélectionner la livraison à domicile et passer à l'étape suivante
|
26 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
27 |
+
$serviceUnavailableRedirect = null;
|
28 |
$helper = Mage::helper('socolissimosimplicite');
|
29 |
if ($helper->getServiceIsAvailable() and $helper->getServiceIsAvailableUrl() != '') {
|
30 |
$serviceAvailable = $helper->checkServiceAvailability();
|
31 |
// passer à l'étape suivante avec le mode livraison à domicile
|
32 |
if (!$serviceAvailable) {
|
33 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'payment');
|
34 |
+
$serviceUnavailableRedirect = Mage::getUrl('checkout/onepage');
|
|
|
35 |
}
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
//récupération de l'adresse de livraison de la commande en cours
|
39 |
$shippingAddress = $this->getShippingAddress();
|
40 |
|
41 |
+
// on relance le calcul du prix de livraison pour gérer le cas du choix
|
42 |
// du mode RDV puis du retour en arrière et du choix du mode classique
|
43 |
$shippingAddress->setCollectShippingRates(true);
|
44 |
$shippingAddress->collectShippingRates();
|
53 |
//passage de données à la vue
|
54 |
$this->getLayout()->getBlock('form.socolissimosimplicite')
|
55 |
->setShippingAddress($shippingAddress)
|
56 |
+
->setTransaction($transaction)
|
57 |
+
->setServiceUnavailableRedirect($serviceUnavailableRedirect);
|
58 |
|
59 |
$this->renderLayout();
|
60 |
}
|
61 |
+
|
62 |
/**
|
63 |
* Succès suite au retour de SO Colissimo
|
64 |
* @todo use TRPARAMPLUS to pass / get "payment" ?
|
76 |
// sauvegarde des données retournées par SO Colissimo en session (choix du mode de paiement)
|
77 |
$this->_saveSoColissimoData($checkoutSession);
|
78 |
|
79 |
+
// sauvegarde de l'étape suivante en session
|
80 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'payment');
|
81 |
|
82 |
$this->getResponse()->setRedirect(Mage::getUrl('checkout/onepage'));
|
83 |
}
|
84 |
+
|
85 |
/**
|
86 |
* Échec lors de la soumission du formulaire d'accès à SO Colissimo
|
87 |
*/
|
90 |
// permettre de revenir en arrière pour change le mode de livraison
|
91 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
92 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
93 |
+
|
94 |
// sauvegarde de l'étape suivante en session (choix de la méthode de livraison)
|
95 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_nextstep', 'shipping_method');
|
96 |
+
|
97 |
// récupérer le code erreur et afficher le message correspondant
|
98 |
$errCode = trim($this->getRequest()->getPost('ERRORCODE'));
|
99 |
$helper = Mage::helper('socolissimosimplicite');
|
118 |
} else {
|
119 |
$msg = $helper->__('Erreur non identifiée');
|
120 |
}
|
121 |
+
$checkoutSession->addError($msg);
|
122 |
$this->_redirect('checkout/cart');
|
123 |
return;
|
124 |
}
|
125 |
+
|
126 |
/**
|
127 |
* Retourne l'adresse de livraison de la commande en cours.
|
128 |
* @todo to deal with session lost
|
134 |
->getQuote()->getShippingAddress();
|
135 |
return $shippingAddress;
|
136 |
}
|
137 |
+
|
138 |
/**
|
139 |
* Vérifie si la signature a changée (ie l'adresse de livraison a changée),
|
140 |
* dans ce cas mettre à jour la signature
|
145 |
// signature invalide
|
146 |
if (empty($newSignature)) {
|
147 |
throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la signature retournée par colissimo est vide"));
|
148 |
+
}
|
149 |
$transactionId = $this->getRequest()->getParam('ORDERID');
|
150 |
$transactions = Mage::getModel('socolissimosimplicite/transaction')
|
151 |
->getCollection()
|
162 |
$transaction->save();
|
163 |
}
|
164 |
}
|
165 |
+
|
166 |
/**
|
167 |
* Enregistre les données retournées par SO Colissimo en session,
|
168 |
* afin de mettre à jour les données de livraison ultérieurement.
|
188 |
// sauve transaction id, pour éviter de créer une nouvelle transaction si retour en arrière
|
189 |
$transactionId = $this->getRequest()->getParam('ORDERID');
|
190 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_transactionid', $transactionId);
|
191 |
+
|
192 |
// indique que l'adresse vient de socolissimo
|
193 |
$checkoutSession->setData('socolissimosimplicite_new_address_from_socolissimo', true);
|
194 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml
CHANGED
@@ -6,14 +6,14 @@
|
|
6 |
* @category LaPoste
|
7 |
* @package LaPoste_SoColissimoSimplicite
|
8 |
* @copyright Copyright (c) 2010 La Poste
|
9 |
-
* @author
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<LaPoste_SoColissimoSimplicite>
|
16 |
-
<version>
|
17 |
</LaPoste_SoColissimoSimplicite>
|
18 |
</modules>
|
19 |
|
@@ -142,13 +142,13 @@
|
|
142 |
<active>0</active>
|
143 |
<title>La Poste</title>
|
144 |
<name>So Colissimo</name>
|
145 |
-
<selectmessage>En cliquant sur Poursuivre, vous
|
146 |
-
<redirectmessage>Vous allez
|
147 |
<account></account>
|
148 |
<encryption_key></encryption_key>
|
149 |
-
<url_fo>http://ws.colissimo.fr/pudo-fo/storeCall.do</url_fo>
|
150 |
<active_service_is_available>1</active_service_is_available>
|
151 |
-
<url_service_is_available>http://ws.colissimo.fr/supervision-pudo/supervision.jsp</url_service_is_available>
|
152 |
<not_available_message>La plateforme technique So Colissimo est temporairement indisponible. Votre commande sera livrée à l'adresse de livraison que vous venez d'indiquer.</not_available_message>
|
153 |
<max_weight>30</max_weight>
|
154 |
<specificcountry>FR</specificcountry>
|
6 |
* @category LaPoste
|
7 |
* @package LaPoste_SoColissimoSimplicite
|
8 |
* @copyright Copyright (c) 2010 La Poste
|
9 |
+
* @author Smile (http://www.smile.fr)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<LaPoste_SoColissimoSimplicite>
|
16 |
+
<version>2.0.0</version>
|
17 |
</LaPoste_SoColissimoSimplicite>
|
18 |
</modules>
|
19 |
|
142 |
<active>0</active>
|
143 |
<title>La Poste</title>
|
144 |
<name>So Colissimo</name>
|
145 |
+
<selectmessage>En cliquant sur Poursuivre, vous pourrez choisir votre mode de livraison.</selectmessage>
|
146 |
+
<redirectmessage>Vous allez voir apparaitre les options So Colissimo dans un instant...</redirectmessage>
|
147 |
<account></account>
|
148 |
<encryption_key></encryption_key>
|
149 |
+
<url_fo>http://ws.colissimo.fr/pudo-fo-frame/storeCall.do</url_fo>
|
150 |
<active_service_is_available>1</active_service_is_available>
|
151 |
+
<url_service_is_available>http://ws.colissimo.fr/supervision-pudo-frame/supervision.jsp</url_service_is_available>
|
152 |
<not_available_message>La plateforme technique So Colissimo est temporairement indisponible. Votre commande sera livrée à l'adresse de livraison que vous venez d'indiquer.</not_available_message>
|
153 |
<max_weight>30</max_weight>
|
154 |
<specificcountry>FR</specificcountry>
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-1.1.2.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
+
* @category LaPoste
|
6 |
+
* @package LaPoste_SoColissimoSimplicite
|
7 |
+
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
$installer = $this;
|
13 |
+
|
14 |
+
$installer->startSetup();
|
15 |
+
|
16 |
+
if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
17 |
+
$installer->run(
|
18 |
+
// transaction_id doit contenir entre 5 et 16 caractères
|
19 |
+
"ALTER TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} AUTO_INCREMENT = 10000;"
|
20 |
+
);
|
21 |
+
}
|
22 |
+
|
23 |
+
$installer->endSetup();
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-2.0.0.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
+
* @category LaPoste
|
6 |
+
* @package LaPoste_SoColissimoSimplicite
|
7 |
+
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
$installer = $this;
|
13 |
+
|
14 |
+
$installer->startSetup();
|
15 |
+
|
16 |
+
if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
17 |
+
$installer->run(
|
18 |
+
// transaction_id doit contenir entre 5 et 16 caractères
|
19 |
+
"ALTER TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} AUTO_INCREMENT = 10000;"
|
20 |
+
);
|
21 |
+
}
|
22 |
+
|
23 |
+
$installer->endSetup();
|
app/design/frontend/default/default/template/socolissimosimplicite/form.phtml
CHANGED
@@ -1,109 +1,130 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
-
* @author
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
13 |
$_address = $this->getShippingAddress();
|
|
|
|
|
|
|
14 |
$_helper = $this->helper('socolissimosimplicite');
|
15 |
?>
|
16 |
|
17 |
-
<?php
|
18 |
-
|
|
|
|
|
|
|
19 |
|
20 |
-
<?php
|
21 |
-
|
22 |
-
<?php endif;?>
|
23 |
-
<form name="socolissimosimpliciteform" action="<?php echo utf8_decode($this->getUrlFoWithReturnUrlKo()); ?>" method="post">
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
<?php if ($_address->getPrefix()):?>
|
28 |
-
<input type="hidden" name="ceCivility" value="<?php echo utf8_decode($_helper->getPrefixForSoColissimo($_address->getPrefix())); ?>" />
|
29 |
-
<?php endif;?>
|
30 |
-
|
31 |
-
<?php if ($_address->getLastname()):?>
|
32 |
-
<input type="hidden" name="ceName" value="<?php echo utf8_decode($_address->getLastname()); ?>" />
|
33 |
<?php endif;?>
|
|
|
34 |
|
35 |
-
|
36 |
-
<input type="hidden" name="ceFirstName" value="<?php echo utf8_decode($_address->getFirstname()); ?>" />
|
37 |
-
<?php endif;?>
|
38 |
-
|
39 |
-
<?php if ($_address->getCompany()):?>
|
40 |
-
<input type="hidden" name="ceCompanyName" value="<?php echo utf8_decode($_address->getCompany()); ?>" />
|
41 |
-
<?php endif;?>
|
42 |
-
|
43 |
-
<?php if ($this->getShippingAddressStreet(1)): //1ère ligne de l'adresse dans Magento = 3ème champ adresse dans SoCo ?>
|
44 |
-
<input type="hidden" name="ceAdress3" value="<?php echo utf8_decode($this->getShippingAddressStreet(1)); ?>" />
|
45 |
-
<?php endif;?>
|
46 |
-
|
47 |
-
<?php if ($this->getShippingAddressStreet(2)):?>
|
48 |
-
<input type="hidden" name="ceAdress1" value="<?php echo utf8_decode($this->getShippingAddressStreet(2)); ?>" />
|
49 |
-
<?php endif;?>
|
50 |
-
|
51 |
-
<?php if ($this->getShippingAddressStreet(3)):?>
|
52 |
-
<input type="hidden" name="ceAdress2" value="<?php echo utf8_decode($this->getShippingAddressStreet(3)); ?>" />
|
53 |
-
<?php endif;?>
|
54 |
-
|
55 |
-
<?php if ($this->getShippingAddressStreet(4)):?>
|
56 |
-
<input type="hidden" name="ceAdress4" value="<?php echo utf8_decode($this->getShippingAddressStreet(4)); ?>" />
|
57 |
-
<?php endif;?>
|
58 |
-
|
59 |
-
<?php if ($_address->getPostcode()):?>
|
60 |
-
<input type="hidden" name="ceZipCode" value="<?php echo utf8_decode($_address->getPostcode()); ?>" />
|
61 |
-
<?php endif;?>
|
62 |
-
|
63 |
-
<?php if ($_address->getCity()):?>
|
64 |
-
<input type="hidden" name="ceTown" value="<?php echo utf8_decode($_address->getCity()); ?>" />
|
65 |
-
<?php endif;?>
|
66 |
-
|
67 |
-
<?php if ($_address->getEmail()):?>
|
68 |
-
<input type="hidden" name="ceEmail" value="<?php echo utf8_decode($_address->getEmail()); ?>" />
|
69 |
-
<?php endif;?>
|
70 |
-
|
71 |
-
<?php if ($_address->getTelephone()):?>
|
72 |
-
<input type="hidden" name="cePhoneNumber" value="<?php echo utf8_decode($_address->getTelephone()); ?>" />
|
73 |
-
<?php endif;?>
|
74 |
-
|
75 |
-
<?php if ($_address->getWeight()):?>
|
76 |
-
<input type="hidden" name="dyWeight" value="<?php echo utf8_decode($_helper->getFormatedWeight($_address->getWeight())); ?>" />
|
77 |
-
<?php endif;?>
|
78 |
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
|
100 |
-
|
101 |
|
102 |
-
|
103 |
|
104 |
-
|
105 |
-
</form>
|
106 |
|
|
|
107 |
<script type="text/javascript">
|
108 |
-
|
|
|
|
|
109 |
</script>
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
13 |
$_address = $this->getShippingAddress();
|
14 |
+
$_serviceUnavailableRedirect = $this->getServiceUnavailableRedirect();
|
15 |
+
|
16 |
+
/* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
17 |
$_helper = $this->helper('socolissimosimplicite');
|
18 |
?>
|
19 |
|
20 |
+
<?php if (!empty($_serviceUnavailableRedirect)): ?>
|
21 |
+
<h3><?php echo $this->__("Les options du lieu de livraison ne sont pas disponibles.<br />Le colis sera livré à votre adresse de livraison.") ?></h3>
|
22 |
+
<p><?php echo $this->__("La page va se mettre à jour à l'étape suivante.") ?></p>
|
23 |
+
<form name="socolissimosimpliciteform" action="<?php echo $_serviceUnavailableRedirect ?>" target="_parent" method="get"></form>
|
24 |
+
<?php else: ?>
|
25 |
|
26 |
+
<?php // header au format ISO , So Colissimo ne gèrant pas l'UTF-8 ?>
|
27 |
+
<?php Mage::app()->getResponse()->setHeader("Content-Type", "text/html; charset=ISO-8859-1",true); ?>
|
|
|
|
|
28 |
|
29 |
+
<?php if($this->getRedirectMessage()): ?>
|
30 |
+
<h3><?php echo utf8_decode($this->getRedirectMessage()); ?></h3>
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
<?php endif;?>
|
32 |
+
<form name="socolissimosimpliciteform" action="<?php echo utf8_decode($this->getUrlFoWithReturnUrlKo()); ?>" method="post">
|
33 |
|
34 |
+
<input type="hidden" name="pudoFOId" value="<?php echo utf8_decode($this->getAccountID()); ?>" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
+
<?php if ($_address->getPrefix()):?>
|
37 |
+
<input type="hidden" name="ceCivility" value="<?php echo utf8_decode($_helper->getPrefixForSoColissimo($_address->getPrefix())); ?>" />
|
38 |
+
<?php endif;?>
|
39 |
|
40 |
+
<?php if ($_address->getLastname()):?>
|
41 |
+
<input type="hidden" name="ceName" value="<?php echo utf8_decode($_address->getLastname()); ?>" />
|
42 |
+
<?php endif;?>
|
43 |
+
|
44 |
+
<?php if ($_address->getFirstname()):?>
|
45 |
+
<input type="hidden" name="ceFirstName" value="<?php echo utf8_decode($_address->getFirstname()); ?>" />
|
46 |
+
<?php endif;?>
|
47 |
+
|
48 |
+
<?php if ($_address->getCompany()):?>
|
49 |
+
<input type="hidden" name="ceCompanyName" value="<?php echo utf8_decode($_address->getCompany()); ?>" />
|
50 |
+
<?php endif;?>
|
51 |
+
|
52 |
+
<?php if ($this->getShippingAddressStreet(1)): //1ère ligne de l'adresse dans Magento = 3ème champ adresse dans SoCo ?>
|
53 |
+
<input type="hidden" name="ceAdress3" value="<?php echo utf8_decode($this->getShippingAddressStreet(1)); ?>" />
|
54 |
+
<?php endif;?>
|
55 |
+
|
56 |
+
<?php if ($this->getShippingAddressStreet(2)):?>
|
57 |
+
<input type="hidden" name="ceAdress1" value="<?php echo utf8_decode($this->getShippingAddressStreet(2)); ?>" />
|
58 |
+
<?php endif;?>
|
59 |
+
|
60 |
+
<?php if ($this->getShippingAddressStreet(3)):?>
|
61 |
+
<input type="hidden" name="ceAdress2" value="<?php echo utf8_decode($this->getShippingAddressStreet(3)); ?>" />
|
62 |
+
<?php endif;?>
|
63 |
+
|
64 |
+
<?php if ($this->getShippingAddressStreet(4)):?>
|
65 |
+
<input type="hidden" name="ceAdress4" value="<?php echo utf8_decode($this->getShippingAddressStreet(4)); ?>" />
|
66 |
+
<?php endif;?>
|
67 |
+
|
68 |
+
<?php if ($_address->getPostcode()):?>
|
69 |
+
<input type="hidden" name="ceZipCode" value="<?php echo utf8_decode($_address->getPostcode()); ?>" />
|
70 |
+
<?php endif;?>
|
71 |
+
|
72 |
+
<?php if ($_address->getCity()):?>
|
73 |
+
<input type="hidden" name="ceTown" value="<?php echo utf8_decode($_address->getCity()); ?>" />
|
74 |
+
<?php endif;?>
|
75 |
+
|
76 |
+
<?php if ($_address->getEmail()):?>
|
77 |
+
<input type="hidden" name="ceEmail" value="<?php echo utf8_decode($_address->getEmail()); ?>" />
|
78 |
+
<?php endif;?>
|
79 |
+
|
80 |
+
<?php if ($_address->getTelephone()):?>
|
81 |
+
<?php // transfer phone number only if its a cell phone ?>
|
82 |
+
<?php // Same code is used LaPoste_SoColissimoSimplicite_Model_Transaction::_getGeneratedSignature()
|
83 |
+
$phone = $_address->getTelephone();
|
84 |
+
$phone = substr($phone, 0, 2);
|
85 |
+
?>
|
86 |
+
<?php if (($phone == '06') || ($phone == '07')):?>
|
87 |
+
<input type="hidden" name="cePhoneNumber" value="<?php echo utf8_decode($_address->getTelephone()); ?>" />
|
88 |
+
<?php else: ?>
|
89 |
+
<input type="hidden" name="cePhoneNumber" value="" />
|
90 |
+
<?php endif; ?>
|
91 |
+
<?php endif;?>
|
92 |
+
|
93 |
+
<?php if ($_address->getWeight()):?>
|
94 |
+
<input type="hidden" name="dyWeight" value="<?php echo utf8_decode($_helper->getFormatedWeight($_address->getWeight())); ?>" />
|
95 |
+
<?php endif;?>
|
96 |
+
|
97 |
+
<?php // suits with free shipping which can be set up by cart rules ?>
|
98 |
+
<?php $forwardingCharges = ($_address->getFreeShipping() === '1') ? 0 : $_address->getShippingAmount(); ?>
|
99 |
+
<input type="hidden" name="dyForwardingCharges" value="<?php echo utf8_decode($_helper->getFormatedShippingPrice($forwardingCharges)); ?>" />
|
100 |
+
|
101 |
+
<?php if ($_address->getCustomerId()):?>
|
102 |
+
<input type="hidden" name="trClientNumber" value="<?php echo utf8_decode($_address->getCustomerId()); ?>" />
|
103 |
+
<?php endif;?>
|
104 |
+
|
105 |
+
<?php if ($_address->getQuoteId()):?>
|
106 |
+
<input type="hidden" name="trOrderNumber" value="<?php echo utf8_decode($_address->getQuoteId()); ?>" />
|
107 |
+
<?php endif;?>
|
108 |
+
|
109 |
+
<input type="hidden" name="numVersion" value="<?php echo utf8_decode($_helper->getNumVersion()) ?>" />
|
110 |
|
111 |
+
<?php
|
112 |
+
/* donnée spécifique transmis au service, non interprétée par celui-ci et retournée
|
113 |
+
* en paramètre en cas de succès ou d'échec, non utilisée ici
|
114 |
+
* <input type="hidden" name="trParamPlus" value="" />
|
115 |
+
*/
|
116 |
+
?>
|
117 |
|
118 |
+
<input type="hidden" name="trReturnUrlOk" value="<?php echo utf8_decode($_helper->getSuccessUrl()); ?>" />
|
119 |
|
120 |
+
<input type="hidden" name="orderId" value="<?php echo utf8_decode($this->getTransaction()->getId()); ?>" />
|
121 |
|
122 |
+
<input type="hidden" name="signature" value="<?php echo utf8_decode($this->getTransaction()->getSignature()); ?>" />
|
123 |
+
</form>
|
124 |
|
125 |
+
<?php endif ?>
|
126 |
<script type="text/javascript">
|
127 |
+
//<![CDATA[
|
128 |
+
document.socolissimosimpliciteform.submit();
|
129 |
+
//]]>
|
130 |
</script>
|
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml
CHANGED
@@ -1,15 +1,16 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
-
* @author
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
|
|
13 |
$_helper = $this->helper('socolissimosimplicite');
|
14 |
?>
|
15 |
<form id="co-shipping-method-form" action="">
|
@@ -18,36 +19,116 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
18 |
</div>
|
19 |
<script type="text/javascript">
|
20 |
//<![CDATA[
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
var
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
-
);
|
36 |
-
}
|
37 |
-
};
|
38 |
-
// check if colissimo is selected, then redirect on form which post data on this platform
|
39 |
-
ShippingMethod.prototype.redirectToColissimo = function(transport){
|
40 |
-
var rateCodeSoColissimoSimplicite = '<?php echo $_helper->getRateCode()?>';
|
41 |
-
var urlFormSoColissimoSimplicite = '<?php echo $_helper->getFormUrl()?>';
|
42 |
-
var methods = document.getElementsByName('shipping_method');
|
43 |
-
for (var i=0; i<methods.length; i++) {
|
44 |
-
if (methods[i].value == rateCodeSoColissimoSimplicite && methods[i].checked) {
|
45 |
-
window.location = urlFormSoColissimoSimplicite;
|
46 |
}
|
47 |
}
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
//]]>
|
52 |
</script>
|
53 |
<script type="text/javascript">
|
@@ -58,6 +139,9 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
58 |
<div id="onepage-checkout-shipping-method-additional-load">
|
59 |
<?php echo $this->getChildHtml('additional') ?>
|
60 |
</div>
|
|
|
|
|
|
|
61 |
<div class="buttons-set" id="shipping-method-buttons-container">
|
62 |
<p class="back-link"><a href="#" onclick="checkout.back(); return false;"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
63 |
<button type="button" class="button" onclick="shippingMethod.saveWithColissimo();"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
13 |
+
/* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
14 |
$_helper = $this->helper('socolissimosimplicite');
|
15 |
?>
|
16 |
<form id="co-shipping-method-form" action="">
|
19 |
</div>
|
20 |
<script type="text/javascript">
|
21 |
//<![CDATA[
|
22 |
+
// Socolissimo helper
|
23 |
+
ShippingMethod.prototype.isSocolissimoSelected = function() {
|
24 |
+
var rateCodeSoColissimoSimplicite = '<?php echo $_helper->getRateCode()?>';
|
25 |
+
var methods = document.getElementsByName('shipping_method');
|
26 |
+
|
27 |
+
for (var i=0; i<methods.length; i++) {
|
28 |
+
if (methods[i].value == rateCodeSoColissimoSimplicite && methods[i].checked) {
|
29 |
+
return true;
|
30 |
+
}
|
31 |
+
}
|
32 |
+
};
|
33 |
+
|
34 |
+
// update method save to redirect onSuccess to method which deals with colissimo choice
|
35 |
+
ShippingMethod.prototype.saveWithColissimo = function() {
|
36 |
+
if (checkout.loadWaiting!=false) return;
|
37 |
+
if (this.validate()) {
|
38 |
+
checkout.setLoadWaiting('shipping-method');
|
39 |
+
var request = new Ajax.Request(
|
40 |
+
this.saveUrl,
|
41 |
+
{
|
42 |
+
method:'post',
|
43 |
+
onComplete: this.onCompleteSaveWithColissimo.bind(this), // preserves context when calling these methods
|
44 |
+
onSuccess: this.redirectToColissimo.bind(this),
|
45 |
+
onFailure: checkout.ajaxFailure.bind(checkout),
|
46 |
+
parameters: Form.serialize(this.form)
|
47 |
+
}
|
48 |
+
);
|
49 |
+
}
|
50 |
+
};
|
51 |
+
|
52 |
+
// Hacking standard onComplete when saving socollissimo
|
53 |
+
ShippingMethod.prototype.onCompleteSaveWithColissimo = function() {
|
54 |
+
if (!this.isSocolissimoSelected()) {
|
55 |
+
this.onComplete();
|
56 |
+
}
|
57 |
+
};
|
58 |
+
|
59 |
+
// Hack to allow checkout steps freezing
|
60 |
+
ShippingMethod.prototype.freezSteps = function() {
|
61 |
+
this.savedAllowedSteps = [];
|
62 |
+
|
63 |
+
var steps = document.getElementById('checkoutSteps').children;
|
64 |
+
for (i=0; i<steps.length; i++) {
|
65 |
+
if (steps[i].hasClassName('allow')) {
|
66 |
+
this.savedAllowedSteps[i] = true;
|
67 |
+
steps[i].removeClassName('allow');
|
68 |
+
} else {
|
69 |
+
this.savedAllowedSteps[i] = false;
|
70 |
+
}
|
71 |
+
}
|
72 |
+
};
|
73 |
+
|
74 |
+
// Hack to allow checkout unfreez after a call to freezSteps
|
75 |
+
ShippingMethod.prototype.unfreezSteps = function() {
|
76 |
+
if (this.savedAllowedSteps != undefined) {
|
77 |
+
var steps = document.getElementById('checkoutSteps').children;
|
78 |
+
for (i=0; i<steps.length; i++) {
|
79 |
+
if (this.savedAllowedSteps[i] == true) {
|
80 |
+
steps[i].addClassName('allow');
|
81 |
+
}
|
82 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
}
|
85 |
+
|
86 |
+
// check if colissimo is selected, then redirect on form which post data on this platform
|
87 |
+
ShippingMethod.prototype.redirectToColissimo = function(transport) {
|
88 |
+
var urlFormSoColissimoSimplicite = '<?php echo $_helper->getFormUrl()?>';
|
89 |
+
var methods = document.getElementsByName('shipping_method');
|
90 |
+
|
91 |
+
if (this.isSocolissimoSelected()) {
|
92 |
+
// Remove ending slash for iframe src
|
93 |
+
urlFormSoColissimoSimplicite = urlFormSoColissimoSimplicite.replace(/\/$/, '');
|
94 |
+
|
95 |
+
var socoIframe= document.getElementById('socolissimosimplicite_iframe');
|
96 |
+
socoIframe.src = urlFormSoColissimoSimplicite;
|
97 |
+
socoIframe.style.display = 'block';
|
98 |
+
|
99 |
+
// Disabling all methods during iframe validation
|
100 |
+
for (var j=0; j<methods.length; j++) {
|
101 |
+
methods[j].disabled = 'disabled';
|
102 |
+
}
|
103 |
+
|
104 |
+
// Disable checkout step changing
|
105 |
+
this.freezSteps();
|
106 |
+
|
107 |
+
document.getElementById('cancel_soco_shipping_button').style.display = 'block';
|
108 |
+
checkout.setLoadWaiting('shipping-method');
|
109 |
+
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
|
113 |
+
// pass to next step (= default onSave binding)
|
114 |
+
ShippingMethod.prototype.nextStep(transport);
|
115 |
+
};
|
116 |
+
|
117 |
+
// Cancel socolissimo iframe and reenable disbaled checkout feature
|
118 |
+
ShippingMethod.prototype.cancelSocollisimo = function() {
|
119 |
+
var methods = document.getElementsByName('shipping_method');
|
120 |
+
for (var i=0; i<methods.length; i++) {
|
121 |
+
methods[i].disabled = '';
|
122 |
+
}
|
123 |
+
|
124 |
+
var socoIframe= document.getElementById('socolissimosimplicite_iframe');
|
125 |
+
socoIframe.src = 'about:blank';
|
126 |
+
socoIframe.style.display = 'none';
|
127 |
+
|
128 |
+
this.resetLoadWaiting();
|
129 |
+
document.getElementById('cancel_soco_shipping_button').style.display = 'none';
|
130 |
+
this.unfreezSteps();
|
131 |
+
};
|
132 |
//]]>
|
133 |
</script>
|
134 |
<script type="text/javascript">
|
139 |
<div id="onepage-checkout-shipping-method-additional-load">
|
140 |
<?php echo $this->getChildHtml('additional') ?>
|
141 |
</div>
|
142 |
+
<div class="buttons-set">
|
143 |
+
<button id="cancel_soco_shipping_button" type="button" class="button" onclick="shippingMethod.cancelSocollisimo();" style="display:none;"><span><span><?php echo $this->__('Annuler SoCollissimo') ?></span></span></button>
|
144 |
+
</div>
|
145 |
<div class="buttons-set" id="shipping-method-buttons-container">
|
146 |
<p class="back-link"><a href="#" onclick="checkout.back(); return false;"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
147 |
<button type="button" class="button" onclick="shippingMethod.saveWithColissimo();"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml
CHANGED
@@ -1,16 +1,22 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
-
* @author
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
|
|
|
|
|
|
|
|
|
|
12 |
<?php if (version_compare(Mage::getVersion(), '1.4.2.0', '<=')
|
13 |
or (version_compare(Mage::getVersion(), '1.6.0.0', '>=') and version_compare(Mage::getVersion(), '1.10.0.0', '<'))): ?>
|
|
|
14 |
<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
|
15 |
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
16 |
<?php else: ?>
|
@@ -25,16 +31,20 @@
|
|
25 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
|
26 |
<?php else: ?>
|
27 |
<?php if ($_sole) : ?>
|
28 |
-
|
29 |
<?php else: ?>
|
30 |
-
|
31 |
<?php endif; ?>
|
32 |
<?php echo $this->getItemHtml($_rate) ?>
|
|
|
33 |
<?php // disponibilité de la plateforme soco ?>
|
34 |
-
<?php if ($_rate->getCode() ==
|
35 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
36 |
<?php endif ?>
|
37 |
|
|
|
|
|
|
|
38 |
<?php endif ?>
|
39 |
</li>
|
40 |
<?php endforeach; ?>
|
@@ -46,6 +56,7 @@
|
|
46 |
|
47 |
<?php // Magento >= 1.5 ?>
|
48 |
<?php else: ?>
|
|
|
49 |
<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
|
50 |
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
51 |
<?php else: ?>
|
@@ -65,6 +76,7 @@
|
|
65 |
|
66 |
<?php $shippingMe = array(); ?>
|
67 |
<?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
|
|
|
68 |
<dt><?php echo $this->getCarrierName($code) ?></dt>
|
69 |
<dd>
|
70 |
<ul>
|
@@ -90,10 +102,10 @@
|
|
90 |
<?php endif; ?>
|
91 |
|
92 |
<?php // socolissimo ?>
|
93 |
-
<?php if ($_rate->getCode() ==
|
94 |
|
95 |
<?php // disponibilité de la plateforme soco ?>
|
96 |
-
<?php if ($_rate->getCode() ==
|
97 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
98 |
<?php else: ?>
|
99 |
<?php
|
@@ -105,6 +117,10 @@
|
|
105 |
<?php echo $_helper->getSelectMessage() ?>
|
106 |
<?php endif; ?>
|
107 |
|
|
|
|
|
|
|
|
|
108 |
<?php // others methods ?>
|
109 |
<?php else: ?>
|
110 |
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?>
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
* @category LaPoste
|
6 |
* @package LaPoste_SoColissimoSimplicite
|
7 |
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
12 |
+
<?php
|
13 |
+
/* @var $_socoHelper LaPoste_SoColissimoSimplicite_Helper_Data */
|
14 |
+
$_socoHelper = $this->helper('socolissimosimplicite');
|
15 |
+
?>
|
16 |
+
|
17 |
<?php if (version_compare(Mage::getVersion(), '1.4.2.0', '<=')
|
18 |
or (version_compare(Mage::getVersion(), '1.6.0.0', '>=') and version_compare(Mage::getVersion(), '1.10.0.0', '<'))): ?>
|
19 |
+
|
20 |
<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
|
21 |
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
22 |
<?php else: ?>
|
31 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
|
32 |
<?php else: ?>
|
33 |
<?php if ($_sole) : ?>
|
34 |
+
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span>
|
35 |
<?php else: ?>
|
36 |
+
<input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> class="radio" />
|
37 |
<?php endif; ?>
|
38 |
<?php echo $this->getItemHtml($_rate) ?>
|
39 |
+
|
40 |
<?php // disponibilité de la plateforme soco ?>
|
41 |
+
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and !$this->getServiceIsAvailable()): ?>
|
42 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
43 |
<?php endif ?>
|
44 |
|
45 |
+
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and $this->getServiceIsAvailable()): ?>
|
46 |
+
<iframe id="socolissimosimplicite_iframe" src="about:blank" style="width:572px; height:1100px; border: 0 none; display:none;"></iframe>
|
47 |
+
<?php endif ?>
|
48 |
<?php endif ?>
|
49 |
</li>
|
50 |
<?php endforeach; ?>
|
56 |
|
57 |
<?php // Magento >= 1.5 ?>
|
58 |
<?php else: ?>
|
59 |
+
|
60 |
<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
|
61 |
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
62 |
<?php else: ?>
|
76 |
|
77 |
<?php $shippingMe = array(); ?>
|
78 |
<?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
|
79 |
+
|
80 |
<dt><?php echo $this->getCarrierName($code) ?></dt>
|
81 |
<dd>
|
82 |
<ul>
|
102 |
<?php endif; ?>
|
103 |
|
104 |
<?php // socolissimo ?>
|
105 |
+
<?php if ($_rate->getCode() == $_socoHelper->getRateCode()): ?>
|
106 |
|
107 |
<?php // disponibilité de la plateforme soco ?>
|
108 |
+
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and !$this->getServiceIsAvailable()): ?>
|
109 |
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
110 |
<?php else: ?>
|
111 |
<?php
|
117 |
<?php echo $_helper->getSelectMessage() ?>
|
118 |
<?php endif; ?>
|
119 |
|
120 |
+
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and $this->getServiceIsAvailable()): ?>
|
121 |
+
<iframe id="socolissimosimplicite_iframe" src="about:blank" style="width:572px; height:1100px; border: 0 none; display:none;"></iframe>
|
122 |
+
<?php endif ?>
|
123 |
+
|
124 |
<?php // others methods ?>
|
125 |
<?php else: ?>
|
126 |
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?>
|
app/locale/fr_FR/LaPoste_SoColissimoSimplicite.csv
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
"Code porte","Code porte"
|
2 |
"Code porte 2","Code porte 2"
|
3 |
"Interphone","Interphone"
|
4 |
-
"
|
1 |
"Code porte","Code porte"
|
2 |
"Code porte 2","Code porte 2"
|
3 |
"Interphone","Interphone"
|
4 |
+
"livraison sur rendez-vous", "livraison sur rendez-vous"
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ColiPoste_La_Poste_So_Colissimo</name>
|
4 |
-
<version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -18,16 +18,16 @@ So Colissimo offre le choix parmi 5 solutions de livraison et un grand rése
|
|
18 |
* mon commerçant : livraison chez l'un des nombreux commerçants de notre réseau partenaire.
|
19 |

|
20 |
Testé et validé sur Magento :
|
21 |
-
- CE 1.3.2.4, CE 1.4, CE 1.5.0.1, CE 1.6.1.0
|
22 |
- PE 1.8
|
23 |
-
- EE 1.8, EE 1.9, EE 1.10
|
24 |

|
25 |
Réalisation par Smile.</description>
|
26 |
-
<notes>Compatible 1.
|
27 |
<authors><author><name>Berlioz</name><user>Aline</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
|
28 |
-
<date>
|
29 |
-
<time>
|
30 |
-
<contents><target name="magedesign"><dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="socolissimosimplicite"><file name="empty.phtml" hash="01e4359097f904f0caa50d7175d1fa3c"/><dir name="form"><file name="failure.phtml" hash="b0692966e1ed1e32d31ad676ccd3dcba"/></dir><file name="form.phtml" hash="
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
33 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ColiPoste_La_Poste_So_Colissimo</name>
|
4 |
+
<version>2.0.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
18 |
* mon commerçant : livraison chez l'un des nombreux commerçants de notre réseau partenaire.
|
19 |

|
20 |
Testé et validé sur Magento :
|
21 |
+
- CE 1.3.2.4, CE 1.4, CE 1.5.0.1, CE 1.6.1.0, CE 1.7
|
22 |
- PE 1.8
|
23 |
+
- EE 1.8, EE 1.9, EE 1.10, EE 1.11, EE 1.12
|
24 |

|
25 |
Réalisation par Smile.</description>
|
26 |
+
<notes>Compatible 1.7</notes>
|
27 |
<authors><author><name>Berlioz</name><user>Aline</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
|
28 |
+
<date>2012-06-25</date>
|
29 |
+
<time>10:28:51</time>
|
30 |
+
<contents><target name="magedesign"><dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="socolissimosimplicite"><file name="empty.phtml" hash="01e4359097f904f0caa50d7175d1fa3c"/><dir name="form"><file name="failure.phtml" hash="b0692966e1ed1e32d31ad676ccd3dcba"/></dir><file name="form.phtml" hash="a1c07e07cbe75ddb6661a7f97287be61"/><dir name="onepage"><dir name="shipping_method"><dir name="available"><file name="default.phtml" hash="2f84bc01d0599cfe27ef03a4c2813795"/><file name="socolissimosimplicite.phtml" hash="642ba70f2faa328f7e3afc10ab3876ec"/></dir><file name="available.phtml" hash="42e537691ecb402760428b4927c4f63c"/></dir><file name="shipping_method.phtml" hash="883c521ba33b25bf19aef748bcd51713"/></dir></dir></dir><dir name="layout"><file name="socolissimosimplicite.xml" hash="ecb0d6e12eec4606a54b12e421e9ff72"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="ddc252df7c3ca35cc4bf5bbe7fdb9433"/></dir></dir></target><target name="magecommunity"><dir><dir name="LaPoste"><dir name="SoColissimoSimplicite"><dir name="Block"><file name="Form.php" hash="6bf92465fc24a46184653cb93156ef06"/><dir name="Onepage"><dir name="Shipping"><dir name="Method"><dir name="Available"><file name="Item.php" hash="f53ff832b868363db948d30d66d317bc"/></dir><file name="Available.php" hash="934af40303dc2217111d2b0bae90a0c2"/></dir></dir></dir><file name="Onepage.php" hash="79b4d36b3bff494f04605b860b2a73b0"/></dir><dir name="Helper"><file name="Data.php" hash="140ab1f630c88d52ab087a657b3d8373"/></dir><dir name="Model"><dir name="Carrier"><file name="ShippingMethod.php" hash="ddf5335367e2b73f702c59571caeb208"/></dir><dir name="Mysql4"><dir name="Transaction"><file name="Collection.php" hash="dc2f61004ac7acd0af8f10574ec41880"/></dir><file name="Transaction.php" hash="0f5a3d0c1b36f3702c737bdec5b6a4cb"/></dir><file name="Observer.php" hash="134b79e2c399ff66842a802df0a1c0c4"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Shipping"><file name="Amountbasetype.php" hash="bca2ac197de8909cfe622b05c2f89cca"/></dir></dir></dir></dir><file name="Transaction.php" hash="d1d247c5988d923c604bd88ea4392d4f"/></dir><dir name="Test"><dir name="Model"><dir name="Carrier"><file name="ShippingMethodTest.php" hash="0af0dc51d6c0b99a466d19242c4e915f"/></dir></dir></dir><dir name="controllers"><file name="FormController.php" hash="f970c2ed436c81dc3a342931d6041f1c"/><file name="OnepageController.php" hash="f0758f5e2c0873ba517ab675672b2892"/></dir><dir name="etc"><file name="config.xml" hash="c726d4a936f27f322bdcaf150df655eb"/><file name="system.xml" hash="0250e51f18b510fc093054ae524ff0ff"/></dir><dir name="sql"><dir name="socolissimosimplicite_setup"><file name="mysql4-install-1.0.0.php" hash="52761c955270d44c5a0ca4b28b86d70d"/><file name="mysql4-uninstall-0.1.0.php" hash="a0907ec1437960b6587d87827ad2ba24"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="829fcd5f192109ec0722a3269e8737c5"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="c650fe23e6361546e3c8cc26b071cbf7"/><file name="mysql4-upgrade-1.1.1-2.0.0.php" hash="c650fe23e6361546e3c8cc26b071cbf7"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="b95ad07dda6ce0fb25d6ece5750d0f0d"/></dir></dir></target></contents>
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
33 |
</package>
|