ColiPoste_La_Poste_So_Colissimo - Version 2.3.0

Version Notes

Compatible CE 1.8 et EE 1.13

Download this release

Release Info

Developer Berlioz
Extension ColiPoste_La_Poste_So_Colissimo
Version 2.3.0
Comparing to
See all releases


Code changes from version 2.2.1 to 2.3.0

Files changed (27) hide show
  1. app/code/community/LaPoste/SoColissimoSimplicite/Block/Iframe.php +72 -0
  2. app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage.php +1 -3
  3. app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available.php +0 -87
  4. app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available/Item.php +0 -36
  5. app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php +14 -7
  6. app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php +6 -6
  7. app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php +8 -4
  8. app/code/community/LaPoste/SoColissimoSimplicite/Test/Model/Carrier/ShippingMethodTest.php +0 -175
  9. app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php +2 -2
  10. app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml +33 -13
  11. app/code/community/LaPoste/SoColissimoSimplicite/etc/system.xml +19 -79
  12. app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.0.6-1.0.7.php +0 -1
  13. app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-2.2.1-2.3.0.php +28 -0
  14. app/design/frontend/default/default/layout/socolissimosimplicite.xml +19 -31
  15. app/design/frontend/default/default/template/socolissimosimplicite/empty.phtml +2 -1
  16. app/design/frontend/default/default/template/socolissimosimplicite/form.phtml +7 -6
  17. app/design/frontend/default/default/template/socolissimosimplicite/form/failure.phtml +6 -3
  18. app/design/frontend/default/default/template/socolissimosimplicite/iframe.phtml +68 -0
  19. app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml +0 -165
  20. app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml +0 -73
  21. app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/default.phtml +0 -20
  22. app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml +0 -23
  23. app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/socolissimosimplicite.phtml +46 -0
  24. app/etc/modules/LaPoste_SoColissimoSimplicite.xml +4 -2
  25. app/locale/fr_FR/LaPoste_SoColissimoSimplicite.csv +70 -4
  26. package.xml +10 -10
  27. skin/frontend/default/default/js/socolissimosimplicite/shipping_method.js +128 -0
app/code/community/LaPoste/SoColissimoSimplicite/Block/Iframe.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * IFrame So Colissimo
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_Block_Iframe extends Mage_Core_Block_Template
12
+ {
13
+ /**
14
+ * Retourne la session checkout
15
+ *
16
+ * @return Mage_Checkout_Model_Session
17
+ */
18
+ public function getCheckoutSession()
19
+ {
20
+ return Mage::getSingleton('checkout/session');
21
+ }
22
+
23
+ /**
24
+ * Vérifie si on doit charger manuellement les étapes shipping_method et payment
25
+ * après soumission du formulaire de l'IFrame So Colissimo
26
+ *
27
+ * @return bool
28
+ */
29
+ public function hasToLoadShippingMethodAndPayment()
30
+ {
31
+ return $this->getCheckoutSession()->getData('socolissimosimplicite_checkout_onepage_nextstep')
32
+ && method_exists('Mage', 'getEdition')
33
+ && ((version_compare(Mage::getVersion(), '1.8.0.0', '>=') && Mage::getEdition() === Mage::EDITION_COMMUNITY)
34
+ || (version_compare(Mage::getVersion(), '1.13.0.0', '>=') && Mage::getEdition() === Mage::EDITION_ENTERPRISE));
35
+ }
36
+
37
+ /**
38
+ * Retourne le contenu html de l'étape shipping_method
39
+ *
40
+ * @return string
41
+ */
42
+ public function getShippingMethodHtml()
43
+ {
44
+ /* @var $block Mage_Checkout_Block_Onepage_Shipping_Method_Available */
45
+ $block = $this->getLayout()->createBlock(
46
+ 'checkout/onepage_shipping_method_available',
47
+ 'socolissimosiplicite.dynamic.shipping_method',
48
+ array('template' => 'checkout/onepage/shipping_method/available.phtml')
49
+ );
50
+
51
+ return $block->toHtml();
52
+ }
53
+
54
+ /**
55
+ * Retourn le contenu html de l'étape payment
56
+ *
57
+ * @return string
58
+ */
59
+ public function getPaymentHtml()
60
+ {
61
+ /* @var $block Mage_Checkout_Block_Onepage_Payment_Methods */
62
+ $block = $this->getLayout()->createBlock(
63
+ 'checkout/onepage_payment_methods',
64
+ 'socolissimosiplicite.dynamic.payment',
65
+ array('template' => 'checkout/onepage/payment/methods.phtml')
66
+ );
67
+
68
+ $block->setMethodFormTemplate('purchaseorder', 'payment/form/purchaseorder.phtml');
69
+
70
+ return $block->toHtml();
71
+ }
72
+ }
app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage.php CHANGED
@@ -32,8 +32,6 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage extends Mage_Checkout_Block_On
32
 
33
  if ($checkout->getData('socolissimosimplicite_checkout_onepage_nextstep')) {
34
  $this->_stepToActivate = $checkout->getData('socolissimosimplicite_checkout_onepage_nextstep');
35
- // supprime la variable de session pour qu'un refresh réinitialise le onepage
36
- $checkout->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
37
  }
38
 
39
  $steps = $this->getSteps();
@@ -44,7 +42,7 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage extends Mage_Checkout_Block_On
44
  // permet d'afficher le contenu de l'étape en cours et de revenir sur les étapes précédentes
45
  $this->getCheckout()->setStepData($key, 'allow', true);
46
 
47
- if ($key == $this->_stepToActivate) {
48
  break;
49
  }
50
 
32
 
33
  if ($checkout->getData('socolissimosimplicite_checkout_onepage_nextstep')) {
34
  $this->_stepToActivate = $checkout->getData('socolissimosimplicite_checkout_onepage_nextstep');
 
 
35
  }
36
 
37
  $steps = $this->getSteps();
42
  // permet d'afficher le contenu de l'étape en cours et de revenir sur les étapes précédentes
43
  $this->getCheckout()->setStepData($key, 'allow', true);
44
 
45
+ if ($key === $this->_stepToActivate) {
46
  break;
47
  }
48
 
app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available.php DELETED
@@ -1,87 +0,0 @@
1
- <?php
2
- /**
3
- * Modes de livraison disponibles
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_Block_Onepage_Shipping_Method_Available extends Mage_Checkout_Block_Onepage_Shipping_Method_Available
12
- {
13
- protected $_itemRenders = array();
14
-
15
- /**
16
- * Constructeur
17
- *
18
- * @return void
19
- */
20
- protected function _construct()
21
- {
22
- // rendu par défaut
23
- $this->addItemRender(
24
- 'default',
25
- 'socolissimosimplicite/onepage_shipping_method_available',
26
- 'socolissimosimplicite/onepage/shipping_method/available/default.phtml'
27
- );
28
- }
29
-
30
- /**
31
- * Ajoute une correspondance dans la table des rendus des modes de livraison
32
- * Cela permet de personnaliser l'affichage d'un mode de livraison parmi
33
- * la liste des modes proposés lors du passage d'une commande
34
- *
35
- * @param string $type
36
- * @param string $block
37
- * @param string $template
38
- * @return LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
39
- */
40
- public function addItemRender($type, $block, $template)
41
- {
42
- $this->_itemRenders[$type] = array(
43
- 'block' => $block,
44
- 'template' => $template,
45
- 'blockInstance' => null
46
- );
47
-
48
- return $this;
49
- }
50
-
51
- /**
52
- * Retourne le renderer approprié selon le mode de livraison
53
- * Le renderer par défaut est "default"
54
- *
55
- * @param string $type exemples : default|socolissimosimplicite
56
- * @return array
57
- */
58
- public function getItemRenderer($type)
59
- {
60
- if (!isset($this->_itemRenders[$type])) {
61
- $type = 'default';
62
- }
63
-
64
- if (is_null($this->_itemRenders[$type]['blockInstance'])) {
65
- $this->_itemRenders[$type]['blockInstance'] = $this->getLayout()
66
- ->createBlock($this->_itemRenders[$type]['block'])
67
- ->setTemplate($this->_itemRenders[$type]['template'])
68
- ->setRenderedBlock($this);
69
- }
70
-
71
- return $this->_itemRenders[$type]['blockInstance'];
72
- }
73
-
74
- /**
75
- * Retourne le code html du mode de livraison donné
76
- *
77
- * @param Mage_Shipping_Model_Carrier_Abstract $item
78
- * @return string
79
- */
80
- public function getItemHtml($item)
81
- {
82
- // le code html retourné dépend du mode de livraison
83
- $renderer = $this->getItemRenderer($item->getMethod())->setRate($item);
84
-
85
- return $renderer->toHtml();
86
- }
87
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available/Item.php DELETED
@@ -1,36 +0,0 @@
1
- <?php
2
- /**
3
- * Mode de livraison
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_Block_Onepage_Shipping_Method_Available_Item
12
- extends Mage_Checkout_Block_Onepage_Shipping_Method_Available
13
- {
14
- /**
15
- * Méthode de livraison
16
- *
17
- * @var Mage_Shipping_Model_Carrier_Abstract
18
- */
19
- protected $_shippingMethod;
20
-
21
- /**
22
- * Retourne la méthode de livraison
23
- *
24
- * @param Mage_Sales_Model_Quote_Address_Rate $rate
25
- *
26
- * @return Mage_Shipping_Model_Carrier_Abstract
27
- */
28
- public function getShippingMethod($rate)
29
- {
30
- if (is_null($this->_shippingMethod)) {
31
- $this->_shippingMethod = $rate->getCarrierInstance();
32
- }
33
-
34
- return $this->_shippingMethod;
35
- }
36
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php CHANGED
@@ -188,6 +188,16 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
188
  return $carrierCode . '_' . $methodCode;
189
  }
190
 
 
 
 
 
 
 
 
 
 
 
191
  /**
192
  * Retourne l'identifiant d'accès au FO de So Colissimo Simplicité
193
  *
@@ -399,7 +409,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
399
  try {
400
  $output = curl_exec($c);
401
  $available = (trim($output) === '[OK]');
402
- } catch(Exception $e) {
403
  Mage::logException($e);
404
  $available = false;
405
  }
@@ -534,16 +544,13 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
534
  }
535
 
536
  /**
537
- * Retourne le libellé du prix affiché à l'étape livraison du tunnel de commande
538
  * pour la méthode de livraison So Colissimo
539
  *
540
- * @param string $formattedPrice
541
  * @return string
542
  */
543
- public function getShippingPriceLabel($formattedPrice)
544
  {
545
- $format = Mage::getStoreConfig('carriers/socolissimosimplicite/price_format');
546
-
547
- return empty($format) ? $formattedPrice : str_replace('%s', $formattedPrice, $format);
548
  }
549
  }
188
  return $carrierCode . '_' . $methodCode;
189
  }
190
 
191
+ /**
192
+ * Vérifie si le carrier est activé ou non
193
+ *
194
+ * @return bool
195
+ */
196
+ public function isActive()
197
+ {
198
+ return (bool) Mage::getStoreConfig('carriers/socolissimosimplicite/active');
199
+ }
200
+
201
  /**
202
  * Retourne l'identifiant d'accès au FO de So Colissimo Simplicité
203
  *
409
  try {
410
  $output = curl_exec($c);
411
  $available = (trim($output) === '[OK]');
412
+ } catch (Exception $e) {
413
  Mage::logException($e);
414
  $available = false;
415
  }
544
  }
545
 
546
  /**
547
+ * Retourne le format du prix affiché à l'étape livraison du tunnel de commande
548
  * pour la méthode de livraison So Colissimo
549
  *
 
550
  * @return string
551
  */
552
+ public function getShippingPriceFormat()
553
  {
554
+ return Mage::getStoreConfig('carriers/socolissimosimplicite/price_format');
 
 
555
  }
556
  }
app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php CHANGED
@@ -176,13 +176,13 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
176
  if (is_numeric($amountCalculation)) {
177
  $calculatedPrice = $amountCalculation;
178
  } else {
179
- throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" fournie "' . $amountCalculation . '" doit être un numérique de la forme 5.50'));
180
  }
