ColiPoste_La_Poste_So_Colissimo - Version 1.0.5

Version Notes

Lire le manuel d'installation

Download this release

Release Info

Developer Magento Core Team
Extension ColiPoste_La_Poste_So_Colissimo
Version 1.0.5
Comparing to
See all releases


Code changes from version 1.0.4 to 1.0.5

app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php CHANGED
@@ -87,6 +87,18 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
87
  $amountBaseType = $this->getConfigData('amountbasetype');
88
  $amountCalculation = $this->getConfigData('amountcalculation');
89
  $helper = Mage::helper('socolissimosimplicite');
 
 
 
 
 
 
 
 
 
 
 
 
90
  switch ($amountBaseType) {
91
  case 'fixed':
92
  if (is_numeric($amountCalculation)) {
@@ -106,8 +118,6 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
106
  krsort($rules,SORT_NUMERIC);
107
 
108
  //récupération du poids total de la commande (en kilogrammes)
109
- $shippingAddress = Mage::getModel('checkout/cart')
110
- ->getQuote()->getShippingAddress();
111
  $totalWeight = $shippingAddress->getWeight();
112
 
113
  //recherche du prix selon les fourchettes de tarifs données
87
  $amountBaseType = $this->getConfigData('amountbasetype');
88
  $amountCalculation = $this->getConfigData('amountcalculation');
89
  $helper = Mage::helper('socolissimosimplicite');
90
+
91
+ // récupérer l'adresse
92
+ $shippingAddress = Mage::getModel('checkout/cart')->getQuote()->getShippingAddress();
93
+
94
+ // en mode rendez-vous, on utilise directement le prix transmis par socolissimo
95
+ // on ne re-calcule pas (supplément de 4€)
96
+ if ($shippingAddress->getData('soco_mode_rdv') == true
97
+ and $shippingAddress->getData('base_shipping_amount') > 0) {
98
+ return $shippingAddress->getData('base_shipping_amount');
99
+ }
100
+
101
+ // sinon calcul en fonction de la configuration
102
  switch ($amountBaseType) {
103
  case 'fixed':
104
  if (is_numeric($amountCalculation)) {
118
  krsort($rules,SORT_NUMERIC);
119
 
120
  //récupération du poids total de la commande (en kilogrammes)
 
 
121
  $totalWeight = $shippingAddress->getWeight();
122
 
123
  //recherche du prix selon les fourchettes de tarifs données
app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php CHANGED
@@ -24,6 +24,9 @@
24
  */
25
  class LaPoste_SoColissimoSimplicite_Model_Observer
26
  {
 
 
 
27
  /**
28
  * Tableau de correspondance les champs simples retournés par SO COlissimo
29
  * et les champs d'une adresse de livraison dans Magento.
@@ -37,10 +40,10 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
37
  'CEEMAIL' => 'email',
38
  'CEPHONENUMBER' => 'telephone',
39
  'CECOMPANYNAME' => 'company',
40
- 'DYFORWARDINGCHARGES' => 'shippingAmount',
41
  'PRZIPCODE' => 'postcode',
42
  'PRTOWN' => 'city'
43
- );
44
 
45
  /**
46
  * Met à jour les données de livraison à partir des infos récupérées depuis
@@ -64,7 +67,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
64
  //on regarde s'il s'agit d'une adresse de livraison
65
  $shippingAddress = Mage::getModel('checkout/cart')
66
  ->getQuote()->getShippingAddress();
67
-
68
  if ($shippingAddress) {
69
  //les données de l'adresse de livraison sont réinitialisées avec l'adresse par défaut
70
  //du client automatiquement lorsque l'on est sur le tunnel de commande,
@@ -75,6 +78,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
75
  $this->_updateQuoteAndShippingAddress($shippingAddress,$shippingData);
76
  }
77
  }
 
78
  }
79
 
80
  public function clearCheckoutSession($observer)
@@ -112,7 +116,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
112
 
113
  $street = array();
114
  $customerNotesArray = array();
115
-
116
  foreach ($shippingData as $fieldSoCo => $valueSoCo) {
117
  if (array_key_exists($fieldSoCo,$this->_mapFields)) {
118
  $fieldMagento = $this->_mapFields[$fieldSoCo];
@@ -166,7 +170,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
166
  case 'CEDELIVERYINFORMATION':
167
  $customerNotesArray['3'] = $shippingData[$fieldSoCo];
168
  break;
169
-
170
  default:
171
  break;
172
  }
@@ -177,16 +181,41 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
177
  $arrayData['customer_notes'] = implode("\n",$customerNotesArray);
178
  }
179
 
180
- // sauvegarde dans le carnet d'adresse seulement pour les modes domicile ou rendez-vous
181
  $deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] : null;
182
- if ($deliveryMode != 'DOM' and $deliveryMode != 'RDV') {
 
 
183
  $arrayData['save_in_address_book'] = 0;
184
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
 
186
  // sauvegarder l'adresse
187
  $shippingAddress->addData($arrayData);
188
  $shippingAddress->setStreet($street);
 
 
 
 
 
 
189
  $shippingAddress->save();
190
  }
191
  }
192
- }
24
  */
25
  class LaPoste_SoColissimoSimplicite_Model_Observer
26
  {
27
+ const modRDV = 'RDV';
28
+ const modDOM = 'DOM';
29
+
30
  /**
31
  * Tableau de correspondance les champs simples retournés par SO COlissimo
32
  * et les champs d'une adresse de livraison dans Magento.
40
  'CEEMAIL' => 'email',
41
  'CEPHONENUMBER' => 'telephone',
42
  'CECOMPANYNAME' => 'company',
43
+ 'DYFORWARDINGCHARGES' => 'base_shipping_amount',
44
  'PRZIPCODE' => 'postcode',
45
  'PRTOWN' => 'city'
46
+ );
47
 
48
  /**
49
  * Met à jour les données de livraison à partir des infos récupérées depuis
67
  //on regarde s'il s'agit d'une adresse de livraison
68
  $shippingAddress = Mage::getModel('checkout/cart')
69
  ->getQuote()->getShippingAddress();
70
+
71
  if ($shippingAddress) {
72
  //les données de l'adresse de livraison sont réinitialisées avec l'adresse par défaut
73
  //du client automatiquement lorsque l'on est sur le tunnel de commande,
78
  $this->_updateQuoteAndShippingAddress($shippingAddress,$shippingData);
79
  }
80
  }
81
+
82
  }
83
 
84
  public function clearCheckoutSession($observer)
116
 
117
  $street = array();
118
  $customerNotesArray = array();
119
+
120
  foreach ($shippingData as $fieldSoCo => $valueSoCo) {
121
  if (array_key_exists($fieldSoCo,$this->_mapFields)) {
122
  $fieldMagento = $this->_mapFields[$fieldSoCo];
170
  case 'CEDELIVERYINFORMATION':
171
  $customerNotesArray['3'] = $shippingData[$fieldSoCo];
172
  break;
173
+
174
  default:
175
  break;
176
  }
181
  $arrayData['customer_notes'] = implode("\n",$customerNotesArray);
182
  }
183
 
184
+ //recuperation du mode de livraison choisi
185
  $deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] : null;
186
+
187
+ // sauvegarde dans le carnet d'adresse seulement pour le mode domicile
188
+ if ($deliveryMode != self::modDOM) {
189
  $arrayData['save_in_address_book'] = 0;
190
  }
191
+
192
+ //en mode RDV, on ajoute dans l'adresse la notion de rendez-vous
193
+ if ($deliveryMode == self::modRDV) {
194
+ if (isset($street['3'])) {
195
+ $street['3'] .= ' '.$helper->__('(livraison sur rendez-vous)');
196
+ } else {
197
+ $street['3'] = $helper->__('(livraison sur rendez-vous)');
198
+ }
199
+
200
+ // marquer le mode RDV au niveau de l'adresse (calcul dépend du mode)
201
+ $arrayData['soco_mode_rdv'] = true;
202
+
203
+ } else {
204
+
205
+ // marquer le mode normal au niveau de l'adresse (calcul dépend du mode)
206
+ $arrayData['soco_mode_rdv'] = false;
207
+ }
208
 
209
  // sauvegarder l'adresse
210
  $shippingAddress->addData($arrayData);
211
  $shippingAddress->setStreet($street);
212
+
213
+ // relancer le calcul du prix (modification du shipping amount via socolissimo)
214
+ // voir getCalculatedPrice() de ShippingMethod
215
+ $shippingAddress->setCollectShippingRates(true);
216
+ $shippingAddress->collectShippingRates();
217
+
218
  $shippingAddress->save();
219
  }
220
  }
221
+ }
app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php CHANGED
@@ -59,6 +59,11 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
59
  //récupération de l'adresse de livraison de la commande en cours
60
  $shippingAddress = $this->getShippingAddress();
61
 
 
 
 
 
 
62
  //création d'une nouvelle transaction à partir de l'adresse de livraison.
63
  $transaction = Mage::getModel('socolissimosimplicite/transaction')
64
  ->create($shippingAddress);
59
  //récupération de l'adresse de livraison de la commande en cours
60
  $shippingAddress = $this->getShippingAddress();
61
 
62
+ // on relance le calcul du prix de livraison pour gérer le cas du choix
63
+ // du mode RDV puis du retour en arrière et du choix du mode classique
64
+ $shippingAddress->setCollectShippingRates(true);
65
+ $shippingAddress->collectShippingRates();
66
+
67
  //création d'une nouvelle transaction à partir de l'adresse de livraison.
68
  $transaction = Mage::getModel('socolissimosimplicite/transaction')
69
  ->create($shippingAddress);
app/locale/fr_FR/LaPoste_SoColissimoSimplicite.csv CHANGED
@@ -1,3 +1,4 @@
1
  "Code porte","Code porte"
2
  "Code porte 2","Code porte 2"
3
- "Interphone","Interphone"
 
1
  "Code porte","Code porte"
2
  "Code porte 2","Code porte 2"
3
+ "Interphone","Interphone"
4
+ "(livraison sur rendez-vous)", "(livraison sur rendez-vous)"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ColiPoste_La_Poste_So_Colissimo</name>
4
- <version>1.0.4</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
@@ -20,9 +20,9 @@
20
  &lt;p&gt;R&amp;eacute;alisation par Smile.&lt;/p&gt;</description>
21
  <notes>Lire le manuel d'installation</notes>
22
  <authors><author><name>Berlioz</name><user>auto-converted</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
23
- <date>2010-10-07</date>
24
- <time>12:00:20</time>
25
- <contents><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="socolissimosimplicite.xml" hash="e192bb74c6bbfce2cbcb8981c068f028"/></dir><dir name="template"><dir name="socolissimosimplicite"><dir name="form"><file name="failure.phtml" hash="7ef359d8037ba844f513ef2f7dbab93c"/></dir><dir name="onepage"><dir name="shipping_method"><dir name="available"><file name="default.phtml" hash="2bdafa2212776b9a4caa968dbe2bcbff"/><file name="socolissimosimplicite.phtml" hash="c904763758add06b6272ef8ff885bad9"/></dir><file name="available.phtml" hash="c4554f687752ccf1572b42d910c2976e"/></dir><file name="shipping_method.phtml" hash="294cbb06b60a6013cc85dd302543aafc"/></dir><file name="form.phtml" hash="5a5a4f6195e79e08797d63f618d5ac24"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="784faaf0031ea1304bf398447749028d"/></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="db3aeb1f3631ab238060532d754d6e0f"/></dir><file name="Available.php" hash="f87e3de8eb02e26142e2827a4cd855eb"/></dir></dir></dir><file name="Form.php" hash="fa23f5274d6d871bd84665d8aac33abc"/><file name="Onepage.php" hash="92cb8a36e4d641cd92cd2fbc78859876"/></dir><dir name="controllers"><file name="FormController.php" hash="b4516f7edd52ea8e196664d5da6b69cb"/></dir><dir name="etc"><file name="config.xml" hash="f47431c49d437c24661874ebe7ecdf90"/><file name="system.xml" hash="16d1a33347d48c79c5d9e5e56b941d76"/></dir><dir name="Helper"><file name="Data.php" hash="071f9e214a69a27a259eb509fab77c3e"/></dir><dir name="Model"><dir name="Carrier"><file name="ShippingMethod.php" hash="4da636f9284ae02fc1b9d5aae1392f24"/></dir><dir name="Mysql4"><dir name="Transaction"><file name="Collection.php" hash="1460d058d25faef4cad2f9037449e0b0"/></dir><file name="Transaction.php" hash="ff3144312e5b109612429add23061085"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Shipping"><file name="Amountbasetype.php" hash="c3dde687fbae69562b6dbeeecd7ea272"/></dir></dir></dir></dir><file name="Observer.php" hash="7d1f5a024d39e7491194b9fdbda9d90a"/><file name="Transaction.php" hash="b8378ab4b5850cf3b982699c212d41b4"/></dir><dir name="sql"><dir name="socolissimosimplicite_setup"><file name="mysql4-install-1.0.0.php" hash="e811e69cb081e6d9ffc4b01ccb65b8d8"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="c4fb0c85f8e71d3cd5b37f869b1e6190"/></dir></target></contents>
26
  <compatible/>
27
  <dependencies/>
28
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ColiPoste_La_Poste_So_Colissimo</name>
4
+ <version>1.0.5</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
20
  &lt;p&gt;R&amp;eacute;alisation par Smile.&lt;/p&gt;</description>
21
  <notes>Lire le manuel d'installation</notes>
22
  <authors><author><name>Berlioz</name><user>auto-converted</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
23
+ <date>2010-11-02</date>
24
+ <time>16:19:20</time>
25
+ <contents><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="socolissimosimplicite.xml" hash="e192bb74c6bbfce2cbcb8981c068f028"/></dir><dir name="template"><dir name="socolissimosimplicite"><dir name="form"><file name="failure.phtml" hash="7ef359d8037ba844f513ef2f7dbab93c"/></dir><dir name="onepage"><dir name="shipping_method"><dir name="available"><file name="default.phtml" hash="2bdafa2212776b9a4caa968dbe2bcbff"/><file name="socolissimosimplicite.phtml" hash="c904763758add06b6272ef8ff885bad9"/></dir><file name="available.phtml" hash="c4554f687752ccf1572b42d910c2976e"/></dir><file name="shipping_method.phtml" hash="294cbb06b60a6013cc85dd302543aafc"/></dir><file name="form.phtml" hash="5a5a4f6195e79e08797d63f618d5ac24"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="3b2a032525266c476fd3aec64aa81730"/></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="db3aeb1f3631ab238060532d754d6e0f"/></dir><file name="Available.php" hash="f87e3de8eb02e26142e2827a4cd855eb"/></dir></dir></dir><file name="Form.php" hash="fa23f5274d6d871bd84665d8aac33abc"/><file name="Onepage.php" hash="92cb8a36e4d641cd92cd2fbc78859876"/></dir><dir name="controllers"><file name="FormController.php" hash="61764d636e34db9f4a296532ad09c33e"/></dir><dir name="etc"><file name="config.xml" hash="f47431c49d437c24661874ebe7ecdf90"/><file name="system.xml" hash="16d1a33347d48c79c5d9e5e56b941d76"/></dir><dir name="Helper"><file name="Data.php" hash="071f9e214a69a27a259eb509fab77c3e"/></dir><dir name="Model"><dir name="Carrier"><file name="ShippingMethod.php" hash="45dea36317526f2ae19424070398f3c2"/></dir><dir name="Mysql4"><dir name="Transaction"><file name="Collection.php" hash="1460d058d25faef4cad2f9037449e0b0"/></dir><file name="Transaction.php" hash="ff3144312e5b109612429add23061085"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Shipping"><file name="Amountbasetype.php" hash="c3dde687fbae69562b6dbeeecd7ea272"/></dir></dir></dir></dir><file name="Observer.php" hash="6065defe71691b2c3145bf6d74881821"/><file name="Transaction.php" hash="b8378ab4b5850cf3b982699c212d41b4"/></dir><dir name="sql"><dir name="socolissimosimplicite_setup"><file name="mysql4-install-1.0.0.php" hash="e811e69cb081e6d9ffc4b01ccb65b8d8"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="c4fb0c85f8e71d3cd5b37f869b1e6190"/></dir></target></contents>
26
  <compatible/>
27
  <dependencies/>
28
  </package>