181
  break;
182
  case 'per_weight':
183
  $rules = json_decode($amountCalculation, true);
184
  if (is_null($rules) || empty($rules)) {
185
- throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le poids" fournie "' . $amountCalculation . '" n\'est pas dans le bon format, exemple {"0":"2.90","0.5":"4.50","5":"8","10":"14"}'));
186
  } else {
187
  try {
188
  // tri par poids décroissant
@@ -200,14 +200,14 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
200
  }
201
  }
202
  } catch (Exception $e) {
203
- throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le poids" fournie "' . $amountCalculation . '" n\'est pas dans le bon format, exemple {"0":"2.90","0.5":"4.50","5":"8","10":"14"}'));
204
  }
205
  }
206
  break;
207
  case 'per_amount':
208
  $rules = json_decode($amountCalculation, true);
209
  if (is_null($rules) || empty($rules)) {
210
- 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"}'));
211
  } else {
212
  try {
213
  // tri par montant décroissant
@@ -225,12 +225,12 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
225
  }
226
  }
227
  } catch (Exception $e) {
228
- 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"}'));
229
  }
230
  }
231
  break;
232
  default:
233
- throw new Exception($helper->__('SoColissimo : la valeur de configuration "Type des frais de livraison" fournie "' . $amountBaseType . '" n\'est pas disponible'));
234
  break;
235
  }
236
 
176
  if (is_numeric($amountCalculation)) {
177
  $calculatedPrice = $amountCalculation;
178
  } else {
179
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" fournie "%s" doit être un numérique de la forme 5.50', $amountCalculation));
180
  }
181
  break;
182
  case 'per_weight':
183
  $rules = json_decode($amountCalculation, true);
184
  if (is_null($rules) || empty($rules)) {
185
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le poids" fournie "%s" n\'est pas dans le bon format, exemple {"0":"2.90","0.5":"4.50","5":"8","10":"14"}', $amountCalculation));
186
  } else {
187
  try {
188
  // tri par poids décroissant
200
  }
201
  }
202
  } catch (Exception $e) {
203
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le poids" fournie "%s" n\'est pas dans le bon format, exemple {"0":"2.90","0.5":"4.50","5":"8","10":"14"}', $amountCalculation));
204
  }
205
  }
206
  break;
207
  case 'per_amount':
208
  $rules = json_decode($amountCalculation, true);
209
  if (is_null($rules) || empty($rules)) {
210
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le sous-total" fournie "%s" n\'est pas dans le bon format, exemple {"0":"3","50":"5","100":"8","250":"0"}', $amountCalculation));
211
  } else {
212
  try {
213
  // tri par montant décroissant
225
  }
226
  }
227
  } catch (Exception $e) {
228
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le sous-total" fournie "%s" n\'est pas dans le bon format, exemple {"0":"3","50":"5","100":"8","250":"0"}', $amountCalculation));
229
  }
230
  }
231
  break;
232
  default:
233
+ throw new Exception($helper->__('SoColissimo : la valeur de configuration "Type des frais de livraison" fournie "%s" n\'est pas disponible', $amountCalculation));
234
  break;
235
  }
236
 
app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php CHANGED
@@ -146,6 +146,10 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
146
  $observer->getEvent()->getOrder()->setSocoRelayPointCode($shippingData['PRID']);
147
  }
148
 
 
 
 
 
149
  if (isset($shippingData['CECIVILITY'])) {
150
  $observer->getEvent()->getOrder()->setSocoCivility($shippingData['CECIVILITY']);
151
  }
@@ -159,7 +163,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
159
  }
160
  }
161
  } catch (Exception $e) {
162
- Mage::Log('Failed to save so-colissimo data : '.print_r($shippingData, true));
163
  }
164
  }
165
 
@@ -232,13 +236,13 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
232
 
233
  // autres informations sur la livraison
234
  case 'CEENTRYPHONE':
235
- $customerNotesArray['0'] = $helper->__('Interphone') . ' : ' . $valueSoCo;
236
  break;
237
  case 'CEDOORCODE1':
238
- $customerNotesArray['1'] = $helper->__('Code porte') . ' : ' . $valueSoCo;
239
  break;
240
  case 'CEDOORCODE2':
241
- $customerNotesArray['2'] = $helper->__('Code porte 2') . ' : ' . $valueSoCo;
242
  break;
243
  case 'CEDELIVERYINFORMATION':
244
  $customerNotesArray['3'] = $valueSoCo;
146
  $observer->getEvent()->getOrder()->setSocoRelayPointCode($shippingData['PRID']);
147
  }
148
 
149
+ if (isset($shippingData['CODERESEAU'])) {
150
+ $observer->getEvent()->getOrder()->setSocoNetworkCode($shippingData['CODERESEAU']);
151
+ }
152
+
153
  if (isset($shippingData['CECIVILITY'])) {
154
  $observer->getEvent()->getOrder()->setSocoCivility($shippingData['CECIVILITY']);
155
  }
163
  }
164
  }
165
  } catch (Exception $e) {
166
+ Mage::Log('Failed to save so-colissimo data : ' . print_r($shippingData, true));
167
  }
168
  }
169
 
236
 
237
  // autres informations sur la livraison
238
  case 'CEENTRYPHONE':
239
+ $customerNotesArray['0'] = $helper->__('Interphone :') . ' ' . $valueSoCo;
240
  break;
241
  case 'CEDOORCODE1':
242
+ $customerNotesArray['1'] = $helper->__('Code porte :') . ' ' . $valueSoCo;
243
  break;
244
  case 'CEDOORCODE2':
245
+ $customerNotesArray['2'] = $helper->__('Code porte 2 :') . ' ' . $valueSoCo;
246
  break;
247
  case 'CEDELIVERYINFORMATION':
248
  $customerNotesArray['3'] = $valueSoCo;
app/code/community/LaPoste/SoColissimoSimplicite/Test/Model/Carrier/ShippingMethodTest.php DELETED
@@ -1,175 +0,0 @@
1
- <?php
2
- require_once 'PHPUnit/Framework.php';
3
- require_once 'app/Mage.php';
4
- /**
5
- * Test de la méthode de calcul des prix
6
- *
7
- * @category LaPoste
8
- * @package LaPoste_SoColissimoSimplicite
9
- * @copyright Copyright (c) 2010 La Poste
10
- * @author Smile (http://www.smile.fr)
11
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
12
- */
13
- class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extends PHPUnit_Framework_TestCase
14
- {
15
- private $_setup;
16
-
17
- /**
18
- * Constructeur
19
- *
20
- * @return void
21
- */
22
- public function __construct()
23
- {
24
- Mage::app('default');
25
- // initialisation du setup
26
- if (version_compare(Mage::getVersion(), '1.3.2.4', '>')) {
27
- $this->_setup = Mage::getModel('core/resource_setup');
28
- }
29
- }
30
-
31
- /**
32
- * Préparation des tests
33
- *
34
- * @return void
35
- */
36
- public function setUp()
37
- {
38
- $this->setConfigData('carriers/socolissimosimplicite/active', '1');
39
- $this->setConfigData('carriers/socolissimosimplicite/title', 'La Poste');
40
- $this->setConfigData('carriers/socolissimosimplicite/name', 'So Colissimo');
41
- $this->setConfigData('carriers/socolissimosimplicite/selectmessage', 'En cliquant sur Poursuivre, vous pourrez choisir votre mode de livraison.');
42
- $this->setConfigData('carriers/socolissimosimplicite/redirectmessage', 'Vous allez être redirigé(e) vers So Colissimo dans un instant...');
43
- $this->setConfigData('carriers/socolissimosimplicite/account', '05464540472665');
44
- $this->setConfigData('carriers/socolissimosimplicite/encryption_key', '506336340381');
45
- $this->setConfigData('carriers/socolissimosimplicite/url_fo', 'http://217.108.161.163/pudo-fo/storeCall.do');
46
- $this->setConfigData('carriers/socolissimosimplicite/active_service_is_available', '1');
47
- $this->setConfigData('carriers/socolissimosimplicite/url_service_is_available', 'http://ws.colissimo.fr/supervision-pudo/supervision.jsp');
48
- $this->setConfigData('carriers/socolissimosimplicite/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.");
49
- $this->setConfigData('carriers/socolissimosimplicite/sallowspecific', '1');
50
- $this->setConfigData('carriers/socolissimosimplicite/specificcountry', 'FR');
51
- $this->setConfigData('carriers/socolissimosimplicite/sort_order', '1');
52
- }
53
-
54
- /**
55
- * Valorise la configuration en fonction de la version de Magento
56
- *
57
- * @param string $path
58
- * @param string $value
59
- * @return void
60
- */
61
- private function setConfigData($path, $value)
62
- {
63
- $this->_setup->setConfigData($path, $value);
64
- }
65
-
66
- /**
67
- * Test de la méthode de calcul des montants de livraison
68
- *
69
- * @return void
70
- */
71
- public function testCollectRatesPerAmount()
72
- {
73
- $this->setConfigData('carriers/socolissimosimplicite/minquotepriceforfree', '200');
74
- $this->setConfigData('carriers/socolissimosimplicite/amountbasetype', 'per_amount');
75
- $this->setConfigData('carriers/socolissimosimplicite/amountcalculation', '{"0":"3","50":"5","100":"8","250":"0"}');
76
-
77
- // total < 50€ -> 3
78
- $total = 35.99;
79
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
80
- $request = new Mage_Shipping_Model_Rate_Request();
81
- $request->setData(array('package_value_with_discount' => $total));
82
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
83
- $result = $carrier->collectRates($request);
84
- $rates = $result->getAllRates();
85
- $this->assertEquals(count($rates), 1);
86
- $rate = current($rates);
87
- $this->assertNotNull($rate);
88
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
89
- $this->assertEquals($rate->getData('price'), 3);
90
-
91
- // 50€ < total < 100€ -> 5
92
- $total = 99.99;
93
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
94
- $request = new Mage_Shipping_Model_Rate_Request();
95
- $request->setData(array('package_value_with_discount' => $total));
96
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
97
- $result = $carrier->collectRates($request);
98
- $rates = $result->getAllRates();
99
- $this->assertEquals(count($rates), 1);
100
- $rate = current($rates);
101
- $this->assertNotNull($rate);
102
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
103
- $this->assertEquals($rate->getData('price'), 5);
104
-
105
- // 100€ < total < 250€ -> 8
106
- $total = 125.99;
107
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
108
- $request = new Mage_Shipping_Model_Rate_Request();
109
- $request->setData(array('package_value_with_discount' => $total));
110
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
111
- $result = $carrier->collectRates($request);
112
- $rates = $result->getAllRates();
113
- $this->assertEquals(count($rates), 1);
114
- $rate = current($rates);
115
- $this->assertNotNull($rate);
116
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
117
- $this->assertEquals($rate->getData('price'), 8);
118
-
119
- // 250€ < total
120
- $total = 250.01;
121
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
122
- $request = new Mage_Shipping_Model_Rate_Request();
123
- $request->setData(array('package_value_with_discount' => $total));
124
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
125
- $result = $carrier->collectRates($request);
126
- $rates = $result->getAllRates();
127
- $this->assertEquals(count($rates), 1);
128
- $rate = current($rates);
129
- $this->assertNotNull($rate);
130
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
131
- $this->assertEquals($rate->getData('price'), 0);
132
-
133
- // frais de livraison gratuit si total > 200€ -> false, 8
134
- $total = 115.50;
135
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
136
- $request = new Mage_Shipping_Model_Rate_Request();
137
- $request->setData(array('package_value_with_discount' => $total));
138
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
139
- $result = $carrier->collectRates($request);
140
- $rates = $result->getAllRates();
141
- $this->assertEquals(count($rates), 1);
142
- $rate = current($rates);
143
- $this->assertNotNull($rate);
144
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
145
- $this->assertEquals($rate->getData('price'), 8);
146
-
147
- // frais de livraison gratuit si total > 200€ -> true, 0
148
- $total = 201;
149
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
150
- $request = new Mage_Shipping_Model_Rate_Request();
151
- $request->setData(array('package_value_with_discount' => $total));
152
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
153
- $result = $carrier->collectRates($request);
154
- $rates = $result->getAllRates();
155
- $this->assertEquals(count($rates), 1);
156
- $rate = current($rates);
157
- $this->assertNotNull($rate);
158
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
159
- $this->assertEquals($rate->getData('price'), 0);
160
-
161
- // frais de livraison par règle panier
162
- $total = 25;
163
- Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
164
- $request = new Mage_Shipping_Model_Rate_Request();
165
- $request->setData(array('package_value_with_discount' => $total, 'free_shipping' => true));
166
- $carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
167
- $result = $carrier->collectRates($request);
168
- $rates = $result->getAllRates();
169
- $this->assertEquals(count($rates), 1);
170
- $rate = current($rates);
171
- $this->assertNotNull($rate);
172
- $this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
173
- $this->assertEquals($rate->getData('price'), 0);
174
- }
175
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php CHANGED
@@ -167,7 +167,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
167
  $newSignature = $this->getRequest()->getParam('SIGNATURE');
168
  // signature invalide
169
  if (empty($newSignature)) {
170
- throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la signature retournée par colissimo est vide"));
171
  }
172
 
173
  $transactionId = $this->getRequest()->getParam('ORDERID');
@@ -177,7 +177,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
177
 
178
  // transaction inexistante
179
  if ($transactions->getSize() == 0) {
180
- throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la transaction avec colissimo (id=".$transactionId.") n'est pas valide car inconnue de Magento"));
181
  }
182
 
183
  // mettre à jour la signature si elle a changée
167
  $newSignature = $this->getRequest()->getParam('SIGNATURE');
168
  // signature invalide
169
  if (empty($newSignature)) {
170
+ throw new Exception(Mage::helper('socolissimosimplicite')->__('SoColissimo : la signature retournée par colissimo est vide'));
171
  }
172
 
173
  $transactionId = $this->getRequest()->getParam('ORDERID');
177
 
178
  // transaction inexistante
179
  if ($transactions->getSize() == 0) {
180
+ throw new Exception(Mage::helper('socolissimosimplicite')->__('SoColissimo : la transaction avec colissimo (id="%s") n\'est pas valide car inconnue de Magento', $transactionId));
181
  }
182
 
183
  // mettre à jour la signature si elle a changée
app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml CHANGED
@@ -13,13 +13,21 @@
13
  <config>
14
  <modules>
15
  <LaPoste_SoColissimoSimplicite>
16
- <version>2.2.1</version>
17
  </LaPoste_SoColissimoSimplicite>
18
  </modules>
19
 
20
  <global>
21
  <blocks>
22
- <socolissimosimplicite><class>LaPoste_SoColissimoSimplicite_Block</class></socolissimosimplicite>
 
 
 
 
 
 
 
 
23
  </blocks>
24
 
25
  <models>
@@ -27,7 +35,7 @@
27
  <class>LaPoste_SoColissimoSimplicite_Model</class>
28
  <resourceModel>socolissimosimplicite_mysql4</resourceModel>
29
  </socolissimosimplicite>
30
-
31
  <socolissimosimplicite_mysql4>
32
  <class>LaPoste_SoColissimoSimplicite_Model_Mysql4</class>
33
  <entities>
@@ -67,16 +75,6 @@
67
  </connection>
68
  </socolissimosimplicite_write>
69
  </resources>
70
-
71
- <translate>
72
- <modules>
73
- <LaPoste_SoColissimoSimplicite>
74
- <files>
75
- <default>LaPoste_SoColissimoSimplicite.csv</default>
76
- </files>
77
- </LaPoste_SoColissimoSimplicite>
78
- </modules>
79
- </translate>
80
  </global>
81
 
82
  <frontend>
@@ -93,6 +91,16 @@
93
  </updates>
94
  </layout>
95
 
 
 
 
 
 
 
 
 
 
 
96
  <routers>
97
  <socolissimosimplicite>
98
  <use>standard</use>
@@ -134,6 +142,18 @@
134
  </events>
135
  </frontend>
136
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  <default>
138
  <carriers>
139
  <socolissimosimplicite>
13
  <config>
14
  <modules>
15
  <LaPoste_SoColissimoSimplicite>
16
+ <version>2.3.0</version>
17
  </LaPoste_SoColissimoSimplicite>
18
  </modules>
19
 
20
  <global>
21
  <blocks>
22
+ <socolissimosimplicite>
23
+ <class>LaPoste_SoColissimoSimplicite_Block</class>
24
+ </socolissimosimplicite>
25
+
26
+ <checkout>
27
+ <rewrite>
28
+ <onepage>LaPoste_SoColissimoSimplicite_Block_Onepage</onepage>
29
+ </rewrite>
30
+ </checkout>
31
  </blocks>
32
 
33
  <models>
35
  <class>LaPoste_SoColissimoSimplicite_Model</class>
36
  <resourceModel>socolissimosimplicite_mysql4</resourceModel>
37
  </socolissimosimplicite>
38
+
39
  <socolissimosimplicite_mysql4>
40
  <class>LaPoste_SoColissimoSimplicite_Model_Mysql4</class>
41
  <entities>
75
  </connection>
76
  </socolissimosimplicite_write>
77
  </resources>
 
 
 
 
 
 
 
 
 
 
78
  </global>
79
 
80
  <frontend>
91
  </updates>
92
  </layout>
93
 
94
+ <translate>
95
+ <modules>
96
+ <LaPoste_SoColissimoSimplicite>
97
+ <files>
98
+ <default>LaPoste_SoColissimoSimplicite.csv</default>
99
+ </files>
100
+ </LaPoste_SoColissimoSimplicite>
101
+ </modules>
102
+ </translate>
103
+
104
  <routers>
105
  <socolissimosimplicite>
106
  <use>standard</use>
142
  </events>
143
  </frontend>
144
 
145
+ <adminhtml>
146
+ <translate>
147
+ <modules>
148
+ <LaPoste_SoColissimoSimplicite>
149
+ <files>
150
+ <default>LaPoste_SoColissimoSimplicite.csv</default>
151
+ </files>
152
+ </LaPoste_SoColissimoSimplicite>
153
+ </modules>
154
+ </translate>
155
+ </adminhtml>
156
+
157
  <default>
158
  <carriers>
159
  <socolissimosimplicite>
app/code/community/LaPoste/SoColissimoSimplicite/etc/system.xml CHANGED
@@ -14,7 +14,7 @@
14
  <sections>
15
  <carriers>
16
  <groups>
17
- <socolissimosimplicite>
18
  <label>So Colissimo</label>
19
  <frontend_type>text</frontend_type>
20
  <sort_order>100</sort_order>
@@ -22,8 +22,8 @@
22
  <show_in_website>1</show_in_website>
23
  <show_in_store>1</show_in_store>
24
  <fields>
25
- <active translate="label">
26
- <label>Activé</label>
27
  <frontend_type>select</frontend_type>
28
  <source_model>adminhtml/system_config_source_yesno</source_model>
29
  <sort_order>10</sort_order>
@@ -44,11 +44,7 @@
44
  <show_in_default>1</show_in_default>
45
  <show_in_website>1</show_in_website>
46
  <show_in_store>1</show_in_store>
47
- <comment>
48
- <![CDATA[
49
- Nom du mode de livraison affiché dans le tunnel de commande à l'étape "Mode de livraison".
50
- ]]>
51
- </comment>
52
  </name>
53
  <name_home translate="label comment">
54
  <label>Nom du mode de livraison (domicile)</label>
@@ -56,11 +52,7 @@
56
  <show_in_default>1</show_in_default>
57
  <show_in_website>1</show_in_website>
58
  <show_in_store>1</show_in_store>
59
- <comment>
60
- <![CDATA[
61
- Nom du mode de livraison une fois que l'internaute a choisi la livraison à domicile dans l'interface de So Colissimo.
62
- ]]>
63
- </comment>
64
  </name_home>
65
  <name_appointment translate="label comment">
66
  <label>Nom du mode de livraison (rendez-vous)</label>
@@ -68,11 +60,7 @@
68
  <show_in_default>1</show_in_default>
69
  <show_in_website>1</show_in_website>
70
  <show_in_store>1</show_in_store>
71
- <comment>
72
- <![CDATA[
73
- Nom du mode de livraison une fois que l'internaute a choisi la livraison sur rendez-vous dans l'interface de So Colissimo.
74
- ]]>
75
- </comment>
76
  </name_appointment>
77
  <name_pickup translate="label comment">
78
  <label>Nom du mode de livraison (point de retrait commerçant)</label>
@@ -80,11 +68,7 @@
80
  <show_in_default>1</show_in_default>
81
  <show_in_website>1</show_in_website>
82
  <show_in_store>1</show_in_store>
83
- <comment>
84
- <![CDATA[
85
- Nom du mode de livraison une fois que l'internaute a choisi la livraison en point de retrait commerçant dans l'interface de So Colissimo.
86
- ]]>
87
- </comment>
88
  </name_pickup>
89
  <name_post_office translate="label comment">
90
  <label>Nom du mode de livraison (bureau de poste)</label>
@@ -92,11 +76,7 @@
92
  <show_in_default>1</show_in_default>
93
  <show_in_website>1</show_in_website>
94
  <show_in_store>1</show_in_store>
95
- <comment>
96
- <![CDATA[
97
- Nom du mode de livraison une fois que l'internaute a choisi la livraison en bureau de poste dans l'interface de So Colissimo.
98
- ]]>
99
- </comment>
100
  </name_post_office>
101
  <selectmessage translate="label">
102
  <label>Message lors de la sélection du mode de livraison</label>
@@ -178,23 +158,7 @@
178
  <show_in_default>1</show_in_default>
179
  <show_in_website>1</show_in_website>
180
  <show_in_store>1</show_in_store>
181
- <comment>
182
- <![CDATA[
183
- Il s’agit des frais d’expédition appliqués par défaut pour tous les modes de livraison en France.<br/>
184
- Si <strong>tarif unique</strong>, indiquer le montant (sans devise) ;<br />
185
- Si <strong>tarif selon le poids</strong>, indiquer :<br />
186
- {"poids en kg": "tarif1", "poids en kg": "tarif2", ...}<br />
187
- Le tarif est appliqué pour un poids supérieur ou égal au poids correspondant.<br />
188
- Exemple de conditions tarifaires selon le poids :<br/>
189
- {"0": "2.90", "0.5": "4.50", "5": "8", "10": "14"}<br/>
190
- Si <strong>tarif selon le sous-total du panier</strong>,
191
- indiquer :<br />
192
- {"montant": "tarif1", "montant": "tarif2", ...}<br />
193
- Le tarif est appliqué pour un montant supérieur ou égal au montant correspondant.<br />
194
- Exemple de conditions tarifaires selon le montant :<br />
195
- {"0": "3", "50": "5", "100": "8", "250": "0"}
196
- ]]>
197
- </comment>
198
  </amountcalculation>
199
  <amountbasetype_pickup translate="label">
200
  <label>Type des frais de livraison commerçants</label>
@@ -213,13 +177,7 @@
213
  <show_in_default>1</show_in_default>
214
  <show_in_website>1</show_in_website>
215
  <show_in_store>1</show_in_store>
216
- <comment>
217
- <![CDATA[
218
- Il s'agit des frais d'expédition appliqués pour la livraison en point de retrait commerçant.<br />
219
- Le fonctionnement est identique au paramètre "Calcul des frais de livraison".<br />
220
- Laisser vide pour ne pas appliquer de tarif spécifique à la livraison en point de retrait commerçant.
221
- ]]>
222
- </comment>
223
  </amountcalculation_pickup>
224
  <minquotepriceforfree translate="label">
225
  <label>Livraison offerte à partir de (en €)</label>
@@ -227,10 +185,7 @@
227
  <show_in_default>1</show_in_default>
228
  <show_in_website>1</show_in_website>
229
  <show_in_store>1</show_in_store>
230
- <comment>
231
- <![CDATA[
232
- Laisser vide pour ne pas offrir les frais de livraison
233
- ]]>
234
  </comment>
235
  </minquotepriceforfree>
236
  <price_format translate="label comment">
@@ -239,17 +194,9 @@
239
  <show_in_default>1</show_in_default>
240
  <show_in_website>1</show_in_website>
241
  <show_in_store>1</show_in_store>
242
- <comment>
243
- <![CDATA[
244
- Format du tarif du mode de livraison So Colissimo, à l'étape de livraison du tunnel de commande.<br />
245
- Laisser vide pour garder l'affichage natif de Magento.<br />
246
- Le tarif est représenté par "%s".<br />
247
- Exemple : avec une valeur "(à partir de %s)" et des frais de livraison de 10€, le prix affiché dans
248
- le tunnel de commande sera "(à partir de 10€)".
249
- ]]>
250
- </comment>
251
  </price_format>
252
- <min_order_total translate="label">
253
  <label>Minimum Order Total</label>
254
  <frontend_type>text</frontend_type>
255
  <sort_order>220</sort_order>
@@ -257,7 +204,7 @@
257
  <show_in_website>1</show_in_website>
258
  <show_in_store>1</show_in_store>
259
  </min_order_total>
260
- <max_order_total translate="label">
261
  <label>Maximum Order Total</label>
262
  <frontend_type>text</frontend_type>
263
  <sort_order>230</sort_order>
@@ -271,13 +218,9 @@
271
  <show_in_default>1</show_in_default>
272
  <show_in_website>1</show_in_website>
273
  <show_in_store>1</show_in_store>
274
- <comment>
275
- <![CDATA[
276
- So Colissimo ne sera pas proposé si le poids dépasse le montant saisi.
277
- ]]>
278
- </comment>
279
  </max_weight>
280
- <sallowspecific translate="label">
281
  <label>Ship to Applicable Countries</label>
282
  <frontend_type>select</frontend_type>
283
  <sort_order>250</sort_order>
@@ -288,7 +231,7 @@
288
  <show_in_website>1</show_in_website>
289
  <show_in_store>0</show_in_store>
290
  </sallowspecific>
291
- <specificcountry translate="label comment">
292
  <label>Ship to Specific Countries</label>
293
  <frontend_type>multiselect</frontend_type>
294
  <sort_order>260</sort_order>
@@ -297,14 +240,11 @@
297
  <show_in_default>1</show_in_default>
298
  <show_in_website>1</show_in_website>
299
  <show_in_store>0</show_in_store>
300
- <comment>
301
- <![CDATA[
302
- Les pays compatibles sont la France et la Belgique.
303
- ]]>
304
  </comment>
305
  <can_be_empty>1</can_be_empty>
306
  </specificcountry>
307
- <sort_order translate="label">
308
  <label>Sort Order</label>
309
  <frontend_type>text</frontend_type>
310
  <sort_order>270</sort_order>
14
  <sections>
15
  <carriers>
16
  <groups>
17
+ <socolissimosimplicite translate="label" module="socolissimosimplicite">
18
  <label>So Colissimo</label>
19
  <frontend_type>text</frontend_type>
20
  <sort_order>100</sort_order>
22
  <show_in_website>1</show_in_website>
23
  <show_in_store>1</show_in_store>
24
  <fields>
25
+ <active translate="label" module="shipping">
26
+ <label>Enabled</label>
27
  <frontend_type>select</frontend_type>
28
  <source_model>adminhtml/system_config_source_yesno</source_model>
29
  <sort_order>10</sort_order>
44
  <show_in_default>1</show_in_default>
45
  <show_in_website>1</show_in_website>
46
  <show_in_store>1</show_in_store>
47
+ <comment><![CDATA[Nom du mode de livraison affiché dans le tunnel de commande à l'étape "Mode de livraison".]]></comment>
 
 
 
 
48
  </name>
49
  <name_home translate="label comment">
50
  <label>Nom du mode de livraison (domicile)</label>
52
  <show_in_default>1</show_in_default>
53
  <show_in_website>1</show_in_website>
54
  <show_in_store>1</show_in_store>
55
+ <comment><![CDATA[Nom du mode de livraison une fois que l'internaute a choisi la livraison à domicile dans l'interface de So Colissimo.]]></comment>
 
 
 
 
56
  </name_home>
57
  <name_appointment translate="label comment">
58
  <label>Nom du mode de livraison (rendez-vous)</label>
60
  <show_in_default>1</show_in_default>
61
  <show_in_website>1</show_in_website>
62
  <show_in_store>1</show_in_store>
63
+ <comment><![CDATA[Nom du mode de livraison une fois que l'internaute a choisi la livraison sur rendez-vous dans l'interface de So Colissimo.]]></comment>
 
 
 
 
64
  </name_appointment>
65
  <name_pickup translate="label comment">
66
  <label>Nom du mode de livraison (point de retrait commerçant)</label>
68
  <show_in_default>1</show_in_default>
69
  <show_in_website>1</show_in_website>
70
  <show_in_store>1</show_in_store>
71
+ <comment><![CDATA[Nom du mode de livraison une fois que l'internaute a choisi la livraison en point de retrait commerçant dans l'interface de So Colissimo.]]></comment>
 
 
 
 
72
  </name_pickup>
73
  <name_post_office translate="label comment">
74
  <label>Nom du mode de livraison (bureau de poste)</label>
76
  <show_in_default>1</show_in_default>
77
  <show_in_website>1</show_in_website>
78
  <show_in_store>1</show_in_store>
79
+ <comment><![CDATA[Nom du mode de livraison une fois que l'internaute a choisi la livraison en bureau de poste dans l'interface de So Colissimo.]]></comment>
 
 
 
 
80
  </name_post_office>
81
  <selectmessage translate="label">
82
  <label>Message lors de la sélection du mode de livraison</label>
158
  <show_in_default>1</show_in_default>
159
  <show_in_website>1</show_in_website>
160
  <show_in_store>1</show_in_store>
161
+ <comment><![CDATA[Il s’agit des frais d’expédition appliqués par défaut pour tous les modes de livraison en France.<br/>Si <strong>tarif unique</strong>, indiquer le montant (sans devise) ;<br />Si <strong>tarif selon le poids</strong>, indiquer :<br />{"poids en kg": "tarif1", "poids en kg": "tarif2", ...}<br />Le tarif est appliqué pour un poids supérieur ou égal au poids correspondant.<br />Exemple de conditions tarifaires selon le poids :<br/>{"0": "2.90", "0.5": "4.50", "5": "8", "10": "14"}<br/>Si <strong>tarif selon le sous-total du panier</strong>, indiquer :<br />{"montant": "tarif1", "montant": "tarif2", ...}<br />Le tarif est appliqué pour un montant supérieur ou égal au montant correspondant.<br />Exemple de conditions tarifaires selon le montant :<br />{"0": "3", "50": "5", "100": "8", "250": "0"}]]></comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  </amountcalculation>
163
  <amountbasetype_pickup translate="label">
164
  <label>Type des frais de livraison commerçants</label>
177
  <show_in_default>1</show_in_default>
178
  <show_in_website>1</show_in_website>
179
  <show_in_store>1</show_in_store>
180
+ <comment><![CDATA[Il s'agit des frais d'expédition appliqués pour la livraison en point de retrait commerçant.<br />Le fonctionnement est identique au paramètre "Calcul des frais de livraison".<br />Laisser vide pour ne pas appliquer de tarif spécifique à la livraison en point de retrait commerçant.]]></comment>
 
 
 
 
 
 
181
  </amountcalculation_pickup>
182
  <minquotepriceforfree translate="label">
183
  <label>Livraison offerte à partir de (en €)</label>
185
  <show_in_default>1</show_in_default>
186
  <show_in_website>1</show_in_website>
187
  <show_in_store>1</show_in_store>
188
+ <comment><![CDATA[Laisser vide pour ne pas offrir les frais de livraison.]]>
 
 
 
189
  </comment>
190
  </minquotepriceforfree>
191
  <price_format translate="label comment">
194
  <show_in_default>1</show_in_default>
195
  <show_in_website>1</show_in_website>
196
  <show_in_store>1</show_in_store>
197
+ <comment><![CDATA[Format du tarif du mode de livraison So Colissimo, à l'étape de livraison du tunnel de commande.<br />Laisser vide pour garder l'affichage natif de Magento.<br />Le tarif est représenté par "%s".<br />Exemple : avec une valeur "(à partir de %s)" et des frais de livraison de 10€, le prix affiché dans le tunnel de commande sera "(à partir de 10€)".]]></comment>
 
 
 
 
 
 
 
 
198
  </price_format>
199
+ <min_order_total translate="label" module="payment">
200
  <label>Minimum Order Total</label>
201
  <frontend_type>text</frontend_type>
202
  <sort_order>220</sort_order>
204
  <show_in_website>1</show_in_website>
205
  <show_in_store>1</show_in_store>
206
  </min_order_total>
207
+ <max_order_total translate="label" module="payment">
208
  <label>Maximum Order Total</label>
209
  <frontend_type>text</frontend_type>
210
  <sort_order>230</sort_order>
218
  <show_in_default>1</show_in_default>
219
  <show_in_website>1</show_in_website>
220
  <show_in_store>1</show_in_store>
221
+ <comment><![CDATA[So Colissimo ne sera pas proposé si le poids dépasse le montant saisi.]]></comment>
 
 
 
 
222
  </max_weight>
223
+ <sallowspecific translate="label" module="shipping">
224
  <label>Ship to Applicable Countries</label>
225
  <frontend_type>select</frontend_type>
226
  <sort_order>250</sort_order>
231
  <show_in_website>1</show_in_website>
232
  <show_in_store>0</show_in_store>
233
  </sallowspecific>
234
+ <specificcountry translate="label comment" module="shipping">
235
  <label>Ship to Specific Countries</label>
236
  <frontend_type>multiselect</frontend_type>
237
  <sort_order>260</sort_order>
240
  <show_in_default>1</show_in_default>
241
  <show_in_website>1</show_in_website>
242
  <show_in_store>0</show_in_store>
243
+ <comment><![CDATA[Les pays compatibles sont la France et la Belgique.]]>
 
 
 
244
  </comment>
245
  <can_be_empty>1</can_be_empty>
246
  </specificcountry>
247
+ <sort_order translate="label" module="shipping">
248
  <label>Sort Order</label>
249
  <frontend_type>text</frontend_type>
250
  <sort_order>270</sort_order>
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.0.6-1.0.7.php CHANGED
@@ -18,7 +18,6 @@ $this->removeAttribute('order', 'soco_door_code2');
18
  $this->removeAttribute('order', 'soco_interphone');
19
  $this->removeAttribute('order', 'soco_relay_point_code');
20
 
21
-
22
  $this->addAttribute(
23
  'order',
24
  'soco_product_code',
18
  $this->removeAttribute('order', 'soco_interphone');
19
  $this->removeAttribute('order', 'soco_relay_point_code');
20
 
 
21
  $this->addAttribute(
22
  'order',
23
  'soco_product_code',
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-2.2.1-2.3.0.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ $installer = $this;
12
+ $installer->startSetup();
13
+
14
+ $this->removeAttribute('order', 'soco_network_code');
15
+
16
+ $this->addAttribute(
17
+ 'order',
18
+ 'soco_network_code',
19
+ array(
20
+ 'type' => 'varchar',
21
+ 'label' => 'Code réseau So Colissimo',
22
+ 'visible' => true,
23
+ 'required' => false,
24
+ 'input' => 'text',
25
+ )
26
+ );
27
+
28
+ $installer->endSetup();
app/design/frontend/default/default/layout/socolissimosimplicite.xml CHANGED
@@ -11,41 +11,29 @@
11
  */
12
  -->
13
  <layout version="0.1.0">
14
- <checkout_onepage_index translate="label">
15
  <reference name="content">
16
- <action method="unsetChild"><name>checkout.onepage</name></action>
17
- <block type="socolissimosimplicite/onepage" name="checkout.onepage" template="checkout/onepage.phtml">
18
- <block type="checkout/onepage_login" name="checkout.onepage.login" as="login" template="checkout/onepage/login.phtml">
19
- <block type="page/html_wrapper" name="checkout.onepage.login.before" as="login_before">
20
- <action method="setMayBeInvisible"><value>1</value></action>
21
- </block>
22
- </block>
23
- <block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/billing.phtml"/>
24
- <block type="checkout/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="checkout/onepage/shipping.phtml"/>
25
- <block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="socolissimosimplicite/onepage/shipping_method.phtml">
26
- <block type="socolissimosimplicite/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="socolissimosimplicite/onepage/shipping_method/available.phtml">
27
- <action method="addItemRender"><type>default</type><block>socolissimosimplicite/onepage_shipping_method_available_item</block><template>socolissimosimplicite/onepage/shipping_method/available/default.phtml</template></action>
28
- <action method="addItemRender"><type>socolissimosimplicite</type><block>socolissimosimplicite/onepage_shipping_method_available_item</block><template>socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml</template></action>
29
- </block>
30
- <block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
31
- </block>
32
- <block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
33
- <block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
34
- <action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
35
- </block>
36
- </block>
37
- <block type="checkout/onepage_review" name="checkout.onepage.review" as="review" template="checkout/onepage/review.phtml">
38
- <block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="checkout/onepage/agreements.phtml"/>
39
- </block>
40
- </block>
41
  </reference>
42
  </checkout_onepage_index>
43
 
44
  <checkout_onepage_shippingmethod>
45
- <block type="socolissimosimplicite/onepage_shipping_method_available" name="root" output="toHtml" template="socolissimosimplicite/onepage/shipping_method/available.phtml">
46
- <action method="addItemRender"><type>default</type><block>socolissimosimplicite/onepage_shipping_method_available_item</block><template>socolissimosimplicite/onepage/shipping_method/available/default.phtml</template></action>
47
- <action method="addItemRender"><type>socolissimosimplicite</type><block>socolissimosimplicite/onepage_shipping_method_available_item</block><template>socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml</template></action>
48
- </block>
49
  </checkout_onepage_shippingmethod>
50
 
51
  <socolissimosimplicite_form_send>
@@ -59,7 +47,7 @@
59
 
60
  <socolissimosimplicite_form_failure>
61
  <reference name="content">
62
- <block type="core/template" template="socolissimosimplicite/form/failure.phtml" />
63
  </reference>
64
  </socolissimosimplicite_form_failure>
65
  </layout>
11
  */
12
  -->
13
  <layout version="0.1.0">
14
+ <checkout_cart_index>
15
  <reference name="content">
16
+ <!-- personnalise l'affichage du mode de livraison So Colissimo (dans le bloc d'estimation des frais de port) -->
17
+ <block type="core/template" name="shippingmethod.socolissimosimplicite" template="socolissimosimplicite/onepage/shipping_method/socolissimosimplicite.phtml" after="iframe.socolissimosimplicite" />
18
+ </reference>
19
+ </checkout_cart_index>
20
+
21
+ <checkout_onepage_index>
22
+ <reference name="head">
23
+ <action method="addItem"><type>skin_js</type><name>js/socolissimosimplicite/shipping_method.js</name></action>
24
+ </reference>
25
+
26
+ <reference name="content">
27
+ <!-- gère le chargement de l'IFrame So Colissimo -->
28
+ <block type="socolissimosimplicite/iframe" name="iframe.socolissimosimplicite" template="socolissimosimplicite/iframe.phtml" after="checkout.onepage" />
29
+ <!-- personnalise l'affichage du mode de livraison So Colissimo (lors du rechargement du onepage après la validation de l'IFrame) -->
30
+ <block type="core/template" name="shippingmethod.socolissimosimplicite" template="socolissimosimplicite/onepage/shipping_method/socolissimosimplicite.phtml" after="iframe.socolissimosimplicite" />
 
 
 
 
 
 
 
 
 
 
31
  </reference>
32
  </checkout_onepage_index>
33
 
34
  <checkout_onepage_shippingmethod>
35
+ <!-- personnalise l'affichage du mode de livraison So Colissimo (lors du chargement en AJAX de l'étape livraison) -->
36
+ <block type="core/template" name="root.socolissimosimplicite" output="toHtml" template="socolissimosimplicite/onepage/shipping_method/socolissimosimplicite.phtml" after="root" />
 
 
37
  </checkout_onepage_shippingmethod>
38
 
39
  <socolissimosimplicite_form_send>
47
 
48
  <socolissimosimplicite_form_failure>
49
  <reference name="content">
50
+ <block type="core/template" name="failure.socolissimosimplicite" template="socolissimosimplicite/form/failure.phtml" />
51
  </reference>
52
  </socolissimosimplicite_form_failure>
53
  </layout>
app/design/frontend/default/default/template/socolissimosimplicite/empty.phtml CHANGED
@@ -1,13 +1,14 @@
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
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
13
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>">
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
+ /* @var $this Mage_Core_Block_Template */
12
  ?>
13
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
14
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>">
app/design/frontend/default/default/template/socolissimosimplicite/form.phtml CHANGED
@@ -8,6 +8,7 @@
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();
@@ -17,8 +18,8 @@ $_helper = $this->helper('socolissimosimplicite');
17
  ?>
18
 
19
  <?php if (!empty($_serviceUnavailableRedirect)): ?>
20
- <h3><?php echo $this->__("Les options du lieu de livraison ne sont pas disponibles.<br />Le colis sera livré à votre adresse de livraison.") ?></h3>
21
- <p><?php echo $this->__("La page va se mettre à jour à l'étape suivante.") ?></p>
22
  <form name="socolissimosimpliciteform" action="<?php echo $_serviceUnavailableRedirect ?>" target="_parent" method="get"></form>
23
  <?php else: ?>
24
  <?php if($this->getRedirectMessage()): ?>
@@ -26,7 +27,7 @@ $_helper = $this->helper('socolissimosimplicite');
26
  <?php endif; ?>
27
  <form name="socolissimosimpliciteform" action="<?php echo $this->getUrlFoWithReturnUrlKo(); ?>" method="post">
28
  <?php // account id ?>
29
- <input type="hidden" name="pudoFOId" value="<?php echo $this->getAccountID(); ?>" />
30
 
31
  <?php // champs de la transaction ?>
32
  <?php $_fields = $_helper->getFieldsToSend($this->getTransaction()->getId(), $_address); ?>
@@ -34,14 +35,14 @@ $_helper = $this->helper('socolissimosimplicite');
34
  <?php foreach ($_fields as $_field => $_value): ?>
35
  <?php // on ignore les champs vides (pas obligatoire mais cela permet d'envoyer moins de données) ?>
36
  <?php if ($_value !== null && $_value !== '' && $_value !== false): ?>
37
- <input type="hidden" name="<?php echo $_field; ?>" value="<?php echo $_value; ?>" />
38
  <?php endif; ?>
39
  <?php endforeach; ?>
40
 
41
  <?php // signature de la transaction ?>
42
- <input type="hidden" name="signature" value="<?php echo $this->getTransaction()->getSignature(); ?>" />
43
- </form>
44
  <?php endif ?>
 
45
  <script type="text/javascript">
46
  //<![CDATA[
47
  document.socolissimosimpliciteform.submit();
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
+ /* @var $this LaPoste_SoColissimoSimplicite_Block_Form */
12
  ?>
13
  <?php
14
  $_address = $this->getShippingAddress();
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
  <?php if($this->getRedirectMessage()): ?>
27
  <?php endif; ?>
28
  <form name="socolissimosimpliciteform" action="<?php echo $this->getUrlFoWithReturnUrlKo(); ?>" method="post">
29
  <?php // account id ?>
30
+ <input type="hidden" name="pudoFOId" value="<?php echo htmlspecialchars($this->getAccountID()); ?>" />
31
 
32
  <?php // champs de la transaction ?>
33
  <?php $_fields = $_helper->getFieldsToSend($this->getTransaction()->getId(), $_address); ?>
35
  <?php foreach ($_fields as $_field => $_value): ?>
36
  <?php // on ignore les champs vides (pas obligatoire mais cela permet d'envoyer moins de données) ?>
37
  <?php if ($_value !== null && $_value !== '' && $_value !== false): ?>
38
+ <input type="hidden" name="<?php echo $_field; ?>" value="<?php echo htmlspecialchars($_value); ?>" />
39
  <?php endif; ?>
40
  <?php endforeach; ?>
41
 
42
  <?php // signature de la transaction ?>
43
+ <input type="hidden" name="signature" value="<?php echo htmlspecialchars($this->getTransaction()->getSignature()); ?>" />
 
44
  <?php endif ?>
45
+ </form>
46
  <script type="text/javascript">
47
  //<![CDATA[
48
  document.socolissimosimpliciteform.submit();
app/design/frontend/default/default/template/socolissimosimplicite/form/failure.phtml CHANGED
@@ -1,14 +1,17 @@
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
- <h1><?php echo $this->__('Une erreur technique a été rencontrée') ?></h1>
13
 
14
- <p><?php echo $this->__('Merci de soumettre votre commande ultérieurement') ?></p>
 
 
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
+ /* @var $this Mage_Core_Block_Template */
12
  ?>
13
+ <?php $_helper = $this->helper('socolissimosimplicite'); ?>
14
 
15
+ <h1><?php echo $_helper->__('Une erreur technique a été rencontrée') ?></h1>
16
+
17
+ <p><?php echo $_helper->__('Merci de soumettre votre commande ultérieurement') ?></p>
app/design/frontend/default/default/template/socolissimosimplicite/iframe.phtml ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ /* @var $this LaPoste_SoColissimoSimplicite_Block_Iframe */
12
+ ?>
13
+ <?php /* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */ ?>
14
+ <?php $_helper = $this->helper('socolissimosimplicite'); ?>
15
+
16
+ <?php if ($_helper->isActive()): ?>
17
+ <?php // chargement des étapes "shipping_method" et "payment" après retour de l'iframe ?>
18
+ <?php if ($this->hasToLoadShippingMethodAndPayment()): ?>
19
+ <script type="text/javascript">
20
+ //<![CDATA[
21
+ (function() {
22
+ checkout.currentStep = 'payment';
23
+ $('checkout-shipping-method-load').update(<?php echo json_encode($this->getShippingMethodHtml()); ?>);
24
+ $('checkout-payment-method-load').update(<?php echo json_encode($this->getPaymentHtml()); ?>);
25
+ })();
26
+ </script>
27
+ <?php endif; ?>
28
+
29
+ <script type="text/javascript">
30
+ //<![CDATA[
31
+ (function() {
32
+ // Initialisation de l'object gérant l'IFrame
33
+ var socoShippingMethod = new SocoShippingMethod(
34
+ <?php echo json_encode($_helper->getFormUrl()); ?>,
35
+ {
36
+ rateCode: <?php echo json_encode($_helper->getRateCode()); ?>,
37
+ cancelLabel: <?php echo json_encode($_helper->__('Annuler So Colissimo')); ?>
38
+ }
39
+ );
40
+
41
+ // fonction générique pour encapsuler les événements onclick
42
+ function wrapEvent(element, type, fn) {
43
+ var old = element['on' + type] || function() {};
44
+ element['on' + type] = function() { fn(old); };
45
+ }
46
+
47
+ // activation de l'IFrame So Colissimo au clic sur le bouton
48
+ var saveButton = $$('#shipping-method-buttons-container button');
49
+ if (saveButton.length > 0) {
50
+ wrapEvent(saveButton.first(), 'click', function(next) {
51
+ var inputToValidate = $(<?php echo json_encode('s_method_' . $_helper->getRateCode()); ?>);
52
+ if (inputToValidate !== null && inputToValidate.checked === true) {
53
+ var result = socoShippingMethod.save();
54
+ if (result === false) {
55
+ next();
56
+ }
57
+ } else {
58
+ next();
59
+ }
60
+ });
61
+ }
62
+ })();
63
+ //]]>
64
+ </script>
65
+ <?php endif; ?>
66
+
67
+ <?php // réinitialise la variable de session pour retrouver un comportement natif (un refresh réinitialise le onepage) ?>
68
+ <?php $this->getCheckoutSession()->unsetData('socolissimosimplicite_checkout_onepage_nextstep'); ?>
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml DELETED
@@ -1,165 +0,0 @@
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="">
17
- <div id="checkout-shipping-method-load">
18
- <?php echo $this->getChildHtml('available') ?>
19
- </div>
20
- <script type="text/javascript">
21
- //<![CDATA[
22
- // So Colissimo 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 (document.getElementById('socolissimo-error') !== null) {
37
- // Skip IFrame if So Colissimo platform is unavailable
38
- return this.save();
39
- } else if (checkout.loadWaiting != false) {
40
- return;
41
- } else {
42
- if (this.validate()) {
43
- checkout.setLoadWaiting('shipping-method');
44
- var request = new Ajax.Request(
45
- this.saveUrl,
46
- {
47
- method:'post',
48
- onComplete: this.onCompleteSaveWithColissimo.bind(this), // preserves context when calling these methods
49
- onSuccess: this.redirectToColissimo.bind(this),
50
- onFailure: checkout.ajaxFailure.bind(checkout),
51
- parameters: Form.serialize(this.form)
52
- }
53
- );
54
- }
55
- }
56
- };
57
-
58
- // Hacking standard onComplete when saving socollissimo
59
- ShippingMethod.prototype.onCompleteSaveWithColissimo = function() {
60
- if (!this.isSocolissimoSelected()) {
61
- this.onComplete();
62
- }
63
- };
64
-
65
- // Hack to allow checkout steps freezing
66
- ShippingMethod.prototype.freezSteps = function() {
67
- this.savedAllowedSteps = [];
68
-
69
- var steps = document.getElementById('checkoutSteps').children;
70
- for (var i=0; i<steps.length; i++) {
71
- if (steps[i].hasClassName('allow')) {
72
- this.savedAllowedSteps[i] = true;
73
- steps[i].removeClassName('allow');
74
- } else {
75
- this.savedAllowedSteps[i] = false;
76
- }
77
- }
78
- };
79
-
80
- // Hack to allow checkout unfreeze after a call to freezSteps
81
- ShippingMethod.prototype.unfreezSteps = function() {
82
- if (typeof(this.savedAllowedSteps) !== 'undefined') {
83
- var steps = document.getElementById('checkoutSteps').children;
84
- for (var i=0; i<steps.length; i++) {
85
- if (this.savedAllowedSteps[i] === true) {
86
- steps[i].addClassName('allow');
87
- }
88
- }
89
- }
90
- };
91
-
92
- // Check if So Colissimo is selected, then redirect on form which post data on this platform
93
- ShippingMethod.prototype.redirectToColissimo = function(transport) {
94
- var urlFormSoColissimoSimplicite = '<?php echo $_helper->getFormUrl()?>';
95
- var methods = document.getElementsByName('shipping_method');
96
-
97
- if (this.isSocolissimoSelected()) {
98
- // Remove ending slash for IFrame src
99
- urlFormSoColissimoSimplicite = urlFormSoColissimoSimplicite.replace(/\/$/, '');
100
-
101
- var socoIFrameContainer = document.getElementById('socolissimosimplicite_iframe_wrapper');
102
-
103
- var socoIFrame = document.createElement('iframe');
104
- socoIFrame.id = 'socolissimosimplicite_iframe';
105
- socoIFrame.frameBorder = 0;
106
- socoIFrame.width = '572px';
107
- socoIFrame.height = '1100px';
108
- socoIFrame.setAttribute('src', urlFormSoColissimoSimplicite);
109
-
110
- // Append the IFrame to the wrapper
111
- socoIFrameContainer.appendChild(socoIFrame);
112
-
113
- // Disabling all methods during IFrame validation
114
- for (var j=0; j<methods.length; j++) {
115
- methods[j].disabled = 'disabled';
116
- }
117
-
118
- // Disable checkout step changing
119
- this.freezSteps();
120
-
121
- document.getElementById('cancel_soco_shipping_button').style.display = 'block';
122
- checkout.setLoadWaiting('shipping-method');
123
- } else {
124
- // Go to next step (= default onSave binding)
125
- ShippingMethod.prototype.nextStep(transport);
126
- }
127
- };
128
-
129
- // Cancel So Cocolissimo IFrame and reenable disabled checkout feature
130
- ShippingMethod.prototype.cancelSocollisimo = function() {
131
- var methods = document.getElementsByName('shipping_method');
132
- for (var i=0; i<methods.length; i++) {
133
- methods[i].disabled = '';
134
- }
135
-
136
- var socoIframeContainer = document.getElementById('socolissimosimplicite_iframe_wrapper');
137
- while (socoIframeContainer.firstChild) {
138
- socoIframeContainer.removeChild(socoIframeContainer.firstChild);
139
- }
140
-
141
- this.resetLoadWaiting();
142
- document.getElementById('cancel_soco_shipping_button').style.display = 'none';
143
- this.unfreezSteps();
144
- };
145
- //]]>
146
- </script>
147
- <script type="text/javascript">
148
- //<![CDATA[
149
- var shippingMethod = new ShippingMethod('co-shipping-method-form', "<?php echo $this->getUrl('checkout/onepage/saveShippingMethod') ?>");
150
- //]]>
151
- </script>
152
- <div id="onepage-checkout-shipping-method-additional-load">
153
- <?php echo $this->getChildHtml('additional') ?>
154
- </div>
155
- <div class="buttons-set">
156
- <button id="cancel_soco_shipping_button" type="button" class="button" onclick="shippingMethod.cancelSocollisimo();" style="display:none;"><span><span><?php echo $this->__('Annuler So Colissimo') ?></span></span></button>
157
- </div>
158
- <div class="buttons-set" id="shipping-method-buttons-container">
159
- <p class="back-link"><a href="#" onclick="checkout.back();return false;"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
160
- <button type="button" class="button" onclick="shippingMethod.saveWithColissimo();"><span><span><?php echo $this->__('Continue') ?></span></span></button>
161
- <span id="shipping-method-please-wait" class="please-wait" style="display:none;">
162
- <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
163
- </span>
164
- </div>
165
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml DELETED
@@ -1,73 +0,0 @@
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 (!($_shippingRateGroups = $this->getShippingRates())): ?>
18
- <p><?php echo $this->__('Sorry, no quotes are available for this order at this time.'); ?></p>
19
- <?php else: ?>
20
- <?php // fix javascript bug on community 1.5 ?>
21
- <?php if (version_compare(Mage::getVersion(), '1.5.0.0', '>=') and version_compare(Mage::getVersion(), '1.6.0.0', '<')): ?>
22
- <script type="text/javascript">
23
- //<![CDATA[
24
- var lastPrice = null;
25
- var quoteBaseGrandTotal = <?php echo (float)$this->getQuoteBaseGrandTotal() ?>;
26
- var checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
27
- //]]>
28
- </script>
29
- <?php endif; ?>
30
- <dl class="sp-methods">
31
-
32
- <?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
33
- <dt><?php echo $this->getCarrierName($code) ?></dt>
34
- <dd>
35
- <ul>
36
- <?php foreach ($_rates as $_rate): ?>
37
- <?php $shippingCodePrice[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
38
- <li>
39
- <?php if ($_rate->getErrorMessage()): ?>
40
- <ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
41
- <?php else: ?>
42
- <?php if ($_sole) : ?>
43
- <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>
44
- <?php else: ?>
45
- <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"/>
46
-
47
- <?php if ($_rate->getCode() === $this->getAddressShippingMethod()): ?>
48
- <script type="text/javascript">
49
- //<![CDATA[
50
- lastPrice = <?php echo (float)$_rate->getPrice() ?>;
51
- //]]>
52
- </script>
53
- <?php endif ?>
54
- <?php endif ?>
55
-
56
- <?php echo $this->getItemHtml($_rate); ?>
57
-
58
- <?php // disponibilité de la plateforme soco ?>
59
- <?php if ($_rate->getCode() == $_socoHelper->getRateCode()): ?>
60
- <?php if ($_socoHelper->checkServiceAvailability()): ?>
61
- <div id="socolissimosimplicite_iframe_wrapper"></div>
62
- <?php else: ?>
63
- <ul class="messages" id="socolissimo-error"><li class="error-msg"><ul><li><?php echo $_socoHelper->getServiceNotAvailableMessage(); ?></li></ul></li></ul>
64
- <?php endif; ?>
65
- <?php endif; ?>
66
- <?php endif ?>
67
- </li>
68
- <?php endforeach ?>
69
- </ul>
70
- </dd>
71
- <?php endforeach; ?>
72
- </dl>
73
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/default.phtml DELETED
@@ -1,20 +0,0 @@
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 $_rate = $this->getRate() ?>
13
- <label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?>
14
- <?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
15
- <?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
16
- <?php echo $_excl; ?>
17
- <?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
18
- (<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
19
- <?php endif; ?>
20
- </label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml DELETED
@@ -1,23 +0,0 @@
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
- $_rate = $this->getRate();
14
- /* @var $_helper LaPoste_SocolissimoSimplicite_Helper_Data */
15
- $_helper = $this->helper('socolissimosimplicite');
16
- // get the shipping price
17
- $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax());
18
- // convert the shipping price to a formatted label
19
- $_excl = Mage::helper('socolissimosimplicite')->getShippingPriceLabel($_excl);
20
- ?>
21
- <label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?> <?php echo $_excl; ?></label>
22
- <br />
23
- <?php echo $_helper->getSelectMessage() ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/socolissimosimplicite.phtml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ /* @var $this Mage_Core_Block_Template */
12
+ ?>
13
+ <?php /* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */ ?>
14
+ <?php $_helper = $this->helper('socolissimosimplicite'); ?>
15
+
16
+ <?php if ($_helper->isActive()): ?>
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ (function() {
20
+ <?php // personnalisation de l'affichage du mode de livraison So Colissimo ?>
21
+ var socoInput = $(<?php echo json_encode('s_method_' . $_helper->getRateCode()); ?>);
22
+ if (socoInput !== null) {
23
+ var socoLabel = socoInput.next('label');
24
+ if (typeof socoLabel !== 'undefined') {
25
+ <?php // format du prix de livraison ?>
26
+ <?php $_priceFormat = $_helper->getShippingPriceFormat(); ?>
27
+ <?php if ($_priceFormat && $_helper->checkServiceAvailability()): ?>
28
+ var socoPrice = socoLabel.down('.price');
29
+ if (typeof socoPrice !== 'undefined') {
30
+ socoPrice.update(<?php echo json_encode($_priceFormat); ?>.replace('%s', socoPrice.innerHTML));
31
+ }
32
+ <?php endif; ?>
33
+
34
+ <?php // message d'indisponibilité de la plateforme ?>
35
+ <?php if (!$_helper->checkServiceAvailability()): ?>
36
+ socoLabel.insert({after: <?php echo json_encode('<ul class="messages" id="socolissimo-error"><li class="error-msg"><ul><li>' . $_helper->getServiceNotAvailableMessage() . '</li></ul></li></ul>'); ?>});
37
+ <?php endif; ?>
38
+
39
+ <?php // description du mode du livraison?>
40
+ socoLabel.insert({after: <?php echo json_encode('<p>' . $_helper->getSelectMessage() . '</p>'); ?>});
41
+ }
42
+ }
43
+ })();
44
+ //]]>
45
+ </script>
46
+ <?php endif; ?>
app/etc/modules/LaPoste_SoColissimoSimplicite.xml CHANGED
@@ -16,8 +16,10 @@
16
  <active>true</active>
17
  <codePool>community</codePool>
18
  <depends>
19
- <Mage_Shipping/>
20
- <Mage_Checkout/>
 
 
21
  </depends>
22
  </LaPoste_SoColissimoSimplicite>
23
  </modules>
16
  <active>true</active>
17
  <codePool>community</codePool>
18
  <depends>
19
+ <Mage_Checkout />
20
+ <Mage_Payment />
21
+ <Mage_Sales />
22
+ <Mage_Shipping />
23
  </depends>
24
  </LaPoste_SoColissimoSimplicite>
25
  </modules>
app/locale/fr_FR/LaPoste_SoColissimoSimplicite.csv CHANGED
@@ -1,4 +1,70 @@
1
- "Code porte","Code porte"
2
- "Code porte 2","Code porte 2"
3
- "Interphone","Interphone"
4
- "livraison sur rendez-vous", "livraison sur rendez-vous"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "So Colissimo","So Colissimo"
2
+ "Nom du transporteur","Nom du transporteur"
3
+ "Nom du mode de livraison","Nom du mode de livraison"
4
+ "Nom du mode de livraison affiché dans le tunnel de commande à l'étape ""Mode de livraison"".","Nom du mode de livraison affiché dans le tunnel de commande à l'étape ""Mode de livraison""."
5
+ "Nom du mode de livraison (domicile)","Nom du mode de livraison (domicile)"
6
+ "Nom du mode de livraison une fois que l'internaute a choisi la livraison à domicile dans l'interface de So Colissimo.","Nom du mode de livraison une fois que l'internaute a choisi la livraison à domicile dans l'interface de So Colissimo."
7
+ "Nom du mode de livraison (rendez-vous)","Nom du mode de livraison (rendez-vous)"
8
+ "Nom du mode de livraison une fois que l'internaute a choisi la livraison sur rendez-vous dans l'interface de So Colissimo.","Nom du mode de livraison une fois que l'internaute a choisi la livraison sur rendez-vous dans l'interface de So Colissimo."
9
+ "Nom du mode de livraison (point de retrait commerçant)","Nom du mode de livraison (point de retrait commerçant)"
10
+ "Nom du mode de livraison une fois que l'internaute a choisi la livraison en point de retrait commerçant dans l'interface de So Colissimo.","Nom du mode de livraison une fois que l'internaute a choisi la livraison en point de retrait commerçant dans l'interface de So Colissimo."
11
+ "Nom du mode de livraison (bureau de poste)","Nom du mode de livraison (bureau de poste)"
12
+ "Nom du mode de livraison une fois que l'internaute a choisi la livraison en bureau de poste dans l'interface de So Colissimo.","Nom du mode de livraison une fois que l'internaute a choisi la livraison en bureau de poste dans l'interface de So Colissimo."
13
+ "Message lors de la sélection du mode de livraison","Message lors de la sélection du mode de livraison"
14
+ "Message lors de la redirection vers So Colissimo","Message lors de la redirection vers So Colissimo"
15
+ "Identifiant FO","Identifiant FO"
16
+ "Clé de cryptage","Clé de cryptage"
17
+ "URL de passerelle","URL de passerelle"
18
+ "Activer la vérification de la disponibilité","Activer la vérification de la disponibilité"
19
+ "URL de vérification de la disponibilité","URL de vérification de la disponibilité"
20
+ "Message en cas d'indisponibilité de la plateforme","Message en cas d'indisponibilité de la plateforme"
21
+ "Type des frais de livraison","Type des frais de livraison"
22
+ "Calcul des frais de livraison","Calcul des frais de livraison"
23
+ "Il s’agit des frais d’expédition appliqués par défaut pour tous les modes de livraison en France.<br/>Si <strong>tarif unique</strong>, indiquer le montant (sans devise) ;<br />Si <strong>tarif selon le poids</strong>, indiquer :<br />{""poids en kg"": ""tarif1"", ""poids en kg"": ""tarif2"", ...}<br />Le tarif est appliqué pour un poids supérieur ou égal au poids correspondant.<br />Exemple de conditions tarifaires selon le poids :<br/>{""0"": ""2.90"", ""0.5"": ""4.50"", ""5"": ""8"", ""10"": ""14""}<br/>Si <strong>tarif selon le sous-total du panier</strong>, indiquer :<br />{""montant"": ""tarif1"", ""montant"": ""tarif2"", ...}<br />Le tarif est appliqué pour un montant supérieur ou égal au montant correspondant.<br />Exemple de conditions tarifaires selon le montant :<br />{""0"": ""3"", ""50"": ""5"", ""100"": ""8"", ""250"": ""0""}","Il s’agit des frais d’expédition appliqués par défaut pour tous les modes de livraison en France.<br/>Si <strong>tarif unique</strong>, indiquer le montant (sans devise) ;<br />Si <strong>tarif selon le poids</strong>, indiquer :<br />{""poids en kg"": ""tarif1"", ""poids en kg"": ""tarif2"", ...}<br />Le tarif est appliqué pour un poids supérieur ou égal au poids correspondant.<br />Exemple de conditions tarifaires selon le poids :<br/>{""0"": ""2.90"", ""0.5"": ""4.50"", ""5"": ""8"", ""10"": ""14""}<br/>Si <strong>tarif selon le sous-total du panier</strong>, indiquer :<br />{""montant"": ""tarif1"", ""montant"": ""tarif2"", ...}<br />Le tarif est appliqué pour un montant supérieur ou égal au montant correspondant.<br />Exemple de conditions tarifaires selon le montant :<br />{""0"": ""3"", ""50"": ""5"", ""100"": ""8"", ""250"": ""0""}"
24
+ "Type des frais de livraison commerçants","Type des frais de livraison commerçants"
25
+ "Il s'agit des frais d'expédition appliqués pour la livraison en point de retrait commerçant.<br />Le fonctionnement est identique au paramètre ""Calcul des frais de livraison"".<br />Laisser vide pour ne pas appliquer de tarif spécifique à la livraison en point de retrait commerçant.","Il s'agit des frais d'expédition appliqués pour la livraison en point de retrait commerçant.<br />Le fonctionnement est identique au paramètre ""Calcul des frais de livraison"".<br />Laisser vide pour ne pas appliquer de tarif spécifique à la livraison en point de retrait commerçant."
26
+ "Livraison offerte à partir de (en €)","Livraison offerte à partir de (en €)"
27
+ "Laisser vide pour ne pas offrir les frais de livraison.","Laisser vide pour ne pas offrir les frais de livraison."
28
+ "Format des frais de livraison","Format des frais de livraison"
29
+ "Format du tarif du mode de livraison So Colissimo, à l'étape de livraison du tunnel de commande.<br />Laisser vide pour garder l'affichage natif de Magento.<br />Le tarif est représenté par ""%s"".<br />Exemple : avec une valeur ""(à partir de %s)"" et des frais de livraison de 10€, le prix affiché dans le tunnel de commande sera ""(à partir de 10€)"".","Format du tarif du mode de livraison So Colissimo, à l'étape de livraison du tunnel de commande.<br />Laisser vide pour garder l'affichage natif de Magento.<br />Le tarif est représenté par ""%s"".<br />Exemple : avec une valeur ""(à partir de %s)"" et des frais de livraison de 10€, le prix affiché dans le tunnel de commande sera ""(à partir de 10€)""."
30
+ "Limite de poids","Limite de poids"
31
+ "So Colissimo ne sera pas proposé si le poids dépasse le montant saisi.","So Colissimo ne sera pas proposé si le poids dépasse le montant saisi."
32
+ "Les pays compatibles sont la France et la Belgique.","Les pays compatibles sont la France et la Belgique."
33
+
34
+ "Tarif unique","Tarif unique"
35
+ "Tarif selon poids","Tarif selon poids"
36
+ "Tarif selon sous-total du panier","Tarif selon sous-total du panier"
37
+
38
+ "Interphone :","Interphone :"
39
+ "Code porte :","Code porte :"
40
+ "Code porte 2 :","Code porte 2 :"
41
+
42
+ "Une erreur technique a été rencontrée","Une erreur technique a été rencontrée"
43
+ "Merci de soumettre votre commande ultérieurement","Merci de soumettre votre commande ultérieurement"
44
+
45
+ "Les options du lieu de livraison ne sont pas disponibles.<br />Le colis sera livré à votre adresse de livraison.","Les options du lieu de livraison ne sont pas disponibles.<br />Le colis sera livré à votre adresse de livraison."
46
+ "La page va se mettre à jour à l'étape suivante.","La page va se mettre à jour à l'étape suivante."
47
+
48
+ "Annuler So Colissimo","Annuler So Colissimo"
49
+
50
+ "Identifiant FO manquant","Identifiant FO manquant"
51
+ "Identifiant FO incorrect","Identifiant FO incorrect"
52
+ "Client non autorisé","Client non autorisé"
53
+ "Champs obligatoire manquant","Champs obligatoire manquant"
54
+ "Signature manquante","Signature manquante"
55
+ "Signature invalide","Signature invalide"
56
+ "Code postal invalide","Code postal invalide"
57
+ "Format url retour Validation incorrect","Format url retour Validation incorrect"
58
+ "Format url retour Echec incorrect","Format url retour Echec incorrect"
59
+ "Numéro de transaction non valide","Numéro de transaction non valide"
60
+ "Format des frais d’expédition incorrect","Format des frais d’expédition incorrect"
61
+ "Serveur applicatif non disponible","Serveur applicatif non disponible"
62
+ "SGBD non disponible","SGBD non disponible"
63
+ "Erreur non identifiée","Erreur non identifiée"
64
+
65
+ "SoColissimo : la signature retournée par colissimo est vide","SoColissimo : la signature retournée par colissimo est vide"
66
+ "SoColissimo : la transaction avec colissimo (id=""%s"") n'est pas valide car inconnue de Magento","SoColissimo : la transaction avec colissimo (id=""%s"") n'est pas valide car inconnue de Magento"
67
+ "SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" fournie ""%s"" doit être un numérique de la forme 5.50","SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" fournie ""%s"" doit être un numérique de la forme 5.50"
68
+ "SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" pour le type ""tarif selon le poids"" fournie ""%s"" n'est pas dans le bon format, exemple {""0"":""2.90"",""0.5"":""4.50"",""5"":""8"",""10"":""14""}","SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" pour le type ""tarif selon le poids"" fournie ""%s"" n'est pas dans le bon format, exemple {""0"":""2.90"",""0.5"":""4.50"",""5"":""8"",""10"":""14""}"
69
+ "SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" pour le type ""tarif selon le sous-total"" fournie ""%s"" n'est pas dans le bon format, exemple {""0"":""3"",""50"":""5"",""100"":""8"",""250"":""0""}","SoColissimo : la valeur de configuration ""Calcul des frais de livraison"" pour le type ""tarif selon le sous-total"" fournie ""%s"" n'est pas dans le bon format, exemple {""0"":""3"",""50"":""5"",""100"":""8"",""250"":""0""}"
70
+ "SoColissimo : la valeur de configuration ""Type des frais de livraison"" fournie ""%s"" n'est pas disponible","SoColissimo : la valeur de configuration ""Type des frais de livraison"" fournie ""%s"" n'est pas disponible"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ColiPoste_La_Poste_So_Colissimo</name>
4
- <version>2.2.1</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&#xE9;se
18
  * mon commer&#xE7;ant : livraison chez l'un des nombreux commer&#xE7;ants de notre r&#xE9;seau partenaire.&#xD;
19
  &#xD;
20
  Test&#xE9; et valid&#xE9; sur Magento :&#xD;
21
- - CE 1.3.2.4, CE 1.4.1.1, CE 1.4.2.0, CE 1.5.1.0, CE 1.6.1.0, CE 1.6.2.0, CE 1.7.0.0, CE 1.7.0.2&#xD;
22
- - PE 1.8&#xD;
23
- - EE 1.8, EE 1.9, EE 1.10, EE 1.11, EE 1.12&#xD;
24
  &#xD;
25
  R&#xE9;alisation par Smile.</description>
26
- <notes>Compatible 1.7</notes>
27
- <authors><author><name>Berlioz</name><user>auto-converted</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
28
- <date>2013-06-27</date>
29
- <time>10:25:56</time>
30
- <contents><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="socolissimosimplicite"><dir name="form"><file name="failure.phtml" hash="6899294fef95e8ba97e923a95ce6e800"/></dir><dir name="onepage"><dir name="shipping_method"><dir name="available"><file name="default.phtml" hash="abd730520d57a1eaf53f9b1e145c9496"/><file name="socolissimosimplicite.phtml" hash="b3f9065c10b7f6aee499e8a25ef210e8"/></dir><file name="available.phtml" hash="caa8262a0d3f5dd3d12e7714843fa8f3"/></dir><file name="shipping_method.phtml" hash="2084ca8fe9c3b38f98b76b16dd5e753b"/></dir><file name="empty.phtml" hash="e23b28c9dc36e8e3fae4a71a504ced16"/><file name="form.phtml" hash="25e9ef6a8adea89c8a85554d06102da3"/></dir></dir><dir name="layout"><file name="socolissimosimplicite.xml" hash="9ac746d2644eae5c257290e6845421cb"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="ddc252df7c3ca35cc4bf5bbe7fdb9433"/></dir></target><target name="magecommunity"><dir name="LaPoste"><dir name="SoColissimoSimplicite"><dir name="Block"><dir name="Onepage"><dir name="Shipping"><dir name="Method"><dir name="Available"><file name="Item.php" hash="28d54a8b59dfff7365e3de0db158ac72"/></dir><file name="Available.php" hash="87903ab9334a817c6970d5225ff4129d"/></dir></dir></dir><file name="Form.php" hash="df4d1dfbd6f8fbb6088b505b285ed7fa"/><file name="Onepage.php" hash="9c479fb9298c513ecc5b1473b6366391"/></dir><dir name="Helper"><file name="Data.php" hash="83b0fc3ee84ccaf4e21bbf4759960502"/></dir><dir name="Model"><dir name="Carrier"><file name="ShippingMethod.php" hash="a824ef65678448f9e38e49a659546297"/></dir><dir name="Mysql4"><dir name="Transaction"><file name="Collection.php" hash="af31dc43455baed304eb087a1f5a022b"/></dir><file name="Transaction.php" hash="8cf12de5f6a6a50cf69e42e6da77d2f9"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Shipping"><file name="Amountbasetype.php" hash="210a1f9bd6c9daac92fb213d3b4d662b"/></dir></dir></dir></dir><file name="Observer.php" hash="7cc5c28b41dff45b54ddf997b181ed41"/><file name="Transaction.php" hash="023d0f47d98584520dad99f2b06ed681"/></dir><dir name="Test"><dir name="Model"><dir name="Carrier"><file name="ShippingMethodTest.php" hash="09e08117c7f70ca3304f3c0002f62e0f"/></dir></dir></dir><dir name="controllers"><file name="FormController.php" hash="aeeb7dcc7ce076d8f13ff136bd49dd6d"/></dir><dir name="etc"><file name="config.xml" hash="a7dc37f47f13385d6be9c4a8fe58e63d"/><file name="system.xml" hash="2b6391525f70bbb55b9c5c53db301f87"/></dir><dir name="sql"><dir name="socolissimosimplicite_setup"><file name="mysql4-install-1.0.0.php" hash="39d84d2cee2d8c2c0633c17891e045aa"/><file name="mysql4-uninstall-0.1.0.php" hash="471abbb64f1a962e8cc09d7bf48fe46c"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="b7939e9bd64cadbdc9ccd77b52d19d16"/><file name="mysql4-upgrade-1.1.1-2.0.0.php" hash="bd7915ab8d3871491e496f33617d3754"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="154dd96df1089ac29e87eaa8677693c3"/></dir></target></contents>
31
  <compatible/>
32
- <dependencies/>
33
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ColiPoste_La_Poste_So_Colissimo</name>
4
+ <version>2.3.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&#xE7;ant : livraison chez l'un des nombreux commer&#xE7;ants de notre r&#xE9;seau partenaire.&#xD;
19
  &#xD;
20
  Test&#xE9; et valid&#xE9; sur Magento :&#xD;
21
+ - Community : 1.3, 1.4, 1.5, 1.6, 1.7, 1.8&#xD;
22
+ - Enterprise : 1.8, 1.9, 1.10, 1.11, 1.12, 1.13&#xD;
23
+ - Professional : 1.8&#xD;
24
  &#xD;
25
  R&#xE9;alisation par Smile.</description>
26
+ <notes>Compatible CE 1.8 et EE 1.13</notes>
27
+ <authors><author><name>Berlioz</name><user>Aline</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
28
+ <date>2013-11-22</date>
29
+ <time>11:59:34</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="5726ba2edea823965827685b3bdc3d95"/><dir name="form"><file name="failure.phtml" hash="259bc094879a81cc06b0672c31f2df1b"/></dir><file name="form.phtml" hash="f46decffe3510c59688c5925617e4d1c"/><file name="iframe.phtml" hash="48aabfc24e2cbe6845da1169c6576c10"/><dir name="onepage"><dir name="shipping_method"><file name="socolissimosimplicite.phtml" hash="c0ce496d1dc9369fb06db452aedd2167"/></dir></dir></dir></dir><dir name="layout"><file name="socolissimosimplicite.xml" hash="7cbeeb8095261ca622174d7ed447589f"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="c70f610f8160ec6415d10bc18ff0ab41"/></dir></dir></target><target name="magecommunity"><dir><dir name="LaPoste"><dir name="SoColissimoSimplicite"><dir name="Block"><file name="Form.php" hash="df4d1dfbd6f8fbb6088b505b285ed7fa"/><file name="Iframe.php" hash="518d7af1a92e9feae96ac2982204dfd1"/><file name="Onepage.php" hash="81d36d830a778e83c0a8f22f3b90ee56"/></dir><dir name="Helper"><file name="Data.php" hash="21dfcfd401fee817010fbf012f38d7a9"/></dir><dir name="Model"><dir name="Carrier"><file name="ShippingMethod.php" hash="1679042ae9465ab6877752860a7c7cc7"/></dir><dir name="Mysql4"><dir name="Transaction"><file name="Collection.php" hash="af31dc43455baed304eb087a1f5a022b"/></dir><file name="Transaction.php" hash="8cf12de5f6a6a50cf69e42e6da77d2f9"/></dir><file name="Observer.php" hash="1fdd106d6ddd0554466701b18a35b7f0"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Shipping"><file name="Amountbasetype.php" hash="210a1f9bd6c9daac92fb213d3b4d662b"/></dir></dir></dir></dir><file name="Transaction.php" hash="023d0f47d98584520dad99f2b06ed681"/></dir><dir name="controllers"><file name="FormController.php" hash="f4d0c4574c1ad127f680b38286d1bbcb"/></dir><dir name="etc"><file name="config.xml" hash="6733969900785af7ba29fb822903a786"/><file name="system.xml" hash="be505597ba2f1ddb7ad4a8623619aa74"/></dir><dir name="sql"><dir name="socolissimosimplicite_setup"><file name="mysql4-install-1.0.0.php" hash="39d84d2cee2d8c2c0633c17891e045aa"/><file name="mysql4-uninstall-0.1.0.php" hash="471abbb64f1a962e8cc09d7bf48fe46c"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="03712141361b873740de91b7d0f721f0"/><file name="mysql4-upgrade-1.1.1-2.0.0.php" hash="bd7915ab8d3871491e496f33617d3754"/><file name="mysql4-upgrade-2.2.1-2.3.0.php" hash="c578ca0c71a7a6d53dbfd3daff5e594e"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="c7097370b5cc0e66fc2127df191740a6"/></dir></dir></target><target name="mageskin"><dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="js"><dir name="socolissimosimplicite"><file name="shipping_method.js" hash="04fb2f6ed105d2c7891fd999e7914c4f"/></dir></dir></dir></dir></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>
skin/frontend/default/default/js/socolissimosimplicite/shipping_method.js ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * LaPoste_SoColissimoSimplicite
3
+ *
4
+ * @category LaPoste
5
+ * @package LaPoste_SoColissimoSimplicite
6
+ * @copyright Copyright (c) 2010 La Poste
7
+ * @author Smile (http://www.smile.fr)
8
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9
+ */
10
+ var SocoShippingMethod = Class.create();
11
+ SocoShippingMethod.prototype = {
12
+ /**
13
+ * Initialisation
14
+ */
15
+ initialize: function(url, options) {
16
+ this.options = Object.extend({
17
+ cancelLabel: '',
18
+ rateCode: ''
19
+ }, options);
20
+
21
+ this.url = url;
22
+ this.savedAllowedSteps = [];
23
+ },
24
+
25
+ /**
26
+ * Point d'entrée pour le choix du mode de livraison So Colissimo
27
+ */
28
+ save: function() {
29
+ result = false;
30
+
31
+ if ($('socolissimo-error') === null && checkout.loadWaiting == false && shippingMethod.validate()) {
32
+ result = true;
33
+ checkout.setLoadWaiting('shipping-method');
34
+ new Ajax.Request(
35
+ shippingMethod.saveUrl,
36
+ {
37
+ method:'post',
38
+ onSuccess: this.displayIFrame.bind(this),
39
+ onFailure: checkout.ajaxFailure.bind(checkout),
40
+ parameters: Form.serialize(shippingMethod.form)
41
+ }
42
+ );
43
+ }
44
+
45
+ return result;
46
+ },
47
+
48
+ /**
49
+ * Empêche Magento de passer à l'étape suivante
50
+ */
51
+ freezeSteps: function() {
52
+ this.savedAllowedSteps = [];
53
+
54
+ var steps = $('checkoutSteps').children;
55
+ for (var i=0; i<steps.length; i++) {
56
+ if (steps[i].hasClassName('allow')) {
57
+ this.savedAllowedSteps[i] = true;
58
+ steps[i].removeClassName('allow');
59
+ } else {
60
+ this.savedAllowedSteps[i] = false;
61
+ }
62
+ }
63
+ },
64
+
65
+ /**
66
+ * Annule le blocage du passage à l'étape suivante
67
+ */
68
+ unfreezeSteps: function() {
69
+ if (typeof(this.savedAllowedSteps) !== 'undefined') {
70
+ var steps = $('checkoutSteps').children;
71
+ for (var i=0; i<steps.length; i++) {
72
+ if (this.savedAllowedSteps[i] === true) {
73
+ steps[i].addClassName('allow');
74
+ }
75
+ }
76
+ }
77
+ },
78
+
79
+ /**
80
+ * Affichage de l'IFrame So Colissimo
81
+ */
82
+ displayIFrame: function() {
83
+ // création du container de l'IFrame
84
+ var socoIFrameContainer = $('socolissimosimplicite_iframe_wrapper');
85
+ if (socoIFrameContainer === null) {
86
+ socoIFrameContainer = new Element('div', {id: 'socolissimosimplicite_iframe_wrapper'});
87
+ $$('input[value="' + this.options.rateCode + '"]').first().up().appendChild(socoIFrameContainer);
88
+ }
89
+
90
+ // création de l'IFrame
91
+ socoIFrameContainer.appendChild(new Element('iframe', {frameBorder: 0, width: '572px', height: '1100px', src: this.url}));
92
+ var button = new Element('button', {'class': 'button', type: 'button'}).update('<span><span>' + this.options.cancelLabel + '</span></span>');
93
+ Event.observe(button, 'click', this.cancel.bind(this));
94
+ socoIFrameContainer.appendChild(button);
95
+
96
+ // désactivation des modes de livraison pendant que l'IFrame est affichée
97
+ var methods = $$('input[name="shipping_method"]');
98
+ for (var j=0; j<methods.length; j++) {
99
+ methods[j].disabled = 'disabled';
100
+ }
101
+
102
+ // empêche Magento de passer à l'étape suivante (paiement)
103
+ this.freezeSteps();
104
+ checkout.setLoadWaiting('shipping-method');
105
+ $('shipping-method-please-wait').hide();
106
+ },
107
+
108
+ /**
109
+ * Cancel So Cocolissimo IFrame and reenable disabled checkout feature
110
+ */
111
+ cancel: function() {
112
+ // réactivation des modes de livraison
113
+ var methods = $$('input[name="shipping_method"]');
114
+ for (var i=0; i<methods.length; i++) {
115
+ methods[i].disabled = '';
116
+ }
117
+
118
+ // suppression de l'IFrame
119
+ var socoIframeContainer = $('socolissimosimplicite_iframe_wrapper');
120
+ while (socoIframeContainer.firstChild) {
121
+ socoIframeContainer.removeChild(socoIframeContainer.firstChild);
122
+ }
123
+
124
+ // annulation du blocage du passage à l'étape suivante
125
+ shippingMethod.resetLoadWaiting();
126
+ this.unfreezeSteps();
127
+ }
128
+ };