Version Notes
Compatible 1.7
Download this release
Release Info
Developer | Berlioz |
Extension | ColiPoste_La_Poste_So_Colissimo |
Version | 2.2.0 |
Comparing to | |
See all releases |
Code changes from version 2.1.0 to 2.2.0
- app/code/community/LaPoste/SoColissimoSimplicite/Block/Form.php +46 -31
- app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage.php +30 -22
- app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available.php +35 -56
- app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available/Item.php +19 -12
- app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php +342 -71
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php +135 -74
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Mysql4/Transaction.php +13 -12
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Mysql4/Transaction/Collection.php +14 -14
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php +99 -93
- app/code/community/LaPoste/SoColissimoSimplicite/Model/System/Config/Source/Shipping/Amountbasetype.php +17 -14
- app/code/community/LaPoste/SoColissimoSimplicite/Model/Transaction.php +30 -85
- app/code/community/LaPoste/SoColissimoSimplicite/Test/Model/Carrier/ShippingMethodTest.php +28 -55
- app/code/community/LaPoste/SoColissimoSimplicite/controllers/FormController.php +72 -44
- app/code/community/LaPoste/SoColissimoSimplicite/controllers/OnepageController.php +0 -27
- app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml +68 -27
- app/code/community/LaPoste/SoColissimoSimplicite/etc/system.xml +147 -41
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-install-1.0.0.php +8 -10
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-uninstall-0.1.0.php +8 -2
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.0.6-1.0.7.php +7 -8
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-1.1.2.php +0 -23
- app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-2.0.0.php +6 -8
- app/design/frontend/default/default/layout/socolissimosimplicite.xml +16 -26
- app/design/frontend/default/default/template/socolissimosimplicite/empty.phtml +5 -5
- app/design/frontend/default/default/template/socolissimosimplicite/form.phtml +25 -106
- app/design/frontend/default/default/template/socolissimosimplicite/form/failure.phtml +5 -5
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml +58 -45
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml +52 -149
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/default.phtml +5 -5
- app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml +10 -6
- app/etc/modules/LaPoste_SoColissimoSimplicite.xml +5 -5
- package.xml +5 -5
app/code/community/LaPoste/SoColissimoSimplicite/Block/Form.php
CHANGED
@@ -1,58 +1,70 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Formulaire de soumission pour l'accès à l'interface SO Colissimo en front office.
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Block_Form extends Mage_Core_Block_Template
|
16 |
{
|
17 |
protected $_carrierInstance;
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
/**
|
20 |
-
* Retourne la
|
21 |
-
*
|
22 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
* @return string
|
24 |
*/
|
25 |
-
public function
|
26 |
{
|
27 |
-
|
28 |
-
$streetLine = '';
|
29 |
-
if (0 < $line && $line <= count($arrayStreet)) {
|
30 |
-
$streetLine = $arrayStreet[$line-1];
|
31 |
-
}
|
32 |
-
return $streetLine;
|
33 |
}
|
34 |
-
|
35 |
/**
|
36 |
-
* Retourne le message à afficher lors de la redirection vers le front de
|
37 |
-
*
|
38 |
* @return string
|
39 |
*/
|
40 |
public function getRedirectMessage()
|
41 |
{
|
42 |
return $this->helper('socolissimosimplicite')->getRedirectMessage();
|
43 |
}
|
44 |
-
|
45 |
/**
|
46 |
-
* Retourne l'identifiant FO d'accès à la plateforme
|
|
|
47 |
* @return string
|
48 |
*/
|
49 |
public function getAccountID()
|
50 |
{
|
51 |
return $this->helper('socolissimosimplicite')->getAccountId();
|
52 |
}
|
53 |
-
|
54 |
/**
|
55 |
-
* Retourne la clé de cryptage pour l'accès à la plateforme
|
|
|
56 |
* @return string
|
57 |
*/
|
58 |
public function getEncryptionKey()
|
@@ -61,18 +73,21 @@ class LaPoste_SoColissimoSimplicite_Block_Form extends Mage_Core_Block_Template
|
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
-
* Retourne l'URL d'accès à la plateforme
|
|
|
65 |
* @return string
|
66 |
*/
|
67 |
public function getUrlFoWithReturnUrlKo()
|
68 |
{
|
69 |
$urlFo = $this->helper('socolissimosimplicite')->getUrlFo();
|
70 |
$returnUrlKo = $this->helper('socolissimosimplicite')->getFailureUrl();
|
71 |
-
|
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
* Retourne l'url complète appelée en cas de succès
|
|
|
76 |
* @return string
|
77 |
*/
|
78 |
public function getSuccessUrl()
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Formulaire de soumission pour l'accès à l'interface So Colissimo en front office
|
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_Form extends Mage_Core_Block_Template
|
12 |
{
|
13 |
protected $_carrierInstance;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Retourne l'adresse de livraison
|
17 |
+
*
|
18 |
+
* @return Mage_Sales_Model_Quote_Address
|
19 |
+
*/
|
20 |
+
public function getShippingAddress()
|
21 |
+
{
|
22 |
+
return $this->getData('shipping_address');
|
23 |
+
}
|
24 |
+
|
25 |
/**
|
26 |
+
* Retourne la transaction
|
27 |
+
*
|
28 |
+
* @return LaPoste_SoColissimoSimplicite_Model_Transaction
|
29 |
+
*/
|
30 |
+
public function getTransaction()
|
31 |
+
{
|
32 |
+
return $this->getData('transaction');
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Retourne l'url de redirection quand le service socolissimo est indisponible
|
37 |
+
*
|
38 |
* @return string
|
39 |
*/
|
40 |
+
public function getServiceUnavailableRedirect()
|
41 |
{
|
42 |
+
return $this->getData('service_unavailable_redirect');
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
+
|
45 |
/**
|
46 |
+
* Retourne le message à afficher lors de la redirection vers le front de So Colissimo Simplicité
|
47 |
+
*
|
48 |
* @return string
|
49 |
*/
|
50 |
public function getRedirectMessage()
|
51 |
{
|
52 |
return $this->helper('socolissimosimplicite')->getRedirectMessage();
|
53 |
}
|
54 |
+
|
55 |
/**
|
56 |
+
* Retourne l'identifiant FO d'accès à la plateforme So Colissimo (front-office)
|
57 |
+
*
|
58 |
* @return string
|
59 |
*/
|
60 |
public function getAccountID()
|
61 |
{
|
62 |
return $this->helper('socolissimosimplicite')->getAccountId();
|
63 |
}
|
64 |
+
|
65 |
/**
|
66 |
+
* Retourne la clé de cryptage pour l'accès à la plateforme So Colissimo (front-office)
|
67 |
+
*
|
68 |
* @return string
|
69 |
*/
|
70 |
public function getEncryptionKey()
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* Retourne l'URL d'accès à la plateforme So Colissimo (front-office)
|
77 |
+
*
|
78 |
* @return string
|
79 |
*/
|
80 |
public function getUrlFoWithReturnUrlKo()
|
81 |
{
|
82 |
$urlFo = $this->helper('socolissimosimplicite')->getUrlFo();
|
83 |
$returnUrlKo = $this->helper('socolissimosimplicite')->getFailureUrl();
|
84 |
+
|
85 |
+
return $urlFo.'?trReturnUrlKo=' . $returnUrlKo;
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
* Retourne l'url complète appelée en cas de succès
|
90 |
+
*
|
91 |
* @return string
|
92 |
*/
|
93 |
public function getSuccessUrl()
|
app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage.php
CHANGED
@@ -1,57 +1,64 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
class LaPoste_SoColissimoSimplicite_Block_Onepage extends Mage_Checkout_Block_Onepage
|
12 |
{
|
|
|
|
|
|
|
|
|
|
|
13 |
protected $_stepToActivate;
|
14 |
|
15 |
/**
|
16 |
-
* Met à jour les étapes précédentes lorsqu'une étape autre que la 1ère
|
17 |
-
*
|
|
|
18 |
*/
|
19 |
protected function _beforeToHtml()
|
20 |
{
|
21 |
parent::_beforeToHtml();
|
22 |
-
|
23 |
-
//on cherche en session si une étape est à afficher directement
|
24 |
$checkout = Mage::getSingleton('checkout/session');
|
25 |
$this->_stepToActivate = false;
|
26 |
-
|
27 |
if ($checkout->getData('socolissimosimplicite_checkout_onepage_nextstep')) {
|
28 |
$this->_stepToActivate = $checkout->getData('socolissimosimplicite_checkout_onepage_nextstep');
|
29 |
-
//supprime la variable de session pour qu'un refresh réinitialise le onepage
|
30 |
$checkout->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
|
31 |
}
|
|
|
32 |
$steps = $this->getSteps();
|
33 |
|
34 |
-
//on force l'activation des étapes précédant l'étape que l'on souhaite
|
35 |
-
//afficher + de l'étape à afficher
|
36 |
if ($this->_stepToActivate && array_key_exists($this->_stepToActivate, $steps)) {
|
37 |
-
|
38 |
foreach ($steps as $key => $data) {
|
39 |
-
//permet d'afficher le contenu de l'étape en cours et de revenir
|
40 |
-
//sur les étapes précédentes
|
41 |
$this->getCheckout()->setStepData($key, 'allow', true);
|
42 |
-
|
43 |
if ($key == $this->_stepToActivate) {
|
44 |
break;
|
45 |
}
|
46 |
-
|
|
|
47 |
$this->getCheckout()->setStepData($key, 'complete', true);
|
48 |
}
|
49 |
}
|
|
|
50 |
return $this;
|
51 |
}
|
52 |
-
|
53 |
/**
|
54 |
-
* Retourne le code de l'étape à afficher dans le tunnel de commande
|
|
|
55 |
* @return string
|
56 |
*/
|
57 |
public function getActiveStep()
|
@@ -63,6 +70,7 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage extends Mage_Checkout_Block_On
|
|
63 |
} else {
|
64 |
$activeStep = 'login';
|
65 |
}
|
|
|
66 |
return $activeStep;
|
67 |
}
|
68 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Réécriture du bloc gérant le tunnel de commande
|
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 extends Mage_Checkout_Block_Onepage
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Etape du tunnel de commande à afficher
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
protected $_stepToActivate;
|
19 |
|
20 |
/**
|
21 |
+
* Met à jour les étapes précédentes lorsqu'une étape autre que la 1ère étape est à afficher
|
22 |
+
*
|
23 |
+
* @return self
|
24 |
*/
|
25 |
protected function _beforeToHtml()
|
26 |
{
|
27 |
parent::_beforeToHtml();
|
28 |
+
|
29 |
+
// on cherche en session si une étape est à afficher directement
|
30 |
$checkout = Mage::getSingleton('checkout/session');
|
31 |
$this->_stepToActivate = false;
|
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();
|
40 |
|
41 |
+
// on force l'activation des étapes précédant l'étape que l'on souhaite afficher + de l'étape à afficher
|
|
|
42 |
if ($this->_stepToActivate && array_key_exists($this->_stepToActivate, $steps)) {
|
|
|
43 |
foreach ($steps as $key => $data) {
|
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 |
+
|
51 |
+
// permet d'afficher la progression
|
52 |
$this->getCheckout()->setStepData($key, 'complete', true);
|
53 |
}
|
54 |
}
|
55 |
+
|
56 |
return $this;
|
57 |
}
|
58 |
+
|
59 |
/**
|
60 |
+
* Retourne le code de l'étape à afficher dans le tunnel de commande
|
61 |
+
*
|
62 |
* @return string
|
63 |
*/
|
64 |
public function getActiveStep()
|
70 |
} else {
|
71 |
$activeStep = 'login';
|
72 |
}
|
73 |
+
|
74 |
return $activeStep;
|
75 |
}
|
76 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Block/Onepage/Shipping/Method/Available.php
CHANGED
@@ -1,27 +1,25 @@
|
|
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 |
/**
|
13 |
* Modes de livraison disponibles
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
*/
|
15 |
-
class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
|
16 |
-
extends Mage_Checkout_Block_Onepage_Shipping_Method_Available
|
17 |
{
|
18 |
protected $_itemRenders = array();
|
19 |
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
21 |
{
|
22 |
-
|
23 |
-
|
24 |
-
//Rendu par défaut
|
25 |
$this->addItemRender(
|
26 |
'default',
|
27 |
'socolissimosimplicite/onepage_shipping_method_available',
|
@@ -30,13 +28,14 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
|
|
30 |
}
|
31 |
|
32 |
/**
|
33 |
-
* Ajoute une correspondance dans la table des rendus des modes de livraison
|
34 |
-
* Cela permet de personnaliser l'affichage d'un mode de livraison parmi
|
35 |
-
* liste des modes proposés lors du passage d'une commande
|
36 |
-
*
|
37 |
-
* @param
|
38 |
-
* @param
|
39 |
-
* @
|
|
|
40 |
*/
|
41 |
public function addItemRender($type, $block, $template)
|
42 |
{
|
@@ -45,13 +44,15 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
|
|
45 |
'template' => $template,
|
46 |
'blockInstance' => null
|
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 |
* @return array
|
56 |
*/
|
57 |
public function getItemRenderer($type)
|
@@ -59,6 +60,7 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
|
|
59 |
if (!isset($this->_itemRenders[$type])) {
|
60 |
$type = 'default';
|
61 |
}
|
|
|
62 |
if (is_null($this->_itemRenders[$type]['blockInstance'])) {
|
63 |
$this->_itemRenders[$type]['blockInstance'] = $this->getLayout()
|
64 |
->createBlock($this->_itemRenders[$type]['block'])
|
@@ -68,41 +70,18 @@ class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available
|
|
68 |
|
69 |
return $this->_itemRenders[$type]['blockInstance'];
|
70 |
}
|
71 |
-
|
72 |
/**
|
73 |
-
* Retourne le code html du mode de livraison
|
74 |
-
*
|
|
|
75 |
* @return string
|
76 |
*/
|
77 |
public function getItemHtml($item)
|
78 |
{
|
79 |
-
//le code html retourné dépend du mode de livraison
|
80 |
$renderer = $this->getItemRenderer($item->getMethod())->setRate($item);
|
81 |
-
return $renderer->toHtml();
|
82 |
-
}
|
83 |
|
84 |
-
|
85 |
-
* Vérifie si la plateforme socolissimo est disponible
|
86 |
-
*
|
87 |
-
* @return boolean
|
88 |
-
*/
|
89 |
-
public function getServiceIsAvailable()
|
90 |
-
{
|
91 |
-
$helper = Mage::helper('socolissimosimplicite');
|
92 |
-
if ($helper->getServiceIsAvailable() and $helper->getServiceIsAvailableUrl() != '') {
|
93 |
-
return $helper->checkserviceAvailability();
|
94 |
-
}
|
95 |
-
return true;
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Retourne le message d'erreur si la plateforme socolissimo n'est pas disponible
|
100 |
-
* @return string
|
101 |
-
*/
|
102 |
-
public function getServiceNotAvailableMessage()
|
103 |
-
{
|
104 |
-
$helper = Mage::helper('socolissimosimplicite');
|
105 |
-
return $helper->getServiceNotAvailableMessage();
|
106 |
}
|
107 |
-
|
108 |
}
|
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',
|
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 |
{
|
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)
|
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'])
|
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
CHANGED
@@ -1,23 +1,30 @@
|
|
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 |
/**
|
13 |
* Mode de livraison
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Block_Onepage_Shipping_Method_Available_Item
|
16 |
extends Mage_Checkout_Block_Onepage_Shipping_Method_Available
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
19 |
protected $_shippingMethod;
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
public function getShippingMethod($rate)
|
22 |
{
|
23 |
if (is_null($this->_shippingMethod)) {
|
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)) {
|
app/code/community/LaPoste/SoColissimoSimplicite/Helper/Data.php
CHANGED
@@ -2,39 +2,66 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstract
|
12 |
{
|
13 |
/**
|
14 |
-
* URL du formulaire de soumission à l'accès au front de
|
|
|
15 |
* @var string
|
16 |
*/
|
17 |
const FORM_URL = 'socolissimosimplicite/form/send';
|
|
|
18 |
/**
|
19 |
-
* URL appelée en cas de succès suite à la sélection de la livraison
|
20 |
-
*
|
21 |
* @var string
|
22 |
*/
|
23 |
const SUCCESS_URL = 'socolissimosimplicite/form/success';
|
|
|
24 |
/**
|
25 |
-
* URL appelée en cas d'échec suite à l'accès au front de
|
|
|
26 |
* @var string
|
27 |
*/
|
28 |
const FAILURE_URL = 'socolissimosimplicite/form/failure';
|
29 |
|
30 |
/**
|
31 |
* Numéro de version à envoyer obligatoirement à la plateforme
|
|
|
32 |
* @var string
|
33 |
*/
|
34 |
-
const NUM_VERSION = '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
/**
|
37 |
* Retourne le numéro de version à soumettre à la plateforme
|
|
|
38 |
* @return string
|
39 |
*/
|
40 |
public function getNumVersion()
|
@@ -43,8 +70,18 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
-
* Retourne l'
|
47 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
* @return string
|
49 |
*/
|
50 |
public function getFormUrl()
|
@@ -53,47 +90,107 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
-
* Retourne l'url complète appelée en cas de succès suite à la
|
57 |
-
*
|
58 |
* @return string
|
59 |
*/
|
60 |
public function getSuccessUrl()
|
61 |
{
|
62 |
-
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/success/';
|
63 |
return Mage::getUrl(self::SUCCESS_URL);
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* Retourne l'url complète appelée en cas d'échec suite à
|
68 |
-
*
|
69 |
* @return string
|
70 |
*/
|
71 |
public function getFailureUrl()
|
72 |
{
|
73 |
-
//return 'http://magento-community-1-6.1.0.vm/index.php/socolissimosimplicite/form/failure/';
|
74 |
return Mage::getUrl(self::FAILURE_URL);
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
-
* Retourne
|
79 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
* @return string
|
81 |
*/
|
82 |
public function getRateCode()
|
83 |
{
|
84 |
$shippingMethod = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
|
85 |
|
86 |
-
//le code du transporteur et le code du mode de livraison sont les mêmes
|
87 |
-
//cf Mage_Shipping_Model_Carrier_Abstract : un seul attribut "code" utilisé dans les deux cas
|
88 |
-
//les modes de livraison natifs sont également implémentés de cette manière
|
89 |
$carrierCode = $shippingMethod->getCarrierCode();
|
90 |
$methodCode = $shippingMethod->getCarrierCode();
|
91 |
|
92 |
-
return $carrierCode.'_'
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
-
* Retourne l'identifiant d'accès au FO de
|
|
|
97 |
* @return string
|
98 |
*/
|
99 |
public function getAccountId()
|
@@ -102,8 +199,8 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
-
* Retourne la clé de cryptage nécessaire à la génération de la signature
|
106 |
-
*
|
107 |
* @return string
|
108 |
*/
|
109 |
public function getEncryptionKey()
|
@@ -112,7 +209,8 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
112 |
}
|
113 |
|
114 |
/**
|
115 |
-
* Retourne l'url du front de
|
|
|
116 |
* @return string
|
117 |
*/
|
118 |
public function getUrlFo()
|
@@ -121,8 +219,8 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
-
* Retourne le message à afficher lors du choix de mode de livraison,
|
125 |
-
*
|
126 |
* @return string
|
127 |
*/
|
128 |
public function getSelectMessage()
|
@@ -131,8 +229,8 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
-
* Retourne le message à afficher lors de la redirection vers le front de
|
135 |
-
*
|
136 |
* @return string
|
137 |
*/
|
138 |
public function getRedirectMessage()
|
@@ -141,7 +239,8 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
-
* Retourne l'url de vérification de la disponibilité de
|
|
|
145 |
* @return string
|
146 |
*/
|
147 |
public function getServiceIsAvailableUrl()
|
@@ -150,8 +249,9 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
-
* Retourne si la vérification de la disponibilité de
|
154 |
-
*
|
|
|
155 |
*/
|
156 |
public function getServiceIsAvailable()
|
157 |
{
|
@@ -160,6 +260,7 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
160 |
|
161 |
/**
|
162 |
* Retourne le message à afficher si le service n'est pas disponible
|
|
|
163 |
* @return string
|
164 |
*/
|
165 |
public function getServiceNotAvailableMessage()
|
@@ -168,21 +269,56 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
* Retourne
|
172 |
-
*
|
173 |
-
*
|
174 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
* @return array
|
176 |
*/
|
177 |
public function getMapPrefix()
|
178 |
{
|
179 |
$map = Mage::getStoreConfig('carriers/socolissimosimplicite/mapprefix');
|
|
|
180 |
return json_decode($map, true);
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
* Retourne les
|
185 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
* @param float $shippingPrice
|
187 |
* @param int $maxDecimalDigit
|
188 |
* @return float
|
@@ -190,26 +326,29 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
190 |
public function getFormatedShippingPrice($shippingPrice, $maxDecimalDigit = 2)
|
191 |
{
|
192 |
$formatedPrice = number_format($shippingPrice, $maxDecimalDigit, '.', '');
|
|
|
193 |
return $formatedPrice;
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
-
* Retourne le poids total de la commande correctement formaté pour la soumission
|
198 |
-
*
|
199 |
* @param float $weight
|
200 |
* @return int
|
201 |
*/
|
202 |
public function getFormatedWeight($weight)
|
203 |
{
|
204 |
$weight = str_replace(',', '.', $weight);
|
205 |
-
|
|
|
206 |
$formatedWeight = number_format($weight, 0, '.', '');
|
|
|
207 |
return $formatedWeight;
|
208 |
}
|
209 |
|
210 |
/**
|
211 |
-
* Retourne le code civilité de
|
212 |
-
*
|
213 |
* @param string $prefixMagento
|
214 |
* @return string
|
215 |
*/
|
@@ -220,12 +359,13 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
220 |
if (in_array($prefixMagento, $mapPrefix)) {
|
221 |
$prefixSoCo = array_search($prefixMagento, $mapPrefix);
|
222 |
}
|
|
|
223 |
return $prefixSoCo;
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
* Retourne la civilité correspondant au code civilité au format
|
228 |
-
*
|
229 |
* @param string $prefixSoCo
|
230 |
* @return string
|
231 |
*/
|
@@ -236,43 +376,174 @@ class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstrac
|
|
236 |
if (isset($mapPrefix[$prefixSoCo])) {
|
237 |
$prefixMagento = $mapPrefix[$prefixSoCo];
|
238 |
}
|
|
|
239 |
return $prefixMagento;
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
* Vérifier que la plateforme socolissimo est disponible
|
244 |
*
|
245 |
-
* @return
|
246 |
*/
|
247 |
public function checkServiceAvailability()
|
248 |
{
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
}
|
261 |
-
curl_close($c);
|
262 |
-
return $serviceAvailable;
|
263 |
}
|
264 |
|
265 |
/**
|
266 |
-
*
|
267 |
-
*
|
268 |
-
*
|
269 |
-
* @
|
|
|
270 |
*/
|
271 |
-
public function
|
272 |
{
|
273 |
-
$
|
274 |
-
|
275 |
-
$
|
276 |
-
return $hasToDebug;
|
277 |
}
|
278 |
}
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
+
* @category LaPoste
|
6 |
+
* @package LaPoste_SoColissimoSimplicite
|
7 |
+
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class LaPoste_SoColissimoSimplicite_Helper_Data extends Mage_Core_Helper_Abstract
|
12 |
{
|
13 |
/**
|
14 |
+
* URL du formulaire de soumission à l'accès au front de So Colissimo
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const FORM_URL = 'socolissimosimplicite/form/send';
|
19 |
+
|
20 |
/**
|
21 |
+
* URL appelée en cas de succès suite à la sélection de la livraison dans l'interface So Colissimo
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const SUCCESS_URL = 'socolissimosimplicite/form/success';
|
26 |
+
|
27 |
/**
|
28 |
+
* URL appelée en cas d'échec suite à l'accès au front de So Colissimo
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const FAILURE_URL = 'socolissimosimplicite/form/failure';
|
33 |
|
34 |
/**
|
35 |
* Numéro de version à envoyer obligatoirement à la plateforme
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
+
const NUM_VERSION = '4.0';
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Encodage utilisé pour envoyer les données à la plateforme
|
43 |
+
*
|
44 |
+
* @var string
|
45 |
+
*/
|
46 |
+
const ENCODING_TYPE = 'UTF-8';
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Langue affichée par défaut dans l'interface So Colissimo
|
50 |
+
*
|
51 |
+
* @var string
|
52 |
+
*/
|
53 |
+
const DEFAULT_LANG = 'FR';
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Disponibilité de la plateforme
|
57 |
+
*
|
58 |
+
* @var bool
|
59 |
+
*/
|
60 |
+
protected $_serviceAvailable;
|
61 |
|
62 |
/**
|
63 |
* Retourne le numéro de version à soumettre à la plateforme
|
64 |
+
*
|
65 |
* @return string
|
66 |
*/
|
67 |
public function getNumVersion()
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
+
* Retourne l'encodage utilisé pour transmate les données à la plateforme
|
74 |
+
*
|
75 |
+
* @return string
|
76 |
+
*/
|
77 |
+
public function getEncodingType()
|
78 |
+
{
|
79 |
+
return self::ENCODING_TYPE;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Retourne l'url complète de la page contenant le formulaire à soumettre pour l'accès au front de So Colissimo
|
84 |
+
*
|
85 |
* @return string
|
86 |
*/
|
87 |
public function getFormUrl()
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
+
* Retourne l'url complète appelée en cas de succès suite à la sélection de la livraison dans l'interface So Colissimo
|
94 |
+
*
|
95 |
* @return string
|
96 |
*/
|
97 |
public function getSuccessUrl()
|
98 |
{
|
|
|
99 |
return Mage::getUrl(self::SUCCESS_URL);
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
+
* Retourne l'url complète appelée en cas d'échec suite à l'accès au front de So Colissimo
|
104 |
+
*
|
105 |
* @return string
|
106 |
*/
|
107 |
public function getFailureUrl()
|
108 |
{
|
|
|
109 |
return Mage::getUrl(self::FAILURE_URL);
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
+
* Retourne la langue à transmettre à la plateforme So Colissimo
|
114 |
+
*
|
115 |
+
* @return string
|
116 |
+
*/
|
117 |
+
public function getLanguage()
|
118 |
+
{
|
119 |
+
$availableLangs = array_keys(Mage::getStoreConfig('carriers/socolissimosimplicite/available_languages'));
|
120 |
+
|
121 |
+
// transformation de "xx_XX" en "XX" (exemple : fr_FR -> FR)
|
122 |
+
$lang = substr(Mage::app()->getLocale()->getLocaleCode(), 3);
|
123 |
+
|
124 |
+
return in_array($lang, $availableLangs) ? $lang : self::DEFAULT_LANG;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Retourne le montant par défaut des frais d'expédition (calculé dans le carrier)
|
129 |
+
*
|
130 |
+
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
131 |
+
* @param string $shippingType
|
132 |
+
* @param bool $cleanSession
|
133 |
+
* @return float
|
134 |
+
*/
|
135 |
+
public function getShippingAmount($shippingAddress, $shippingType, $cleanSession = false)
|
136 |
+
{
|
137 |
+
$amounts = Mage::getSingleton('checkout/session')->getData('socolissimosimplicite_available_shipping_amounts');
|
138 |
+
|
139 |
+
// supprime les frais d'expédition de la session si demandé
|
140 |
+
if ($cleanSession) {
|
141 |
+
Mage::getSingleton('checkout/session')->unsetData('socolissimosimplicite_available_shipping_amounts');
|
142 |
+
}
|
143 |
+
|
144 |
+
return $shippingAddress->getFreeShipping() === '1' ? 0 : $amounts[$shippingType];
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Retourne le numéro de téléphone de l'utilisateur connecté
|
149 |
+
* Seuls les numéros de mobile sont acceptés, et la validation du numéro est différente selon le pays
|
150 |
+
*
|
151 |
+
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
152 |
+
* @return string
|
153 |
+
*/
|
154 |
+
public function getPhoneNumber($shippingAddress)
|
155 |
+
{
|
156 |
+
$country = $shippingAddress->getCountryId();
|
157 |
+
$phone = $shippingAddress->getTelephone();
|
158 |
+
$isValid = true;
|
159 |
+
|
160 |
+
switch ($country) {
|
161 |
+
case 'FR':
|
162 |
+
$firstTwoNumbers = substr($phone, 0, 2);
|
163 |
+
$isValid = $firstTwoNumbers === '06' || $firstTwoNumbers === '07';
|
164 |
+
break;
|
165 |
+
|
166 |
+
case 'BE':
|
167 |
+
$firstFourNumbers = substr($phone, 0, 4);
|
168 |
+
$isValid = $firstFourNumbers === '+324';
|
169 |
+
break;
|
170 |
+
}
|
171 |
+
|
172 |
+
return $isValid ? $phone : '';
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Retourne le code du mode de livraison tel qu'utilisé lors du passage d'une commande (code transporteur + mode)
|
177 |
+
*
|
178 |
* @return string
|
179 |
*/
|
180 |
public function getRateCode()
|
181 |
{
|
182 |
$shippingMethod = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
|
183 |
|
184 |
+
// le code du transporteur et le code du mode de livraison sont les mêmes
|
|
|
|
|
185 |
$carrierCode = $shippingMethod->getCarrierCode();
|
186 |
$methodCode = $shippingMethod->getCarrierCode();
|
187 |
|
188 |
+
return $carrierCode . '_' . $methodCode;
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
+
* Retourne l'identifiant d'accès au FO de So Colissimo Simplicité
|
193 |
+
*
|
194 |
* @return string
|
195 |
*/
|
196 |
public function getAccountId()
|
199 |
}
|
200 |
|
201 |
/**
|
202 |
+
* Retourne la clé de cryptage nécessaire à la génération de la signature pour l'accès au FO de So Colissimo Simplicité
|
203 |
+
*
|
204 |
* @return string
|
205 |
*/
|
206 |
public function getEncryptionKey()
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
+
* Retourne l'url du front de So Colissimo Simplicité
|
213 |
+
*
|
214 |
* @return string
|
215 |
*/
|
216 |
public function getUrlFo()
|
219 |
}
|
220 |
|
221 |
/**
|
222 |
+
* Retourne le message à afficher lors du choix de mode de livraison, sous le titre
|
223 |
+
*
|
224 |
* @return string
|
225 |
*/
|
226 |
public function getSelectMessage()
|
229 |
}
|
230 |
|
231 |
/**
|
232 |
+
* Retourne le message à afficher lors de la redirection vers le front de So Colissimo Simplicité
|
233 |
+
*
|
234 |
* @return string
|
235 |
*/
|
236 |
public function getRedirectMessage()
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
+
* Retourne l'url de vérification de la disponibilité de So Colissimo Simplicité
|
243 |
+
*
|
244 |
* @return string
|
245 |
*/
|
246 |
public function getServiceIsAvailableUrl()
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
+
* Retourne si la vérification de la disponibilité de So Colissimo Simplicité doit être effectuée
|
253 |
+
*
|
254 |
+
* @return bool
|
255 |
*/
|
256 |
public function getServiceIsAvailable()
|
257 |
{
|
260 |
|
261 |
/**
|
262 |
* Retourne le message à afficher si le service n'est pas disponible
|
263 |
+
*
|
264 |
* @return string
|
265 |
*/
|
266 |
public function getServiceNotAvailableMessage()
|
269 |
}
|
270 |
|
271 |
/**
|
272 |
+
* Retourne l'url vers laquelle l'internaute est redirigée lors d'une erreur
|
273 |
+
* (total quote incorrect, variable de session manquante...)
|
274 |
+
*
|
275 |
+
* @return string
|
276 |
+
*/
|
277 |
+
public function getRedirectUrlOnError()
|
278 |
+
{
|
279 |
+
return Mage::getUrl(Mage::getStoreConfig('carriers/socolissimosimplicite/redirect_url_on_error'));
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* Retourne le tableau associant les codes de civilité de So Colissimo avec les valeurs pouvant être définies dans Magento
|
284 |
+
* Dans la config, la correspondance est fournir en JSON, le tableau correspondant est retourné
|
285 |
+
*
|
286 |
* @return array
|
287 |
*/
|
288 |
public function getMapPrefix()
|
289 |
{
|
290 |
$map = Mage::getStoreConfig('carriers/socolissimosimplicite/mapprefix');
|
291 |
+
|
292 |
return json_decode($map, true);
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
+
* Retourne les codes des points relais commerçants
|
297 |
+
*
|
298 |
+
* @return array
|
299 |
+
*/
|
300 |
+
public function getPickupPointCodes()
|
301 |
+
{
|
302 |
+
$codes = Mage::getStoreConfig('carriers/socolissimosimplicite/pickup_codes');
|
303 |
+
|
304 |
+
return is_array($codes) ? array_keys($codes) : array();
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* Retourne les codes des bureaux de poste
|
309 |
+
*
|
310 |
+
* @return array
|
311 |
+
*/
|
312 |
+
public function getPostOfficeCodes()
|
313 |
+
{
|
314 |
+
$codes = Mage::getStoreConfig('carriers/socolissimosimplicite/post_office_codes');
|
315 |
+
|
316 |
+
return is_array($codes) ? array_keys($codes) : array();
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Retourne les frais de livraison correctement formatés pour la soumission auprès de So Colissimo
|
321 |
+
*
|
322 |
* @param float $shippingPrice
|
323 |
* @param int $maxDecimalDigit
|
324 |
* @return float
|
326 |
public function getFormatedShippingPrice($shippingPrice, $maxDecimalDigit = 2)
|
327 |
{
|
328 |
$formatedPrice = number_format($shippingPrice, $maxDecimalDigit, '.', '');
|
329 |
+
|
330 |
return $formatedPrice;
|
331 |
}
|
332 |
|
333 |
/**
|
334 |
+
* Retourne le poids total de la commande correctement formaté pour la soumission auprès de So Colissimo
|
335 |
+
*
|
336 |
* @param float $weight
|
337 |
* @return int
|
338 |
*/
|
339 |
public function getFormatedWeight($weight)
|
340 |
{
|
341 |
$weight = str_replace(',', '.', $weight);
|
342 |
+
// conversion des kg en g
|
343 |
+
$weight = $weight * 1000;
|
344 |
$formatedWeight = number_format($weight, 0, '.', '');
|
345 |
+
|
346 |
return $formatedWeight;
|
347 |
}
|
348 |
|
349 |
/**
|
350 |
+
* Retourne le code civilité de So Colissimo correspondant au code civilité donné
|
351 |
+
*
|
352 |
* @param string $prefixMagento
|
353 |
* @return string
|
354 |
*/
|
359 |
if (in_array($prefixMagento, $mapPrefix)) {
|
360 |
$prefixSoCo = array_search($prefixMagento, $mapPrefix);
|
361 |
}
|
362 |
+
|
363 |
return $prefixSoCo;
|
364 |
}
|
365 |
|
366 |
/**
|
367 |
+
* Retourne la civilité correspondant au code civilité au format So Colissimo donné
|
368 |
+
*
|
369 |
* @param string $prefixSoCo
|
370 |
* @return string
|
371 |
*/
|
376 |
if (isset($mapPrefix[$prefixSoCo])) {
|
377 |
$prefixMagento = $mapPrefix[$prefixSoCo];
|
378 |
}
|
379 |
+
|
380 |
return $prefixMagento;
|
381 |
}
|
382 |
|
383 |
/**
|
384 |
* Vérifier que la plateforme socolissimo est disponible
|
385 |
*
|
386 |
+
* @return bool
|
387 |
*/
|
388 |
public function checkServiceAvailability()
|
389 |
{
|
390 |
+
if ($this->_serviceAvailable === null) {
|
391 |
+
$available = true;
|
392 |
+
|
393 |
+
if ($this->getServiceIsAvailable() && $this->getServiceIsAvailableUrl() != '') {
|
394 |
+
// exécuter la requête GET et récupérer l'état du service
|
395 |
+
$c = curl_init();
|
396 |
+
curl_setopt($c, CURLOPT_URL, $this->getServiceIsAvailableUrl());
|
397 |
+
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
|
398 |
+
curl_setopt($c, CURLOPT_HEADER, false);
|
399 |
+
try {
|
400 |
+
$output = curl_exec($c);
|
401 |
+
$available = (trim($output) === '[OK]');
|
402 |
+
} catch(Exception $e) {
|
403 |
+
Mage::logException($e);
|
404 |
+
$available = false;
|
405 |
+
}
|
406 |
+
curl_close($c);
|
407 |
+
}
|
408 |
+
|
409 |
+
$this->_serviceAvailable = $available;
|
410 |
+
}
|
411 |
+
|
412 |
+
return $this->_serviceAvailable;
|
413 |
+
}
|
414 |
+
|
415 |
+
/**
|
416 |
+
* Retourne les données à envoyer à So Colissimo
|
417 |
+
*
|
418 |
+
* @param string $orderId
|
419 |
+
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
420 |
+
* @return array
|
421 |
+
*/
|
422 |
+
public function getFieldsToSend($orderId, $shippingAddress)
|
423 |
+
{
|
424 |
+
$defaultShippingAmount = $this->getShippingAmount($shippingAddress, 'default');
|
425 |
+
$pickupShippingAmount = $this->getShippingAmount($shippingAddress, 'pickup');
|
426 |
+
|
427 |
+
return array(
|
428 |
+
'pudoFOId' => $this->getAccountId(),
|
429 |
+
'ceName' => $shippingAddress->getLastname(),
|
430 |
+
'dyForwardingCharges' => $this->getFormatedShippingPrice($defaultShippingAmount),
|
431 |
+
'dyForwardingChargesCMT' => $this->getFormatedShippingPrice($pickupShippingAmount),
|
432 |
+
'trClientNumber' => $shippingAddress->getCustomerId(),
|
433 |
+
'trOrderNumber' => $shippingAddress->getQuoteId(),
|
434 |
+
'orderId' => $orderId,
|
435 |
+
'numVersion' => $this->getNumVersion(),
|
436 |
+
'ceCivility' => $this->getPrefixForSoColissimo($shippingAddress->getPrefix()),
|
437 |
+
'ceFirstName' => $shippingAddress->getFirstname(),
|
438 |
+
'ceCompanyName' => $shippingAddress->getCompany(),
|
439 |
+
'ceAdress1' => $this->_getShippingAddressStreet($shippingAddress, 2),
|
440 |
+
'ceAdress2' => $this->_getShippingAddressStreet($shippingAddress, 3),
|
441 |
+
'ceAdress3' => $this->_getShippingAddressStreet($shippingAddress, 1),
|
442 |
+
'ceAdress4' => $this->_getShippingAddressStreet($shippingAddress, 4),
|
443 |
+
'ceZipCode' => $shippingAddress->getPostcode(),
|
444 |
+
'ceTown' => $shippingAddress->getCity(),
|
445 |
+
'ceEmail' => $shippingAddress->getEmail(),
|
446 |
+
'cePhoneNumber' => $this->getPhoneNumber($shippingAddress),
|
447 |
+
'dyWeight' => $this->getFormatedWeight($shippingAddress->getWeight()),
|
448 |
+
'trReturnUrlKo' => $this->getFailureUrl(),
|
449 |
+
'trReturnUrlOk' => $this->getSuccessUrl(),
|
450 |
+
'CHARSET' => $this->getEncodingType(),
|
451 |
+
'cePays' => $shippingAddress->getCountryId(),
|
452 |
+
'trInter' => $shippingAddress->getCountryId() === 'FR' ? '0' : '2',
|
453 |
+
'ceLang' => $this->getLanguage(),
|
454 |
+
'encryptionKey' => $this->getEncryptionKey(),
|
455 |
+
);
|
456 |
+
}
|
457 |
+
|
458 |
+
/**
|
459 |
+
* Retourne la ligne n° $line des informations (rue, étage, immeuble, etc.) de l'adresse de livraison de la commande en cours
|
460 |
+
*
|
461 |
+
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
462 |
+
* @param int $line
|
463 |
+
* @return string
|
464 |
+
*/
|
465 |
+
protected function _getShippingAddressStreet($shippingAddress, $line = 1)
|
466 |
+
{
|
467 |
+
$arrayStreet = $shippingAddress->getStreet();
|
468 |
+
$streetLine = '';
|
469 |
+
if (0 < $line && $line <= count($arrayStreet)) {
|
470 |
+
$streetLine = $arrayStreet[$line - 1];
|
471 |
+
}
|
472 |
+
|
473 |
+
return $streetLine;
|
474 |
+
}
|
475 |
+
|
476 |
+
/**
|
477 |
+
* Vérifie si l'utilisateur est revenu de la plateforme So Colissimo
|
478 |
+
*
|
479 |
+
* @return bool
|
480 |
+
*/
|
481 |
+
public function isSocoComplete()
|
482 |
+
{
|
483 |
+
$shippingPriceCalculations = Mage::getStoreConfig('carriers/socolissimosimplicite/shipping_price_calculations');
|
484 |
+
$hasChosenShippingAmount = Mage::getSingleton('checkout/session')->hasData('socolissimosimplicite_chosen_shipping_amount');
|
485 |
+
$isSocoComplete = false;
|
486 |
+
|
487 |
+
if ($hasChosenShippingAmount && is_array($shippingPriceCalculations)) {
|
488 |
+
$controllerName = Mage::app()->getRequest()->getControllerName();
|
489 |
+
$actionName = Mage::app()->getRequest()->getActionName();
|
490 |
+
foreach ($shippingPriceCalculations as $requestData) {
|
491 |
+
if (array_key_exists('controller', $requestData) && array_key_exists('action', $requestData)) {
|
492 |
+
if ($controllerName === $requestData['controller'] && $actionName === $requestData['action']) {
|
493 |
+
$isSocoComplete = true;
|
494 |
+
break;
|
495 |
+
}
|
496 |
+
}
|
497 |
+
}
|
498 |
+
}
|
499 |
+
|
500 |
+
return $isSocoComplete;
|
501 |
+
}
|
502 |
+
|
503 |
+
/**
|
504 |
+
* Nettoie la session du tunnel de commande
|
505 |
+
*
|
506 |
+
* @param bool $cleanAll
|
507 |
+
* @return void
|
508 |
+
*/
|
509 |
+
public function clearCheckoutSession($cleanAll = true)
|
510 |
+
{
|
511 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
512 |
+
$checkoutSession = Mage::getSingleton('checkout/session');
|
513 |
+
|
514 |
+
if ($checkoutSession) {
|
515 |
+
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
|
516 |
+
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_transactionid');
|
517 |
+
$checkoutSession->unsetData('socolissimosimplicite_shipping_data');
|
518 |
+
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
519 |
+
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
520 |
+
$checkoutSession->unsetData('socolissimosimplicite_billing_address');
|
521 |
+
$checkoutSession->unsetData('socolissimosimplicite_shipping_address');
|
522 |
+
// nettoie les variables servant à mémoriser le mode/prix choisi dans l'IFrame
|
523 |
+
$checkoutSession->unsetData('socolissimosimplicite_chosen_delivery_mode');
|
524 |
+
$checkoutSession->unsetData('socolissimosimplicite_chosen_shipping_amount');
|
525 |
+
|
526 |
+
if ($cleanAll) {
|
527 |
+
// nettoie le sous-total de la quote
|
528 |
+
$checkoutSession->unsetData('socolissimosimplicite_quote_subtotal');
|
529 |
+
|
530 |
+
// nettoie les frais d'expédition (en principe déjà fait par le formulaire d'envoi des données à la plateforme)
|
531 |
+
$checkoutSession->unsetData('socolissimosimplicite_available_shipping_amounts');
|
532 |
+
}
|
533 |
}
|
|
|
|
|
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 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Carrier/ShippingMethod.php
CHANGED
@@ -1,80 +1,155 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
-
*/
|
11 |
-
/**
|
12 |
-
*
|
13 |
-
* Mode de livraison SO Colissimo Simplicité
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
16 |
-
extends Mage_Shipping_Model_Carrier_Abstract
|
17 |
-
implements Mage_Shipping_Model_Carrier_Interface
|
18 |
{
|
19 |
/**
|
20 |
* Identifiant unique du mode de livraison
|
|
|
21 |
* @var string
|
22 |
*/
|
23 |
protected $_code = 'socolissimosimplicite';
|
24 |
|
25 |
/**
|
26 |
-
* Récolte et retourne les informations sur le mode de livraison utiles
|
27 |
-
*
|
28 |
* @param Mage_Shipping_Model_Rate_Request $request
|
29 |
* @return Mage_Shipping_Model_Rate_Result
|
30 |
*/
|
31 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
32 |
{
|
33 |
-
//on stoppe si le mode de livraison n'est pas activé dans la configuration
|
34 |
if (!$this->getConfigFlag('active')) {
|
35 |
return false;
|
36 |
}
|
37 |
|
38 |
-
//idem si la limite de poids ou la tranche de prix ne sont pas respectés
|
39 |
-
$
|
40 |
-
|
|
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
45 |
|
|
|
46 |
$result = Mage::getModel('shipping/rate_result');
|
47 |
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
50 |
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
$minQuotePriceForFreeShipping = $this->getConfigData('minquotepriceforfree');
|
59 |
$quotePriceWithDiscount = $request->getData('package_value_with_discount');
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
} else {
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
return $result;
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
-
* Retourne les modes de livraison authorisés
|
|
|
78 |
* @return array
|
79 |
*/
|
80 |
public function getAllowedMethods()
|
@@ -83,53 +158,40 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Retourne le montant des frais de livraison après éventuels calculs
|
87 |
-
*
|
|
|
|
|
|
|
88 |
* @return float
|
89 |
*/
|
90 |
-
|
91 |
{
|
92 |
-
$
|
93 |
-
$amountCalculation = $this->getConfigData('amountcalculation');
|
94 |
$helper = Mage::helper('socolissimosimplicite');
|
95 |
|
96 |
-
// récupérer l'adresse
|
97 |
-
$shippingAddress = Mage::getModel('checkout/cart')->getQuote()->getShippingAddress();
|
98 |
-
|
99 |
-
// en mode rendez-vous, on utilise directement le prix transmis par socolissimo
|
100 |
-
// on ne re-calcule pas (supplément de 4€)
|
101 |
-
if ($shippingAddress->getData('soco_mode_rdv') == true
|
102 |
-
and $shippingAddress->getData('base_shipping_amount') > 0) {
|
103 |
-
return $shippingAddress->getData('base_shipping_amount');
|
104 |
-
// sinon si bug des frais RDV non comptabilisés, on utilise le montant mémorisé en session
|
105 |
-
// (versions CE1.5 et EE1.10, à l'étape savePayment du onepage)
|
106 |
-
} elseif (Mage::helper('socolissimosimplicite')->hasToDebugModeRdv()) {
|
107 |
-
return Mage::getSingleton('checkout/session')->getData('socolissimosimplicite_shipping_amount');
|
108 |
-
}
|
109 |
-
|
110 |
// sinon calcul en fonction de la configuration
|
111 |
switch ($amountBaseType) {
|
112 |
case 'fixed':
|
113 |
if (is_numeric($amountCalculation)) {
|
114 |
$calculatedPrice = $amountCalculation;
|
115 |
} else {
|
116 |
-
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" fournie "'
|
117 |
}
|
118 |
break;
|
119 |
case 'per_weight':
|
120 |
$rules = json_decode($amountCalculation, true);
|
121 |
-
|
122 |
-
|
123 |
-
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"}'));
|
124 |
} else {
|
125 |
try {
|
126 |
-
//tri par poids décroissant
|
127 |
krsort($rules, SORT_NUMERIC);
|
128 |
|
129 |
-
//récupération du poids total de la commande (en kilogrammes)
|
130 |
$totalWeight = $shippingAddress->getWeight();
|
131 |
|
132 |
-
//recherche du prix selon les fourchettes de tarifs données
|
133 |
$calculatedPrice = false;
|
134 |
foreach ($rules as $w => $p) {
|
135 |
$calculatedPrice = $p;
|
@@ -138,24 +200,23 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
138 |
}
|
139 |
}
|
140 |
} catch (Exception $e) {
|
141 |
-
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le poids" fournie "'
|
142 |
}
|
143 |
}
|
144 |
break;
|
145 |
case 'per_amount':
|
146 |
$rules = json_decode($amountCalculation, true);
|
147 |
-
|
148 |
-
|
149 |
-
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"}'));
|
150 |
} else {
|
151 |
try {
|
152 |
-
//tri par montant décroissant
|
153 |
krsort($rules, SORT_NUMERIC);
|
154 |
|
155 |
-
//recuperation du sous total HT du panier
|
156 |
$totalAmount = $shippingAddress->getSubtotal();
|
157 |
|
158 |
-
//recherche du prix selon les fourchettes de tarifs donnees
|
159 |
$calculatedPrice = false;
|
160 |
foreach ($rules as $w => $p) {
|
161 |
$calculatedPrice = $p;
|
@@ -164,20 +225,20 @@ class LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod
|
|
164 |
}
|
165 |
}
|
166 |
} catch (Exception $e) {
|
167 |
-
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Calcul des frais de livraison" pour le type "tarif selon le sous-total" fournie "'
|
168 |
}
|
169 |
}
|
170 |
break;
|
171 |
default:
|
172 |
-
throw new Exception($helper->__('SoColissimo : la valeur de configuration "Type des frais de livraison"
|
173 |
break;
|
174 |
}
|
|
|
175 |
return $calculatedPrice;
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
-
*
|
180 |
-
* needed for Magento version under 1.4
|
181 |
*
|
182 |
* @return string
|
183 |
*/
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Mode de livraison So Colissimo Simplicité
|
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_Model_Carrier_ShippingMethod
|
12 |
+
extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface
|
|
|
13 |
{
|
14 |
/**
|
15 |
* Identifiant unique du mode de livraison
|
16 |
+
*
|
17 |
* @var string
|
18 |
*/
|
19 |
protected $_code = 'socolissimosimplicite';
|
20 |
|
21 |
/**
|
22 |
+
* Récolte et retourne les informations sur le mode de livraison utiles pour le passage d'une commande
|
23 |
+
*
|
24 |
* @param Mage_Shipping_Model_Rate_Request $request
|
25 |
* @return Mage_Shipping_Model_Rate_Result
|
26 |
*/
|
27 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
28 |
{
|
29 |
+
// on stoppe si le mode de livraison n'est pas activé dans la configuration
|
30 |
if (!$this->getConfigFlag('active')) {
|
31 |
return false;
|
32 |
}
|
33 |
|
34 |
+
// idem si la limite de poids ou la tranche de prix ne sont pas respectés
|
35 |
+
if (is_numeric($this->getConfigData('min_order_total')) && $request->getPackageValue() < $this->getConfigData('min_order_total')) {
|
36 |
+
return false;
|
37 |
+
}
|
38 |
|
39 |
+
if (is_numeric($this->getConfigData('max_order_total')) && $request->getPackageValue() > $this->getConfigData('max_order_total')) {
|
40 |
+
return false;
|
41 |
+
}
|
42 |
+
|
43 |
+
if (is_numeric($this->getConfigData('max_weight')) && $request->getPackageWeight() > $this->getConfigData('max_weight')) {
|
44 |
+
return false;
|
45 |
+
}
|
46 |
|
47 |
+
/* @var $result Mage_Shipping_Model_Rate_Result */
|
48 |
$result = Mage::getModel('shipping/rate_result');
|
49 |
|
50 |
+
// ajout de la méthode qui sera affichée dans le tunnel de commande
|
51 |
+
/* @var $method Mage_Shipping_Model_Rate_Result_Method */
|
52 |
+
$method = Mage::getModel('shipping/rate_result_method');
|
53 |
+
$method->setCarrier($this->_code);
|
54 |
+
$method->setCarrierTitle($this->getConfigData('title'));
|
55 |
+
$method->setMethod($this->_code);
|
56 |
|
57 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
58 |
+
$checkoutSession = Mage::getSingleton('checkout/session');
|
59 |
|
60 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
61 |
+
$helper = Mage::helper('socolissimosimplicite');
|
62 |
|
63 |
+
if ($helper->isSocoComplete()) {
|
64 |
+
// après la sortie de la plateforme socolissimo (IFrame), on utilise le prix transmis par socolissimo
|
65 |
+
// on ne peut pas se baser sur le prix de l'adresse de livraison car son prix est réinitialisé
|
66 |
+
// à l'étape du paiement dans certaines versions de Magento
|
67 |
+
$price = $checkoutSession->getData('socolissimosimplicite_chosen_shipping_amount');
|
68 |
+
|
69 |
+
// mettre à jour le libellé de la méthode de livraison
|
70 |
+
$deliveryMode = $checkoutSession->getData('socolissimosimplicite_chosen_delivery_mode');
|
71 |
+
if ($deliveryMode === 'DOM') {
|
72 |
+
$methodTitle = $this->getConfigData('name_home');
|
73 |
+
} elseif ($deliveryMode === 'RDV') {
|
74 |
+
$methodTitle = $this->getConfigData('name_appointment');
|
75 |
+
} elseif (in_array($deliveryMode, $helper->getPickupPointCodes())) {
|
76 |
+
$methodTitle = $this->getConfigData('name_pickup');
|
77 |
+
} elseif (in_array($deliveryMode, $helper->getPostOfficeCodes())) {
|
78 |
+
$methodTitle = $this->getConfigData('name_post_office');
|
79 |
+
} else {
|
80 |
+
// mode de livraison incorrect, on affiche le libellé par défaut
|
81 |
+
// ce cas pourrait par exemple se produire dans le cas de l'ajout d'un nouveau pays alors que ses codes
|
82 |
+
// de point de retrait et de bureaux de poste ne sont pas renseigné dans le fichier config.xml
|
83 |
+
$methodTitle = $this->getConfigData('name');
|
84 |
+
}
|
85 |
+
} else {
|
86 |
+
// vérifier si la livraison So Colissimo est offerte et à partir de quel montant
|
87 |
$minQuotePriceForFreeShipping = $this->getConfigData('minquotepriceforfree');
|
88 |
$quotePriceWithDiscount = $request->getData('package_value_with_discount');
|
89 |
+
|
90 |
+
$isFreeShipping = $request->getFreeShipping()
|
91 |
+
|| ($minQuotePriceForFreeShipping > 0 && $quotePriceWithDiscount >= $minQuotePriceForFreeShipping);
|
92 |
+
|
93 |
+
if ($isFreeShipping) {
|
94 |
+
$defaultPrice = $pickupPrice = $price = 0;
|
95 |
} else {
|
96 |
+
// calcul des frais d'expéditions
|
97 |
+
$defaultPrice = $this->_getCalculatedPrice(
|
98 |
+
$checkoutSession->getQuote()->getShippingAddress(),
|
99 |
+
$this->getConfigData('amountbasetype'),
|
100 |
+
$this->getConfigData('amountcalculation')
|
101 |
+
);
|
102 |
+
|
103 |
+
// calcul des frais d'expédition commerçants (prend la valeur des frais par défaut si non renseignés
|
104 |
+
$pickupPrice = $defaultPrice;
|
105 |
+
$amountCalculationPickup = $this->getConfigData('amountcalculation_pickup');
|
106 |
+
if ($amountCalculationPickup !== null && $amountCalculationPickup !== '' && $amountCalculationPickup !== false) {
|
107 |
+
$pickupPrice = $this->_getCalculatedPrice(
|
108 |
+
$checkoutSession->getQuote()->getShippingAddress(),
|
109 |
+
$this->getConfigData('amountbasetype_pickup'),
|
110 |
+
$amountCalculationPickup
|
111 |
+
);
|
112 |
+
}
|
113 |
|
114 |
+
if ($helper->checkServiceAvailability()) {
|
115 |
+
// prendre le prix le plus bas
|
116 |
+
$price = ($pickupPrice < $defaultPrice) ? $pickupPrice : $defaultPrice;
|
117 |
+
} else {
|
118 |
+
// si la plateforme est indisponible, systématiquement prendre le prix normal
|
119 |
+
// il n'y aura pas d'affichage de l'IFrame, ce prix sera directement utilisé pour commander
|
120 |
+
$price = $defaultPrice;
|
121 |
+
}
|
122 |
}
|
123 |
|
124 |
+
// sauvegarder les frais d'expédition dans la session (ils seront utilisés par la transaction et le form d'envoi)
|
125 |
+
$checkoutSession->setData(
|
126 |
+
'socolissimosimplicite_available_shipping_amounts',
|
127 |
+
array(
|
128 |
+
'default' => $defaultPrice,
|
129 |
+
'pickup' => $pickupPrice,
|
130 |
+
)
|
131 |
+
);
|
132 |
+
|
133 |
+
// utiliser le nom de méthode par défaut
|
134 |
+
$methodTitle = $this->getConfigData('name');
|
135 |
}
|
136 |
+
|
137 |
+
// mémoriser le sous-total de la quote, cela permettra de s'assurer que l'internaute
|
138 |
+
// ne l'ait pas modifié pendant qu'il était sur la plateforme So Colissimo
|
139 |
+
$checkoutSession->setData('socolissimosimplicite_quote_subtotal', $checkoutSession->getQuote()->getSubtotal());
|
140 |
+
|
141 |
+
// on attribue à la méthode les frais d'expédition les plus bas (c'est ce qui sera affiché dans le tunnel de commande)
|
142 |
+
$method->setMethodTitle($methodTitle);
|
143 |
+
$method->setPrice($price);
|
144 |
+
$method->setCost($price);
|
145 |
+
$result->append($method);
|
146 |
+
|
147 |
return $result;
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* Retourne les modes de livraison authorisés
|
152 |
+
*
|
153 |
* @return array
|
154 |
*/
|
155 |
public function getAllowedMethods()
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
+
* Retourne le montant des frais de livraison après éventuels calculs selon le mode de tarification choisi dans l'administration
|
162 |
+
*
|
163 |
+
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
164 |
+
* @param string $amountBaseType
|
165 |
+
* @param string $amountBaseCalculation
|
166 |
* @return float
|
167 |
*/
|
168 |
+
protected function _getCalculatedPrice($shippingAddress, $amountBaseType, $amountCalculation)
|
169 |
{
|
170 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
|
|
171 |
$helper = Mage::helper('socolissimosimplicite');
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
// sinon calcul en fonction de la configuration
|
174 |
switch ($amountBaseType) {
|
175 |
case 'fixed':
|
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
|
189 |
krsort($rules, SORT_NUMERIC);
|
190 |
|
191 |
+
// récupération du poids total de la commande (en kilogrammes)
|
192 |
$totalWeight = $shippingAddress->getWeight();
|
193 |
|
194 |
+
// recherche du prix selon les fourchettes de tarifs données
|
195 |
$calculatedPrice = false;
|
196 |
foreach ($rules as $w => $p) {
|
197 |
$calculatedPrice = $p;
|
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
|
214 |
krsort($rules, SORT_NUMERIC);
|
215 |
|
216 |
+
// recuperation du sous total HT du panier
|
217 |
$totalAmount = $shippingAddress->getSubtotal();
|
218 |
|
219 |
+
// recherche du prix selon les fourchettes de tarifs donnees
|
220 |
$calculatedPrice = false;
|
221 |
foreach ($rules as $w => $p) {
|
222 |
$calculatedPrice = $p;
|
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 |
+
|
237 |
return $calculatedPrice;
|
238 |
}
|
239 |
|
240 |
/**
|
241 |
+
* Retourne le code du mode de livraison (nécessaire pour les versions < 1.4)
|
|
|
242 |
*
|
243 |
* @return string
|
244 |
*/
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Mysql4/Transaction.php
CHANGED
@@ -1,21 +1,22 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
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 |
*
|
13 |
-
*
|
|
|
|
|
|
|
|
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Mysql4_Transaction extends Mage_Core_Model_Mysql4_Abstract
|
16 |
{
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
18 |
{
|
19 |
$this->_init('socolissimosimplicite/transaction', 'transaction_id');
|
20 |
}
|
21 |
-
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Transaction entre Magento et 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_Model_Mysql4_Transaction extends Mage_Core_Model_Mysql4_Abstract
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Constructeur
|
15 |
+
*
|
16 |
+
* @return void
|
17 |
+
*/
|
18 |
+
protected function _construct()
|
19 |
{
|
20 |
$this->_init('socolissimosimplicite/transaction', 'transaction_id');
|
21 |
}
|
22 |
+
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Mysql4/Transaction/Collection.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
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 |
*
|
13 |
-
*
|
|
|
|
|
|
|
|
|
14 |
*/
|
15 |
-
class LaPoste_SoColissimoSimplicite_Model_Mysql4_Transaction_Collection
|
16 |
-
extends Mage_Core_Model_Mysql4_Collection_Abstract
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
19 |
{
|
20 |
$this->_init('socolissimosimplicite/transaction');
|
21 |
}
|
22 |
-
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Collection des transactions entre Magento et 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_Model_Mysql4_Transaction_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
|
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Constructeur
|
15 |
+
*
|
16 |
+
* @return void
|
17 |
+
*/
|
18 |
+
protected function _construct()
|
19 |
{
|
20 |
$this->_init('socolissimosimplicite/transaction');
|
21 |
}
|
22 |
+
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Observer.php
CHANGED
@@ -1,107 +1,128 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
-
*/
|
11 |
-
/**
|
12 |
-
*
|
13 |
-
* Observer SO Colissimo
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Observer
|
16 |
{
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
/**
|
21 |
* Tableau de correspondance les champs simples retournés par SO COlissimo
|
22 |
-
* et les champs d'une adresse de livraison dans Magento
|
|
|
23 |
* @var array
|
24 |
*/
|
25 |
-
protected $_mapFields = array
|
26 |
'CENAME' => 'lastname',
|
27 |
'CEFIRSTNAME' => 'firstname',
|
28 |
'CETOWN' => 'city',
|
29 |
'CEZIPCODE' => 'postcode',
|
30 |
'CEEMAIL' => 'email',
|
|
|
31 |
'CEPHONENUMBER' => 'telephone',
|
32 |
'CECOMPANYNAME' => 'company',
|
33 |
-
'DYFORWARDINGCHARGES' => 'base_shipping_amount',
|
34 |
'PRZIPCODE' => 'postcode',
|
35 |
-
'PRTOWN' => 'city'
|
|
|
36 |
);
|
37 |
|
38 |
/**
|
39 |
-
* Met à jour les données de livraison à partir des infos récupérées depuis
|
40 |
-
*
|
41 |
-
*
|
42 |
-
*
|
43 |
-
* a jour est effectué APRÈS cette réinitialisation.
|
44 |
* @param Varien_Event_Observer $observer
|
|
|
45 |
*/
|
46 |
public function setShippingAddressWithSoColissimoAddress($observer)
|
47 |
{
|
|
|
48 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
49 |
|
50 |
$transactionId = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_transactionid');
|
51 |
$nextStep = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_nextstep');
|
|
|
52 |
|
53 |
-
//on regarde s'il existe une transaction avec
|
54 |
-
//le choix du mode de paiement
|
55 |
if ($transactionId && $nextStep == 'payment') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
69 |
}
|
70 |
}
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
public function clearCheckoutSession($observer)
|
74 |
{
|
75 |
-
|
76 |
-
|
77 |
-
if ($checkoutSession) {
|
78 |
-
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_nextstep');
|
79 |
-
$checkoutSession->unsetData('socolissimosimplicite_checkout_onepage_transactionid');
|
80 |
-
$checkoutSession->unsetData('socolissimosimplicite_shipping_data');
|
81 |
-
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
82 |
-
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
83 |
-
// nettoie les variables servant à corriger le bug de frais de livraison sur rdv
|
84 |
-
$checkoutSession->unsetData('socolissimosimplicite_mode_rdv');
|
85 |
-
$checkoutSession->unsetData('socolissimosimplicite_flag');
|
86 |
-
$checkoutSession->unsetData('socolissimosimplicite_shipping_amount');
|
87 |
-
}
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
-
*
|
92 |
* Sauvegarde les donnees de la commande propre a So Colissimo
|
93 |
-
*
|
|
|
|
|
94 |
*/
|
95 |
-
|
96 |
public function addSocoAttributesToOrder($observer)
|
97 |
{
|
98 |
try {
|
|
|
99 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
100 |
$shippingData = $checkoutSession->getData('socolissimosimplicite_shipping_data');
|
101 |
|
102 |
-
//on ne fait le traitement que si le mode d'expedition est socolissimo
|
|
|
103 |
if (isset($shippingData) && count($shippingData) > 0) {
|
104 |
-
|
105 |
if (isset($shippingData['DELIVERYMODE'])) {
|
106 |
$observer->getEvent()->getOrder()->setSocoProductCode($shippingData['DELIVERYMODE']);
|
107 |
}
|
@@ -144,22 +165,25 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
-
* Met à jour les données sur l'adresse de livraison à partir des
|
148 |
-
*
|
|
|
149 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
150 |
-
* @param array
|
151 |
-
* @
|
152 |
*/
|
153 |
protected function _updateQuoteAndShippingAddress($shippingAddress, $shippingData)
|
154 |
{
|
|
|
155 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
|
|
156 |
if ($checkoutSession->hasData('socolissimosimplicite_new_address_from_socolissimo')) {
|
|
|
|
|
157 |
|
158 |
-
|
159 |
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
160 |
|
161 |
-
$helper = Mage::helper('socolissimosimplicite');
|
162 |
-
|
163 |
$arrayData = array();
|
164 |
$arrayData['customer_address_id'] = null;
|
165 |
|
@@ -169,18 +193,17 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
169 |
foreach ($shippingData as $fieldSoCo => $valueSoCo) {
|
170 |
if (array_key_exists($fieldSoCo, $this->_mapFields)) {
|
171 |
$fieldMagento = $this->_mapFields[$fieldSoCo];
|
172 |
-
//
|
173 |
-
$arrayData[$fieldMagento] =
|
174 |
} elseif ($valueSoCo) {
|
175 |
-
$shippingValue =
|
176 |
switch ($fieldSoCo) {
|
|
|
177 |
case 'CECIVILITY':
|
178 |
$arrayData['prefix'] = $helper->getPrefixForMagento($shippingValue);
|
179 |
break;
|
180 |
|
181 |
-
//cas
|
182 |
-
|
183 |
-
//cas livraison à domicile
|
184 |
case 'CEADRESS3':
|
185 |
$street['0'] = $shippingValue; //mis en 1er car numéro de rue obligatoire côté SoCo
|
186 |
break;
|
@@ -194,7 +217,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
194 |
$street['3'] = $shippingValue;
|
195 |
break;
|
196 |
|
197 |
-
//cas livraison en point
|
198 |
case 'PRNAME':
|
199 |
$street['0'] = $shippingValue;
|
200 |
break;
|
@@ -208,7 +231,7 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
208 |
$street['3'] = $shippingValue;
|
209 |
break;
|
210 |
|
211 |
-
//autres informations sur la livraison
|
212 |
case 'CEENTRYPHONE':
|
213 |
$customerNotesArray['0'] = $helper->__('Interphone').' : '.$shippingValue;
|
214 |
break;
|
@@ -228,47 +251,30 @@ class LaPoste_SoColissimoSimplicite_Model_Observer
|
|
228 |
}
|
229 |
}
|
230 |
|
231 |
-
if (!
|
232 |
$arrayData['customer_notes'] = implode("\n", $customerNotesArray);
|
233 |
}
|
234 |
|
235 |
-
//
|
236 |
-
$deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] :
|
237 |
|
238 |
// sauvegarde dans le carnet d'adresse seulement pour le mode domicile
|
239 |
-
if ($deliveryMode
|
240 |
$arrayData['save_in_address_book'] = 0;
|
241 |
}
|
242 |
|
243 |
-
//
|
244 |
-
|
245 |
-
|
246 |
-
$street['3'] .= ' '.$helper->__('livraison sur rendez-vous');
|
247 |
-
} else {
|
248 |
-
$street['3'] = $helper->__('livraison sur rendez-vous');
|
249 |
-
}
|
250 |
-
|
251 |
-
// marquer le mode RDV au niveau de l'adresse (calcul dépend du mode)
|
252 |
-
$arrayData['soco_mode_rdv'] = true;
|
253 |
-
} else {
|
254 |
-
// marquer le mode normal au niveau de l'adresse (calcul dépend du mode)
|
255 |
-
$arrayData['soco_mode_rdv'] = false;
|
256 |
-
}
|
257 |
|
258 |
// sauvegarder l'adresse
|
259 |
$shippingAddress->addData($arrayData);
|
260 |
$shippingAddress->setStreet($street);
|
261 |
|
262 |
-
// relancer le calcul du prix (
|
263 |
// voir getCalculatedPrice() de ShippingMethod
|
264 |
$shippingAddress->setCollectShippingRates(true);
|
265 |
$shippingAddress->collectShippingRates();
|
266 |
-
|
267 |
-
$shippingAddress->save();
|
268 |
-
|
269 |
-
// sauvegarde rdv et montant livraison dans la session
|
270 |
-
$checkoutSession->setData('socolissimosimplicite_shipping_amount', $shippingData['DYFORWARDINGCHARGES']);
|
271 |
-
$checkoutSession->setData('socolissimosimplicite_mode_rdv', self::modRDV);
|
272 |
}
|
273 |
}
|
274 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Observer 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_Model_Observer
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Modes de livraisons
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
const MODE_RDV = 'RDV';
|
19 |
+
const MODE_DOM = 'DOM';
|
20 |
|
21 |
/**
|
22 |
* Tableau de correspondance les champs simples retournés par SO COlissimo
|
23 |
+
* et les champs d'une adresse de livraison dans Magento
|
24 |
+
*
|
25 |
* @var array
|
26 |
*/
|
27 |
+
protected $_mapFields = array(
|
28 |
'CENAME' => 'lastname',
|
29 |
'CEFIRSTNAME' => 'firstname',
|
30 |
'CETOWN' => 'city',
|
31 |
'CEZIPCODE' => 'postcode',
|
32 |
'CEEMAIL' => 'email',
|
33 |
+
'CEPAYS' => 'country_id',
|
34 |
'CEPHONENUMBER' => 'telephone',
|
35 |
'CECOMPANYNAME' => 'company',
|
|
|
36 |
'PRZIPCODE' => 'postcode',
|
37 |
+
'PRTOWN' => 'city',
|
38 |
+
|
39 |
);
|
40 |
|
41 |
/**
|
42 |
+
* Met à jour les données de livraison à partir des infos récupérées depuis So Colissimo
|
43 |
+
* L'adresse de livraison est automatiquement réinitialisée avec celle par défaut du client
|
44 |
+
* dès qu'il est sur le tunnel de commande, c'est pourquoi cette mise à jour est effectué APRÈS cette réinitialisation
|
45 |
+
*
|
|
|
46 |
* @param Varien_Event_Observer $observer
|
47 |
+
* @return void
|
48 |
*/
|
49 |
public function setShippingAddressWithSoColissimoAddress($observer)
|
50 |
{
|
51 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
52 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
53 |
|
54 |
$transactionId = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_transactionid');
|
55 |
$nextStep = $checkoutSession->getData('socolissimosimplicite_checkout_onepage_nextstep');
|
56 |
+
$quoteTotalBeforeRedirection = $checkoutSession->getData('socolissimosimplicite_quote_subtotal');
|
57 |
|
58 |
+
// on regarde s'il existe une transaction avec So Colissimo en session
|
59 |
+
// et si on cherche à afficher le choix du mode de paiement
|
60 |
if ($transactionId && $nextStep == 'payment') {
|
61 |
+
// si l'utilisateur a modifié le total de la quote pendant qu'il était dans la plateforme So Colissimo
|
62 |
+
// (via un autre onglet par exemple), on recharge le tunnel de commande (comportement natif de l'onglet paiement)
|
63 |
+
if (!$checkoutSession->hasData('socolissimosimplicite_available_shipping_amounts')
|
64 |
+
|| !$checkoutSession->hasData('socolissimosimplicite_quote_subtotal')
|
65 |
+
|| $checkoutSession->getQuote()->getSubtotal() != $quoteTotalBeforeRedirection) {
|
66 |
+
|
67 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
68 |
+
$helper = Mage::helper('socolissimosimplicite');
|
69 |
+
$helper->clearCheckoutSession();
|
70 |
+
Mage::app()->getFrontController()->getResponse()->setRedirect($helper->getRedirectUrlOnError());
|
71 |
+
} else {
|
72 |
+
/* @var $billingAddress Mage_Sales_Model_Quote_Address */
|
73 |
+
$billingAddress = $checkoutSession->getQuote()->getBillingAddress();
|
74 |
+
if ($billingAddress) {
|
75 |
+
// restaurer l'adresse de facturation qui a été réinitialisée à cause du rechargement de la page
|
76 |
+
$billingAddress->setData($checkoutSession->getData('socolissimosimplicite_billing_address'));
|
77 |
+
$checkoutSession->unsetData('socolissimosimplicite_billing_address');
|
78 |
+
$billingAddress->save();
|
79 |
+
}
|
80 |
|
81 |
+
/* @var $shippingAddress Mage_Sales_Model_Quote_Address */
|
82 |
+
$shippingAddress = $checkoutSession->getQuote()->getShippingAddress();
|
83 |
+
|
84 |
+
if ($shippingAddress) {
|
85 |
+
// restaurer l'adresse de livraison qui a été réinitialisée à cause du rechargement de la page
|
86 |
+
$shippingAddress->setData($checkoutSession->getData('socolissimosimplicite_shipping_address'));
|
87 |
+
$checkoutSession->unsetData('socolissimosimplicite_shipping_address');
|
88 |
+
// les données de l'adresse de livraison sont réinitialisées avec l'adresse par défaut du client
|
89 |
+
// lorsque l'on est sur le tunnel de commande, il faut donc mettre à jour les informations
|
90 |
+
// de livraison récupérées depuis So Colissimo
|
91 |
+
$shippingData = $checkoutSession->getData('socolissimosimplicite_shipping_data');
|
92 |
+
$this->_updateQuoteAndShippingAddress($shippingAddress, $shippingData);
|
93 |
+
$shippingAddress->save();
|
94 |
+
}
|
95 |
}
|
96 |
}
|
97 |
}
|
98 |
|
99 |
+
/**
|
100 |
+
* Nettoie la session du tunnel de commande
|
101 |
+
*
|
102 |
+
* @param Varien_Event_Observer $observer
|
103 |
+
* @return void
|
104 |
+
*/
|
105 |
public function clearCheckoutSession($observer)
|
106 |
{
|
107 |
+
Mage::helper('socolissimosimplicite')->clearCheckoutSession();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
}
|
109 |
|
110 |
/**
|
|
|
111 |
* Sauvegarde les donnees de la commande propre a So Colissimo
|
112 |
+
*
|
113 |
+
* @param Varien_Event_Observer $observer
|
114 |
+
* @return void
|
115 |
*/
|
|
|
116 |
public function addSocoAttributesToOrder($observer)
|
117 |
{
|
118 |
try {
|
119 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
120 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
121 |
$shippingData = $checkoutSession->getData('socolissimosimplicite_shipping_data');
|
122 |
|
123 |
+
// on ne fait le traitement que si le mode d'expedition est socolissimo
|
124 |
+
// (et donc qu'on a recupere les donnees de socolissimo)
|
125 |
if (isset($shippingData) && count($shippingData) > 0) {
|
|
|
126 |
if (isset($shippingData['DELIVERYMODE'])) {
|
127 |
$observer->getEvent()->getOrder()->setSocoProductCode($shippingData['DELIVERYMODE']);
|
128 |
}
|
165 |
}
|
166 |
|
167 |
/**
|
168 |
+
* Met à jour les données sur l'adresse de livraison à partir des informations retournées par So Colissimo
|
169 |
+
*
|
170 |
+
* @todo à remplacer car c'est exécuté à chaque requête
|
171 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
172 |
+
* @param array $shippingData
|
173 |
+
* @return void
|
174 |
*/
|
175 |
protected function _updateQuoteAndShippingAddress($shippingAddress, $shippingData)
|
176 |
{
|
177 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
178 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
179 |
+
|
180 |
if ($checkoutSession->hasData('socolissimosimplicite_new_address_from_socolissimo')) {
|
181 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
182 |
+
$helper = Mage::helper('socolissimosimplicite');
|
183 |
|
184 |
+
// on traite la nouvelle addresse une seule fois
|
185 |
$checkoutSession->unsetData('socolissimosimplicite_new_address_from_socolissimo');
|
186 |
|
|
|
|
|
187 |
$arrayData = array();
|
188 |
$arrayData['customer_address_id'] = null;
|
189 |
|
193 |
foreach ($shippingData as $fieldSoCo => $valueSoCo) {
|
194 |
if (array_key_exists($fieldSoCo, $this->_mapFields)) {
|
195 |
$fieldMagento = $this->_mapFields[$fieldSoCo];
|
196 |
+
// So Colissimo renvoie de l'iso8859-1, on encode en utf8
|
197 |
+
$arrayData[$fieldMagento] = $valueSoCo;
|
198 |
} elseif ($valueSoCo) {
|
199 |
+
$shippingValue = $shippingData[$fieldSoCo];
|
200 |
switch ($fieldSoCo) {
|
201 |
+
// cas civilité
|
202 |
case 'CECIVILITY':
|
203 |
$arrayData['prefix'] = $helper->getPrefixForMagento($shippingValue);
|
204 |
break;
|
205 |
|
206 |
+
// cas livraison à domicile
|
|
|
|
|
207 |
case 'CEADRESS3':
|
208 |
$street['0'] = $shippingValue; //mis en 1er car numéro de rue obligatoire côté SoCo
|
209 |
break;
|
217 |
$street['3'] = $shippingValue;
|
218 |
break;
|
219 |
|
220 |
+
// cas livraison en point relais
|
221 |
case 'PRNAME':
|
222 |
$street['0'] = $shippingValue;
|
223 |
break;
|
231 |
$street['3'] = $shippingValue;
|
232 |
break;
|
233 |
|
234 |
+
// autres informations sur la livraison
|
235 |
case 'CEENTRYPHONE':
|
236 |
$customerNotesArray['0'] = $helper->__('Interphone').' : '.$shippingValue;
|
237 |
break;
|
251 |
}
|
252 |
}
|
253 |
|
254 |
+
if (!empty($customerNotesArray)) {
|
255 |
$arrayData['customer_notes'] = implode("\n", $customerNotesArray);
|
256 |
}
|
257 |
|
258 |
+
// récuperation du mode de livraison choisi
|
259 |
+
$deliveryMode = isset($shippingData['DELIVERYMODE'])? $shippingData['DELIVERYMODE'] : self::MODE_DOM;
|
260 |
|
261 |
// sauvegarde dans le carnet d'adresse seulement pour le mode domicile
|
262 |
+
if ($deliveryMode !== self::MODE_DOM) {
|
263 |
$arrayData['save_in_address_book'] = 0;
|
264 |
}
|
265 |
|
266 |
+
// sauvegarde du mode et du montant de livraison dans la session
|
267 |
+
$checkoutSession->setData('socolissimosimplicite_chosen_delivery_mode', $deliveryMode);
|
268 |
+
$checkoutSession->setData('socolissimosimplicite_chosen_shipping_amount', $shippingData['DYFORWARDINGCHARGES']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
// sauvegarder l'adresse
|
271 |
$shippingAddress->addData($arrayData);
|
272 |
$shippingAddress->setStreet($street);
|
273 |
|
274 |
+
// relancer le calcul du prix (puisqu'il a pu changé depuis le retour de la plateforme So Colissimo)
|
275 |
// voir getCalculatedPrice() de ShippingMethod
|
276 |
$shippingAddress->setCollectShippingRates(true);
|
277 |
$shippingAddress->collectShippingRates();
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
}
|
279 |
}
|
280 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/System/Config/Source/Shipping/Amountbasetype.php
CHANGED
@@ -1,29 +1,32 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
-
|
12 |
-
|
13 |
class LaPoste_SoColissimoSimplicite_Model_System_Config_Source_Shipping_Amountbasetype
|
14 |
{
|
|
|
|
|
|
|
|
|
|
|
15 |
public function toOptionArray()
|
16 |
{
|
17 |
return array(
|
18 |
array(
|
19 |
-
'value'=>'fixed',
|
20 |
-
'label'=>Mage::helper('socolissimosimplicite')->__('Tarif unique')),
|
21 |
array(
|
22 |
-
'value'=>'per_weight',
|
23 |
-
'label'=>Mage::helper('socolissimosimplicite')->__('Tarif selon poids')),
|
24 |
array(
|
25 |
-
'value'=>'per_amount',
|
26 |
-
'label'=>Mage::helper('socolissimosimplicite')->__('Tarif selon sous-total du panier')),
|
27 |
);
|
28 |
}
|
29 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
+
*
|
5 |
+
* @category LaPoste
|
6 |
+
* @package LaPoste_SoColissimoSimplicite
|
7 |
+
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
|
|
|
|
11 |
class LaPoste_SoColissimoSimplicite_Model_System_Config_Source_Shipping_Amountbasetype
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Valorise les options de la liste déroulante
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
*/
|
18 |
public function toOptionArray()
|
19 |
{
|
20 |
return array(
|
21 |
array(
|
22 |
+
'value' => 'fixed',
|
23 |
+
'label' => Mage::helper('socolissimosimplicite')->__('Tarif unique')),
|
24 |
array(
|
25 |
+
'value' => 'per_weight',
|
26 |
+
'label' => Mage::helper('socolissimosimplicite')->__('Tarif selon poids')),
|
27 |
array(
|
28 |
+
'value' => 'per_amount',
|
29 |
+
'label' => Mage::helper('socolissimosimplicite')->__('Tarif selon sous-total du panier')),
|
30 |
);
|
31 |
}
|
32 |
}
|
app/code/community/LaPoste/SoColissimoSimplicite/Model/Transaction.php
CHANGED
@@ -1,24 +1,26 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
-
*/
|
11 |
-
/**
|
12 |
-
*
|
13 |
-
* Transaction entre Magento et SO Colissimo
|
14 |
*/
|
15 |
class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Abstract
|
16 |
{
|
|
|
|
|
|
|
|
|
|
|
17 |
protected $_helper;
|
18 |
|
19 |
/**
|
20 |
* Constructeur par défaut
|
21 |
-
*
|
|
|
22 |
*/
|
23 |
public function _construct()
|
24 |
{
|
@@ -27,7 +29,8 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
27 |
}
|
28 |
|
29 |
/**
|
30 |
-
* Retourne le helper principal du module
|
|
|
31 |
* @return LaPoste_SoColissimoSimplicite_Helper_Data
|
32 |
*/
|
33 |
public function helper()
|
@@ -35,12 +38,13 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
35 |
if (is_null($this->_helper)) {
|
36 |
$this->_helper = Mage::helper('socolissimosimplicite');
|
37 |
}
|
|
|
38 |
return $this->_helper;
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
* Crée et sauvegarde les données de la transaction avec
|
43 |
-
*
|
44 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
45 |
* @return LaPoste_SoColissimoSimplicite_Model_Transaction
|
46 |
*/
|
@@ -52,19 +56,19 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
52 |
|
53 |
try {
|
54 |
$this->setQuoteId($shippingAddress->getQuoteId());
|
55 |
-
$this->save(); //1ère sauvegarde pour récupérer le transaction_id pour la signature
|
56 |
|
57 |
$this->setSignature($this->_getGeneratedSignature($shippingAddress));
|
58 |
$this->save();
|
59 |
-
|
60 |
} catch (Exception $e) {
|
61 |
throw new Exception($e);
|
62 |
}
|
|
|
63 |
return $this;
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* Génère la signature requise pour l'accès à la plateforme
|
68 |
*
|
69 |
* SPECIFICATIONS FOURNIES PAR LA POSTE :
|
70 |
*
|
@@ -82,88 +86,29 @@ class LaPoste_SoColissimoSimplicite_Model_Transaction extends Mage_Core_Model_Ab
|
|
82 |
* autorisé. L’internaute sera redirigé vers l'url retour Echec. Un code erreur sera
|
83 |
* transmis.
|
84 |
*
|
85 |
-
* Il s’agit d’appliquer l’algorithme SHA sur la concaténation des champs
|
86 |
-
*
|
87 |
*
|
88 |
-
* Certains des champs ci-
|
89 |
-
* par le
|
90 |
-
* signature.
|
91 |
* FIN SPECIFICATIONS
|
92 |
*
|
93 |
* @param LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod $method
|
94 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
95 |
-
* @todo when signature is calculated with strtolower($stringToConvert),
|
96 |
-
* access to colissimo is forbidden (error code 007 signature invalide)
|
97 |
* @return string signature de 160 bits (40 caractères)
|
98 |
*/
|
99 |
protected function _getGeneratedSignature($shippingAddress)
|
100 |
{
|
101 |
-
// transfer phone number only if its a cell phone
|
102 |
-
// Same code is used in form.phtml
|
103 |
-
$phone = $shippingAddress->getTelephone();
|
104 |
-
$phone = substr($phone, 0, 2);
|
105 |
-
if (($phone == '06') || ($phone == '07')) {
|
106 |
-
$phone = $shippingAddress->getTelephone();
|
107 |
-
} else {
|
108 |
-
$phone = '';
|
109 |
-
}
|
110 |
-
|
111 |
$stringToConvert = '';
|
112 |
|
113 |
-
|
114 |
-
|
115 |
-
'
|
116 |
-
'ceName'=>$shippingAddress->getLastname(),
|
117 |
-
'dyForwardingCharges'=>$this->helper()->getFormatedShippingPrice($shippingPrice),
|
118 |
-
'trClientNumber'=>$shippingAddress->getCustomerId(),
|
119 |
-
'trOrderNumber'=>$shippingAddress->getQuoteId(),
|
120 |
-
'orderId'=>$this->getId(),
|
121 |
-
'numVersion'=>$this->helper()->getNumVersion(),
|
122 |
-
'ceCivility'=>$this->helper()->getPrefixForSoColissimo($shippingAddress->getPrefix()),
|
123 |
-
'ceFirstName'=>$shippingAddress->getFirstname(),
|
124 |
-
'ceCompanyName'=>$shippingAddress->getCompany(),
|
125 |
-
'ceAdress1'=>$this->getShippingAddressStreet($shippingAddress, 2),
|
126 |
-
'ceAdress2'=>$this->getShippingAddressStreet($shippingAddress, 3),
|
127 |
-
'ceAdress3'=>$this->getShippingAddressStreet($shippingAddress, 1),
|
128 |
-
'ceAdress4'=>$this->getShippingAddressStreet($shippingAddress, 4),
|
129 |
-
'ceZipCode'=>$shippingAddress->getPostcode(),
|
130 |
-
'ceTown'=>$shippingAddress->getCity(),
|
131 |
-
'ceEmail'=>$shippingAddress->getEmail(),
|
132 |
-
'cePhoneNumber'=>$phone,
|
133 |
-
'trReturnUrlKo'=>$this->helper()->getFailureUrl(),
|
134 |
-
'trReturnUrlOk'=>$this->helper()->getSuccessUrl(),
|
135 |
-
'encryptionKey'=>$this->helper()->getEncryptionKey(),
|
136 |
-
);
|
137 |
-
|
138 |
-
// Ne renseigner le poids que s'il est supérieur à 0 (pour éviter un problème de signature invalide)
|
139 |
-
// On l'insère après cePhoneNumber, à la 19e position (la position est importante pour le calcul de la signature)
|
140 |
-
if ((float)$shippingAddress->getWeight() > 0) {
|
141 |
-
$calculatedWeight = $this->helper()->getFormatedWeight($shippingAddress->getWeight());
|
142 |
-
$data = array_slice($data, 0, 18, true) + array('dyWeight' => $calculatedWeight) + array_slice($data, 18, null, true);
|
143 |
-
}
|
144 |
-
|
145 |
-
foreach ($data as $field=>$value) {
|
146 |
-
if (!empty($value)) {
|
147 |
$stringToConvert .= utf8_decode($value);
|
148 |
}
|
149 |
}
|
150 |
|
151 |
return sha1($stringToConvert);
|
152 |
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Retourne la ligne n° $line des informations (rue, étage, immeuble, etc.) de l'adresse
|
156 |
-
* de livraison de la commande en cours.
|
157 |
-
* @param int $line
|
158 |
-
* @return string
|
159 |
-
*/
|
160 |
-
public function getShippingAddressStreet($shippingAddress, $line = 1)
|
161 |
-
{
|
162 |
-
$arrayStreet = $shippingAddress->getStreet();
|
163 |
-
$streetLine = '';
|
164 |
-
if (0 < $line && $line <= count($arrayStreet)) {
|
165 |
-
$streetLine = $arrayStreet[$line-1];
|
166 |
-
}
|
167 |
-
return $streetLine;
|
168 |
-
}
|
169 |
-
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Transaction entre Magento et 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_Model_Transaction extends Mage_Core_Model_Abstract
|
12 |
{
|
13 |
+
/**
|
14 |
+
* Module helper
|
15 |
+
*
|
16 |
+
* @var LaPoste_SoColissimoSimplicite_Helper_Data
|
17 |
+
*/
|
18 |
protected $_helper;
|
19 |
|
20 |
/**
|
21 |
* Constructeur par défaut
|
22 |
+
*
|
23 |
+
* @return void
|
24 |
*/
|
25 |
public function _construct()
|
26 |
{
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
+
* Retourne le helper principal du module
|
33 |
+
*
|
34 |
* @return LaPoste_SoColissimoSimplicite_Helper_Data
|
35 |
*/
|
36 |
public function helper()
|
38 |
if (is_null($this->_helper)) {
|
39 |
$this->_helper = Mage::helper('socolissimosimplicite');
|
40 |
}
|
41 |
+
|
42 |
return $this->_helper;
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
+
* Crée et sauvegarde les données de la transaction avec So Colissimo (avant l'accès à la plateforme)
|
47 |
+
*
|
48 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
49 |
* @return LaPoste_SoColissimoSimplicite_Model_Transaction
|
50 |
*/
|
56 |
|
57 |
try {
|
58 |
$this->setQuoteId($shippingAddress->getQuoteId());
|
59 |
+
$this->save(); // 1ère sauvegarde pour récupérer le transaction_id pour la signature
|
60 |
|
61 |
$this->setSignature($this->_getGeneratedSignature($shippingAddress));
|
62 |
$this->save();
|
|
|
63 |
} catch (Exception $e) {
|
64 |
throw new Exception($e);
|
65 |
}
|
66 |
+
|
67 |
return $this;
|
68 |
}
|
69 |
|
70 |
/**
|
71 |
+
* Génère la signature requise pour l'accès à la plateforme So Colissimo (front-office).
|
72 |
*
|
73 |
* SPECIFICATIONS FOURNIES PAR LA POSTE :
|
74 |
*
|
86 |
* autorisé. L’internaute sera redirigé vers l'url retour Echec. Un code erreur sera
|
87 |
* transmis.
|
88 |
*
|
89 |
+
* Il s’agit d’appliquer l’algorithme SHA sur la concaténation des champs composant
|
90 |
+
* la signature. La clé SHA doit être également concaténée à la fin de la chaîne.
|
91 |
*
|
92 |
+
* Certains des champs ci-dessous ne sont pas obligatoires. S’ils ne sont pas transmis
|
93 |
+
* par le formulaire d'envoi des données à la plateforme, ils ne doivent pas être pris
|
94 |
+
* en compte dans le calcul de la signature.
|
95 |
* FIN SPECIFICATIONS
|
96 |
*
|
97 |
* @param LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod $method
|
98 |
* @param Mage_Sales_Model_Quote_Address $shippingAddress
|
|
|
|
|
99 |
* @return string signature de 160 bits (40 caractères)
|
100 |
*/
|
101 |
protected function _getGeneratedSignature($shippingAddress)
|
102 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
$stringToConvert = '';
|
104 |
|
105 |
+
foreach ($this->helper()->getFieldsToSend($this->getId(), $shippingAddress) as $value) {
|
106 |
+
// on ignore les champs vides (pas obligatoire mais cela permet d'envoyer moins de données dans le form)
|
107 |
+
if ($value !== null && $value !== '' && $value !== false) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
$stringToConvert .= utf8_decode($value);
|
109 |
}
|
110 |
}
|
111 |
|
112 |
return sha1($stringToConvert);
|
113 |
}
|
114 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/LaPoste/SoColissimoSimplicite/Test/Model/Carrier/ShippingMethodTest.php
CHANGED
@@ -2,34 +2,36 @@
|
|
2 |
require_once 'PHPUnit/Framework.php';
|
3 |
require_once 'app/Mage.php';
|
4 |
/**
|
5 |
-
*
|
6 |
*
|
7 |
-
* @category
|
8 |
-
* @package
|
9 |
-
* @
|
10 |
-
* @author
|
|
|
11 |
*/
|
12 |
class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extends PHPUnit_Framework_TestCase
|
13 |
{
|
14 |
-
|
15 |
private $_setup;
|
16 |
|
17 |
/**
|
18 |
-
*
|
|
|
|
|
19 |
*/
|
20 |
public function __construct()
|
21 |
{
|
22 |
Mage::app('default');
|
23 |
-
//
|
24 |
if (version_compare(Mage::getVersion(), '1.3.2.4', '>')) {
|
25 |
$this->_setup = Mage::getModel('core/resource_setup');
|
26 |
-
} else {
|
27 |
-
// TODO: how to initialize setup for v1.3 ?
|
28 |
}
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
-
*
|
|
|
|
|
33 |
*/
|
34 |
public function setUp()
|
35 |
{
|
@@ -47,14 +49,14 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
47 |
$this->setConfigData('carriers/socolissimosimplicite/sallowspecific', '1');
|
48 |
$this->setConfigData('carriers/socolissimosimplicite/specificcountry', 'FR');
|
49 |
$this->setConfigData('carriers/socolissimosimplicite/sort_order', '1');
|
50 |
-
|
51 |
-
// Mage::app('default')->cleanCache();
|
52 |
-
// Mage::app('default')->getStore()->resetConfig();
|
53 |
-
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
*
|
|
|
|
|
|
|
|
|
58 |
*/
|
59 |
private function setConfigData($path, $value)
|
60 |
{
|
@@ -62,16 +64,17 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Test
|
|
|
|
|
66 |
*/
|
67 |
public function testCollectRatesPerAmount()
|
68 |
{
|
69 |
-
// set up per_amount
|
70 |
$this->setConfigData('carriers/socolissimosimplicite/minquotepriceforfree', '200');
|
71 |
$this->setConfigData('carriers/socolissimosimplicite/amountbasetype', 'per_amount');
|
72 |
$this->setConfigData('carriers/socolissimosimplicite/amountcalculation', '{"0":"3","50":"5","100":"8","250":"0"}');
|
73 |
|
74 |
-
//
|
75 |
$total = 35.99;
|
76 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
77 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -85,7 +88,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
85 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
86 |
$this->assertEquals($rate->getData('price'), 3);
|
87 |
|
88 |
-
// 50€ <
|
89 |
$total = 99.99;
|
90 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
91 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -99,7 +102,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
99 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
100 |
$this->assertEquals($rate->getData('price'), 5);
|
101 |
|
102 |
-
// 100€ <
|
103 |
$total = 125.99;
|
104 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
105 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -113,7 +116,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
113 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
114 |
$this->assertEquals($rate->getData('price'), 8);
|
115 |
|
116 |
-
// 250€ <
|
117 |
$total = 250.01;
|
118 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
119 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -127,7 +130,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
127 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
128 |
$this->assertEquals($rate->getData('price'), 0);
|
129 |
|
130 |
-
//
|
131 |
$total = 115.50;
|
132 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
133 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -141,7 +144,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
141 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
142 |
$this->assertEquals($rate->getData('price'), 8);
|
143 |
|
144 |
-
//
|
145 |
$total = 201;
|
146 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
147 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -155,7 +158,7 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
155 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
156 |
$this->assertEquals($rate->getData('price'), 0);
|
157 |
|
158 |
-
//
|
159 |
$total = 25;
|
160 |
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
161 |
$request = new Mage_Shipping_Model_Rate_Request();
|
@@ -169,34 +172,4 @@ class LaPoste_SoColissimoSimplicite_Test_Model_Carrier_ShippingMethodTest extend
|
|
169 |
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
170 |
$this->assertEquals($rate->getData('price'), 0);
|
171 |
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* Test collect rates method
|
175 |
-
* TODO: set up problem to fix !!
|
176 |
-
*
|
177 |
-
public function testCollectRatesPerWeight()
|
178 |
-
{
|
179 |
-
// set up per_amount
|
180 |
-
$this->setConfigData('carriers/socolissimosimplicite/minquotepriceforfree', '200');
|
181 |
-
$this->setConfigData('carriers/socolissimosimplicite/amountbasetype', 'per_weight');
|
182 |
-
$this->setConfigData('carriers/socolissimosimplicite/amountcalculation', '{"0":"2.90","0.5":"4.50","5":"8","10":"14"}');
|
183 |
-
//Mage::app('default')->cleanCache();
|
184 |
-
|
185 |
-
// price < 0.5Kg -> 2.90€
|
186 |
-
$weight = 0.3;
|
187 |
-
$total = 35.99;
|
188 |
-
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('subtotal', $total);
|
189 |
-
Mage::getModel('checkout/cart')->getQuote()->getShippingAddress()->setData('weight', $weight);
|
190 |
-
$request = new Mage_Shipping_Model_Rate_Request();
|
191 |
-
$request->setData(array('package_value_with_discount' => $total));
|
192 |
-
$carrier = new LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod();
|
193 |
-
$result = $carrier->collectRates($request);
|
194 |
-
$rates = $result->getAllRates();
|
195 |
-
$this->assertEquals(count($rates), 1);
|
196 |
-
$rate = current($rates);
|
197 |
-
$this->assertNotNull($rate);
|
198 |
-
$this->assertEquals($rate->getData('carrier'), 'socolissimosimplicite');
|
199 |
-
$this->assertEquals($rate->getData('price'), 2.90);
|
200 |
-
}*/
|
201 |
-
|
202 |
}
|
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 |
{
|
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 |
{
|
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();
|
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();
|
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();
|
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();
|
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();
|
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();
|
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();
|
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
@@ -1,32 +1,36 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
-
*/
|
11 |
-
/**
|
12 |
-
* Contrôleur pour les échanges avec l'interface SO Colissimo en front office.
|
13 |
*/
|
14 |
class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_Front_Action
|
15 |
{
|
16 |
/**
|
17 |
-
* Soumet le formulaire pour l'accès à
|
|
|
18 |
* @todo check postal code and country before send (only France, Monaco et Andorre)
|
|
|
19 |
*/
|
20 |
public function sendAction()
|
21 |
{
|
|
|
22 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
23 |
|
24 |
-
// vérifier la disponibilité de la plateforme, si ce n'est pas le cas,
|
25 |
-
// sélectionner la livraison à domicile et passer à l'étape suivante
|
26 |
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
27 |
-
$serviceUnavailableRedirect = null;
|
28 |
$helper = Mage::helper('socolissimosimplicite');
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
$serviceAvailable = $helper->checkServiceAvailability();
|
31 |
// passer à l'étape suivante avec le mode livraison à domicile
|
32 |
if (!$serviceAvailable) {
|
@@ -35,22 +39,24 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
35 |
}
|
36 |
}
|
37 |
|
38 |
-
//récupération de l'adresse de livraison de la commande en cours
|
39 |
$shippingAddress = $this->getShippingAddress();
|
40 |
|
41 |
-
//
|
42 |
-
|
|
|
|
|
|
|
43 |
$shippingAddress->setCollectShippingRates(true);
|
44 |
$shippingAddress->collectShippingRates();
|
45 |
|
46 |
-
//création d'une nouvelle transaction à partir de l'adresse de livraison.
|
47 |
-
$transaction = Mage::getModel('socolissimosimplicite/transaction')
|
48 |
-
->create($shippingAddress);
|
49 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_transactionid', $transaction->getId());
|
50 |
|
51 |
$this->loadLayout();
|
52 |
|
53 |
-
//passage de données à la vue
|
54 |
$this->getLayout()->getBlock('form.socolissimosimplicite')
|
55 |
->setShippingAddress($shippingAddress)
|
56 |
->setTransaction($transaction)
|
@@ -60,20 +66,24 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
-
* Succès suite au retour de
|
|
|
64 |
* @todo use TRPARAMPLUS to pass / get "payment" ?
|
65 |
* @todo deal with "error code" on validation (data truncation and others)
|
|
|
66 |
*/
|
67 |
public function successAction()
|
68 |
{
|
69 |
-
|
70 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
|
|
|
|
71 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
72 |
|
73 |
// si l'adresse de livraison a changée, mettre à jour la signature
|
74 |
$this->_updateSignature();
|
75 |
|
76 |
-
// sauvegarde des données retournées par
|
77 |
$this->_saveSoColissimoData($checkoutSession);
|
78 |
|
79 |
// sauvegarde de l'étape suivante en session
|
@@ -83,12 +93,18 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Échec lors de la soumission du formulaire d'accès à
|
|
|
|
|
87 |
*/
|
88 |
public function failureAction()
|
89 |
{
|
90 |
-
|
|
|
|
|
91 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
|
|
|
|
92 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
93 |
|
94 |
// sauvegarde de l'étape suivante en session (choix de la méthode de livraison)
|
@@ -96,7 +112,6 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
96 |
|
97 |
// récupérer le code erreur et afficher le message correspondant
|
98 |
$errCode = trim($this->getRequest()->getPost('ERRORCODE'));
|
99 |
-
$helper = Mage::helper('socolissimosimplicite');
|
100 |
$errCodeToLabel = array(
|
101 |
'001' => $helper->__('Identifiant FO manquant'),
|
102 |
'002' => $helper->__('Identifiant FO incorrect'),
|
@@ -112,32 +127,40 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
112 |
'015' => $helper->__('Serveur applicatif non disponible'),
|
113 |
'016' => $helper->__('SGBD non disponible')
|
114 |
);
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
} else {
|
119 |
-
$msg = $helper->__('Erreur non identifiée');
|
120 |
-
}
|
121 |
$checkoutSession->addError($msg);
|
|
|
122 |
$this->_redirect('checkout/cart');
|
123 |
-
return;
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
-
* Retourne l'adresse de livraison de la commande en cours
|
128 |
-
*
|
|
|
129 |
* @return Mage_Sales_Model_Quote_Address
|
130 |
*/
|
131 |
public function getShippingAddress($quoteId = false)
|
132 |
{
|
133 |
-
|
134 |
-
->getQuote()->getShippingAddress();
|
135 |
-
return $shippingAddress;
|
136 |
}
|
137 |
|
138 |
/**
|
139 |
-
*
|
140 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
*/
|
142 |
protected function _updateSignature()
|
143 |
{
|
@@ -146,10 +169,12 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
146 |
if (empty($newSignature)) {
|
147 |
throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la signature retournée par colissimo est vide"));
|
148 |
}
|
|
|
149 |
$transactionId = $this->getRequest()->getParam('ORDERID');
|
150 |
$transactions = Mage::getModel('socolissimosimplicite/transaction')
|
151 |
->getCollection()
|
152 |
->addFieldToFilter('transaction_id', $transactionId);
|
|
|
153 |
// transaction inexistante
|
154 |
if ($transactions->getSize() == 0) {
|
155 |
throw new Exception(Mage::helper('socolissimosimplicite')->__("SoColissimo : la transaction avec colissimo (id=".$transactionId.") n'est pas valide car inconnue de Magento"));
|
@@ -164,9 +189,11 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Enregistre les données retournées par
|
168 |
-
* afin de mettre à jour les données de livraison ultérieurement
|
|
|
169 |
* @param Mage_Checkout_Model_Session $checkoutSession
|
|
|
170 |
*/
|
171 |
protected function _saveSoColissimoData($checkoutSession)
|
172 |
{
|
@@ -182,6 +209,7 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
182 |
'SIGNATURE',
|
183 |
)
|
184 |
);
|
|
|
185 |
$shippingData = array_diff_key($allParams, $paramKeysToNotSave);
|
186 |
$checkoutSession->setData('socolissimosimplicite_shipping_data', $shippingData);
|
187 |
|
@@ -192,4 +220,4 @@ class LaPoste_SoColissimoSimplicite_FormController extends Mage_Core_Controller_
|
|
192 |
// indique que l'adresse vient de socolissimo
|
193 |
$checkoutSession->setData('socolissimosimplicite_new_address_from_socolissimo', true);
|
194 |
}
|
195 |
-
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Contrôleur pour les échanges avec l'interface So Colissimo en front office.
|
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_FormController extends Mage_Core_Controller_Front_Action
|
12 |
{
|
13 |
/**
|
14 |
+
* Soumet le formulaire pour l'accès à So Colissimo
|
15 |
+
*
|
16 |
* @todo check postal code and country before send (only France, Monaco et Andorre)
|
17 |
+
* @return void
|
18 |
*/
|
19 |
public function sendAction()
|
20 |
{
|
21 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
22 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
23 |
|
|
|
|
|
24 |
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
|
|
25 |
$helper = Mage::helper('socolissimosimplicite');
|
26 |
+
|
27 |
+
// nettoyer la session
|
28 |
+
$helper->clearCheckoutSession(false);
|
29 |
+
|
30 |
+
// vérifier la disponibilité de la plateforme, si ce n'est pas le cas
|
31 |
+
// sélectionner la livraison à domicile et passer à l'étape suivante
|
32 |
+
$serviceUnavailableRedirect = null;
|
33 |
+
if ($helper->getServiceIsAvailable() && $helper->getServiceIsAvailableUrl() != '') {
|
34 |
$serviceAvailable = $helper->checkServiceAvailability();
|
35 |
// passer à l'étape suivante avec le mode livraison à domicile
|
36 |
if (!$serviceAvailable) {
|
39 |
}
|
40 |
}
|
41 |
|
42 |
+
// récupération de l'adresse de livraison de la commande en cours
|
43 |
$shippingAddress = $this->getShippingAddress();
|
44 |
|
45 |
+
// sauvegarde des adressses choisies dans la session car les données seront réinitialisées au rechargement du tunnel
|
46 |
+
$checkoutSession->setData('socolissimosimplicite_shipping_address', $shippingAddress->getData());
|
47 |
+
$checkoutSession->setData('socolissimosimplicite_billing_address', $this->getBillingAddress()->getData());
|
48 |
+
|
49 |
+
// on relance le calcul du prix de livraison pour gérer le cas du du retour en arrière et du choix du mode classique
|
50 |
$shippingAddress->setCollectShippingRates(true);
|
51 |
$shippingAddress->collectShippingRates();
|
52 |
|
53 |
+
// création d'une nouvelle transaction à partir de l'adresse de livraison.
|
54 |
+
$transaction = Mage::getModel('socolissimosimplicite/transaction')->create($shippingAddress);
|
|
|
55 |
$checkoutSession->setData('socolissimosimplicite_checkout_onepage_transactionid', $transaction->getId());
|
56 |
|
57 |
$this->loadLayout();
|
58 |
|
59 |
+
// passage de données à la vue
|
60 |
$this->getLayout()->getBlock('form.socolissimosimplicite')
|
61 |
->setShippingAddress($shippingAddress)
|
62 |
->setTransaction($transaction)
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Succès suite au retour de So Colissimo
|
70 |
+
*
|
71 |
* @todo use TRPARAMPLUS to pass / get "payment" ?
|
72 |
* @todo deal with "error code" on validation (data truncation and others)
|
73 |
+
* @return void
|
74 |
*/
|
75 |
public function successAction()
|
76 |
{
|
77 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
78 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
79 |
+
|
80 |
+
// permettre de revenir en arrière pour change le mode de livraison
|
81 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
82 |
|
83 |
// si l'adresse de livraison a changée, mettre à jour la signature
|
84 |
$this->_updateSignature();
|
85 |
|
86 |
+
// sauvegarde des données retournées par So Colissimo en session (choix du mode de paiement)
|
87 |
$this->_saveSoColissimoData($checkoutSession);
|
88 |
|
89 |
// sauvegarde de l'étape suivante en session
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
+
* Échec lors de la soumission du formulaire d'accès à So Colissimo
|
97 |
+
*
|
98 |
+
* @return void
|
99 |
*/
|
100 |
public function failureAction()
|
101 |
{
|
102 |
+
/* @var $helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
103 |
+
$helper = Mage::helper('socolissimosimplicite');
|
104 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
105 |
$checkoutSession = Mage::getSingleton('checkout/session');
|
106 |
+
|
107 |
+
// permettre de revenir en arrière pour change le mode de livraison
|
108 |
$checkoutSession->unsetData('socolissimosimplicite_from_socolissimo');
|
109 |
|
110 |
// sauvegarde de l'étape suivante en session (choix de la méthode de livraison)
|
112 |
|
113 |
// récupérer le code erreur et afficher le message correspondant
|
114 |
$errCode = trim($this->getRequest()->getPost('ERRORCODE'));
|
|
|
115 |
$errCodeToLabel = array(
|
116 |
'001' => $helper->__('Identifiant FO manquant'),
|
117 |
'002' => $helper->__('Identifiant FO incorrect'),
|
127 |
'015' => $helper->__('Serveur applicatif non disponible'),
|
128 |
'016' => $helper->__('SGBD non disponible')
|
129 |
);
|
130 |
+
|
131 |
+
// ajout d'un message d'erreur dans la session du tunnel de commande
|
132 |
+
$msg = array_key_exists($errCode, $errCodeToLabel) ? $errCodeToLabel[$errCode] : $helper->__('Erreur non identifiée');
|
|
|
|
|
|
|
133 |
$checkoutSession->addError($msg);
|
134 |
+
|
135 |
$this->_redirect('checkout/cart');
|
|
|
136 |
}
|
137 |
|
138 |
/**
|
139 |
+
* Retourne l'adresse de livraison de la commande en cours
|
140 |
+
*
|
141 |
+
* @param string $quoteId
|
142 |
* @return Mage_Sales_Model_Quote_Address
|
143 |
*/
|
144 |
public function getShippingAddress($quoteId = false)
|
145 |
{
|
146 |
+
return Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
|
|
|
|
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
+
* Retourne l'adresse de facturation de la commande en cours
|
151 |
+
*
|
152 |
+
* @param string $quoteId
|
153 |
+
* @return Mage_Sales_Model_Quote_Address
|
154 |
+
*/
|
155 |
+
public function getBillingAddress($quoteId = false)
|
156 |
+
{
|
157 |
+
return Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress();
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Vérifie si la signature a changée (ie l'adresse de livraison a changée), dans ce cas mettre à jour la signature
|
162 |
+
*
|
163 |
+
* @return void
|
164 |
*/
|
165 |
protected function _updateSignature()
|
166 |
{
|
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');
|
174 |
$transactions = Mage::getModel('socolissimosimplicite/transaction')
|
175 |
->getCollection()
|
176 |
->addFieldToFilter('transaction_id', $transactionId);
|
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"));
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
+
* Enregistre les données retournées par So Colissimo en session,
|
193 |
+
* afin de mettre à jour les données de livraison ultérieurement
|
194 |
+
*
|
195 |
* @param Mage_Checkout_Model_Session $checkoutSession
|
196 |
+
* @return void
|
197 |
*/
|
198 |
protected function _saveSoColissimoData($checkoutSession)
|
199 |
{
|
209 |
'SIGNATURE',
|
210 |
)
|
211 |
);
|
212 |
+
|
213 |
$shippingData = array_diff_key($allParams, $paramKeysToNotSave);
|
214 |
$checkoutSession->setData('socolissimosimplicite_shipping_data', $shippingData);
|
215 |
|
220 |
// indique que l'adresse vient de socolissimo
|
221 |
$checkoutSession->setData('socolissimosimplicite_new_address_from_socolissimo', true);
|
222 |
}
|
223 |
+
}
|
app/code/community/LaPoste/SoColissimoSimplicite/controllers/OnepageController.php
DELETED
@@ -1,27 +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 |
-
* Surcharge du onepageController pour régler le bug des frais de livraison RDV en version 1.5 / 1.10
|
13 |
-
*/
|
14 |
-
require_once 'Mage/Checkout/controllers/OnepageController.php';
|
15 |
-
class LaPoste_SoColissimoSimplicite_OnepageController extends Mage_Checkout_OnepageController
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* Valorise un flag dans la session pour que la méthode ShippingMethod->getCalculatedPrice
|
19 |
-
* utilise les variables de session plutôt que celles du shipping_address
|
20 |
-
*/
|
21 |
-
public function savePaymentAction()
|
22 |
-
{
|
23 |
-
Mage::getSingleton('checkout/session')->setData('socolissimosimplicite_flag', true);
|
24 |
-
parent::savePaymentAction();
|
25 |
-
Mage::getSingleton('checkout/session')->setData('socolissimosimplicite_flag', false);
|
26 |
-
}
|
27 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/LaPoste/SoColissimoSimplicite/etc/config.xml
CHANGED
@@ -3,25 +3,25 @@
|
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
-
* @category
|
7 |
-
* @package
|
8 |
-
* @copyright
|
9 |
-
* @author
|
10 |
-
* @license
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<LaPoste_SoColissimoSimplicite>
|
16 |
-
<version>2.
|
17 |
</LaPoste_SoColissimoSimplicite>
|
18 |
</modules>
|
19 |
-
|
20 |
<global>
|
21 |
<blocks>
|
22 |
<socolissimosimplicite><class>LaPoste_SoColissimoSimplicite_Block</class></socolissimosimplicite>
|
23 |
</blocks>
|
24 |
-
|
25 |
<models>
|
26 |
<socolissimosimplicite>
|
27 |
<class>LaPoste_SoColissimoSimplicite_Model</class>
|
@@ -36,14 +36,14 @@
|
|
36 |
</transaction>
|
37 |
</entities>
|
38 |
</socolissimosimplicite_mysql4>
|
39 |
-
</models>
|
40 |
-
|
41 |
<helpers>
|
42 |
<socolissimosimplicite>
|
43 |
<class>LaPoste_SoColissimoSimplicite_Helper</class>
|
44 |
</socolissimosimplicite>
|
45 |
</helpers>
|
46 |
-
|
47 |
<resources>
|
48 |
<socolissimosimplicite_setup>
|
49 |
<setup>
|
@@ -54,20 +54,20 @@
|
|
54 |
<use>core_setup</use>
|
55 |
</connection>
|
56 |
</socolissimosimplicite_setup>
|
57 |
-
|
58 |
<socolissimosimplicite_read>
|
59 |
<connection>
|
60 |
<use>core_read</use>
|
61 |
</connection>
|
62 |
</socolissimosimplicite_read>
|
63 |
-
|
64 |
<socolissimosimplicite_write>
|
65 |
<connection>
|
66 |
<use>core_write</use>
|
67 |
</connection>
|
68 |
</socolissimosimplicite_write>
|
69 |
</resources>
|
70 |
-
|
71 |
<translate>
|
72 |
<modules>
|
73 |
<LaPoste_SoColissimoSimplicite>
|
@@ -77,16 +77,14 @@
|
|
77 |
</LaPoste_SoColissimoSimplicite>
|
78 |
</modules>
|
79 |
</translate>
|
80 |
-
|
81 |
-
<rewrite>
|
82 |
-
<socolissimosimplicite_onepage>
|
83 |
-
<from><![CDATA[#^/checkout/onepage/savePayment#]]></from>
|
84 |
-
<to>socolissimosimplicite/onepage/savePayment</to>
|
85 |
-
</socolissimosimplicite_onepage>
|
86 |
-
</rewrite>
|
87 |
</global>
|
88 |
-
|
89 |
<frontend>
|
|
|
|
|
|
|
|
|
|
|
90 |
<layout>
|
91 |
<updates>
|
92 |
<socolissimosimplicite module="LaPoste_SoColissimoSimplicite">
|
@@ -94,7 +92,7 @@
|
|
94 |
</socolissimosimplicite>
|
95 |
</updates>
|
96 |
</layout>
|
97 |
-
|
98 |
<routers>
|
99 |
<socolissimosimplicite>
|
100 |
<use>standard</use>
|
@@ -104,7 +102,7 @@
|
|
104 |
</args>
|
105 |
</socolissimosimplicite>
|
106 |
</routers>
|
107 |
-
|
108 |
<events>
|
109 |
<controller_action_layout_load_before>
|
110 |
<observers>
|
@@ -135,14 +133,18 @@
|
|
135 |
</checkout_type_onepage_save_order>
|
136 |
</events>
|
137 |
</frontend>
|
138 |
-
|
139 |
<default>
|
140 |
<carriers>
|
141 |
<socolissimosimplicite>
|
142 |
<active>0</active>
|
143 |
<title>La Poste</title>
|
144 |
<name>So Colissimo</name>
|
145 |
-
<
|
|
|
|
|
|
|
|
|
146 |
<redirectmessage>Vous allez voir apparaitre les options So Colissimo dans un instant...</redirectmessage>
|
147 |
<account></account>
|
148 |
<encryption_key></encryption_key>
|
@@ -150,10 +152,13 @@
|
|
150 |
<active_service_is_available>1</active_service_is_available>
|
151 |
<url_service_is_available>http://ws.colissimo.fr/supervision-pudo-frame/supervision.jsp</url_service_is_available>
|
152 |
<not_available_message>La plateforme technique So Colissimo est temporairement indisponible. Votre commande sera livrée à l'adresse de livraison que vous venez d'indiquer.</not_available_message>
|
|
|
|
|
153 |
<max_weight>30</max_weight>
|
154 |
<specificcountry>FR</specificcountry>
|
155 |
<sallowspecific>1</sallowspecific>
|
156 |
-
<model>LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod</model>
|
|
|
157 |
<mapprefix>
|
158 |
<![CDATA[
|
159 |
{
|
@@ -163,6 +168,42 @@
|
|
163 |
}
|
164 |
]]>
|
165 |
</mapprefix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
</socolissimosimplicite>
|
167 |
</carriers>
|
168 |
</default>
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
+
* @category LaPoste
|
7 |
+
* @package LaPoste_SoColissimoSimplicite
|
8 |
+
* @copyright Copyright (c) 2010 La Poste
|
9 |
+
* @author Smile (http://www.smile.fr)
|
10 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<LaPoste_SoColissimoSimplicite>
|
16 |
+
<version>2.2.0</version>
|
17 |
</LaPoste_SoColissimoSimplicite>
|
18 |
</modules>
|
19 |
+
|
20 |
<global>
|
21 |
<blocks>
|
22 |
<socolissimosimplicite><class>LaPoste_SoColissimoSimplicite_Block</class></socolissimosimplicite>
|
23 |
</blocks>
|
24 |
+
|
25 |
<models>
|
26 |
<socolissimosimplicite>
|
27 |
<class>LaPoste_SoColissimoSimplicite_Model</class>
|
36 |
</transaction>
|
37 |
</entities>
|
38 |
</socolissimosimplicite_mysql4>
|
39 |
+
</models>
|
40 |
+
|
41 |
<helpers>
|
42 |
<socolissimosimplicite>
|
43 |
<class>LaPoste_SoColissimoSimplicite_Helper</class>
|
44 |
</socolissimosimplicite>
|
45 |
</helpers>
|
46 |
+
|
47 |
<resources>
|
48 |
<socolissimosimplicite_setup>
|
49 |
<setup>
|
54 |
<use>core_setup</use>
|
55 |
</connection>
|
56 |
</socolissimosimplicite_setup>
|
57 |
+
|
58 |
<socolissimosimplicite_read>
|
59 |
<connection>
|
60 |
<use>core_read</use>
|
61 |
</connection>
|
62 |
</socolissimosimplicite_read>
|
63 |
+
|
64 |
<socolissimosimplicite_write>
|
65 |
<connection>
|
66 |
<use>core_write</use>
|
67 |
</connection>
|
68 |
</socolissimosimplicite_write>
|
69 |
</resources>
|
70 |
+
|
71 |
<translate>
|
72 |
<modules>
|
73 |
<LaPoste_SoColissimoSimplicite>
|
77 |
</LaPoste_SoColissimoSimplicite>
|
78 |
</modules>
|
79 |
</translate>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
</global>
|
81 |
+
|
82 |
<frontend>
|
83 |
+
<!-- à décommenter pour les sites utilisant un tunnel de commande https -->
|
84 |
+
<!--<secure_url>
|
85 |
+
<socolissimosimplicite>/socolissimosimplicite/</socolissimosimplicite>
|
86 |
+
</secure_url>-->
|
87 |
+
|
88 |
<layout>
|
89 |
<updates>
|
90 |
<socolissimosimplicite module="LaPoste_SoColissimoSimplicite">
|
92 |
</socolissimosimplicite>
|
93 |
</updates>
|
94 |
</layout>
|
95 |
+
|
96 |
<routers>
|
97 |
<socolissimosimplicite>
|
98 |
<use>standard</use>
|
102 |
</args>
|
103 |
</socolissimosimplicite>
|
104 |
</routers>
|
105 |
+
|
106 |
<events>
|
107 |
<controller_action_layout_load_before>
|
108 |
<observers>
|
133 |
</checkout_type_onepage_save_order>
|
134 |
</events>
|
135 |
</frontend>
|
136 |
+
|
137 |
<default>
|
138 |
<carriers>
|
139 |
<socolissimosimplicite>
|
140 |
<active>0</active>
|
141 |
<title>La Poste</title>
|
142 |
<name>So Colissimo</name>
|
143 |
+
<name_home>So Colissimo</name_home>
|
144 |
+
<name_appointment>So Colissimo - Sur rendez-vous</name_appointment>
|
145 |
+
<name_pickup>So Colissimo - Point retrait</name_pickup>
|
146 |
+
<name_post_office>So Colissimo - Point retrait</name_post_office>
|
147 |
+
<selectmessage>Avec So Colissimo, choisissez votre mode de livraison préféré !</selectmessage>
|
148 |
<redirectmessage>Vous allez voir apparaitre les options So Colissimo dans un instant...</redirectmessage>
|
149 |
<account></account>
|
150 |
<encryption_key></encryption_key>
|
152 |
<active_service_is_available>1</active_service_is_available>
|
153 |
<url_service_is_available>http://ws.colissimo.fr/supervision-pudo-frame/supervision.jsp</url_service_is_available>
|
154 |
<not_available_message>La plateforme technique So Colissimo est temporairement indisponible. Votre commande sera livrée à l'adresse de livraison que vous venez d'indiquer.</not_available_message>
|
155 |
+
<amountbasetype>fixed</amountbasetype>
|
156 |
+
<amountbasetype_pickup>fixed</amountbasetype_pickup>
|
157 |
<max_weight>30</max_weight>
|
158 |
<specificcountry>FR</specificcountry>
|
159 |
<sallowspecific>1</sallowspecific>
|
160 |
+
<model>LaPoste_SoColissimoSimplicite_Model_Carrier_ShippingMethod</model>
|
161 |
+
<!-- association entre les civilités utilisées dans Magento et celles utilisées dans So Colissimo -->
|
162 |
<mapprefix>
|
163 |
<![CDATA[
|
164 |
{
|
168 |
}
|
169 |
]]>
|
170 |
</mapprefix>
|
171 |
+
<!-- langues disponibles dans l'interface So Colissimo -->
|
172 |
+
<!-- l'IFrame So Colissimo utilisera la même langue que Magento si celle-ci fait partie de la liste ci-dessous -->
|
173 |
+
<!-- n'intégrer dans cette liste que les langues connues de So Colissimo (pour l'instant, uniquement le français) -->
|
174 |
+
<available_languages>
|
175 |
+
<FR/>
|
176 |
+
</available_languages>
|
177 |
+
<!-- actions et contrôleurs où il y a recalcul des frais d'expédition après l'utilisation de l'IFrame -->
|
178 |
+
<shipping_price_calculations>
|
179 |
+
<onepage_index>
|
180 |
+
<controller>onepage</controller>
|
181 |
+
<action>index</action>
|
182 |
+
</onepage_index>
|
183 |
+
<onepage_payment>
|
184 |
+
<controller>onepage</controller>
|
185 |
+
<action>savePayment</action>
|
186 |
+
</onepage_payment>
|
187 |
+
<onepage_order>
|
188 |
+
<controller>onepage</controller>
|
189 |
+
<action>saveOrder</action>
|
190 |
+
</onepage_order>
|
191 |
+
</shipping_price_calculations>
|
192 |
+
<!-- url vers laquelle l'internaute est redirigé lors d'une erreur -->
|
193 |
+
<redirect_url_on_error>checkout/onepage</redirect_url_on_error>
|
194 |
+
<!-- codes des points de retrait commerçants (utilisé pour détecter si l'internaute en a sélectionné un) -->
|
195 |
+
<pickup_codes>
|
196 |
+
<A2P /> <!-- FR -->
|
197 |
+
<CMT /> <!-- BE -->
|
198 |
+
</pickup_codes>
|
199 |
+
<!-- codes des points de retrait de type bureau de poste (idem) -->
|
200 |
+
<post_office_codes>
|
201 |
+
<BPR /> <!-- FR -->
|
202 |
+
<CIT /> <!-- BE -->
|
203 |
+
<ACP /> <!-- BE -->
|
204 |
+
<CDI /> <!-- BE -->
|
205 |
+
<BDP /> <!-- BE -->
|
206 |
+
</post_office_codes>
|
207 |
</socolissimosimplicite>
|
208 |
</carriers>
|
209 |
</default>
|
app/code/community/LaPoste/SoColissimoSimplicite/etc/system.xml
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
-
* @category
|
7 |
-
* @package
|
8 |
-
* @copyright
|
9 |
* @author Smile (http://www.smile.fr)
|
10 |
-
* @license
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
@@ -38,17 +38,70 @@
|
|
38 |
<show_in_website>1</show_in_website>
|
39 |
<show_in_store>1</show_in_store>
|
40 |
</title>
|
41 |
-
<name translate="label">
|
42 |
<label>Nom du mode de livraison</label>
|
43 |
<sort_order>30</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 |
</name>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
<selectmessage translate="label">
|
49 |
<label>Message lors de la sélection du mode de livraison</label>
|
50 |
<frontend_type>textarea</frontend_type>
|
51 |
-
<sort_order>
|
52 |
<show_in_default>1</show_in_default>
|
53 |
<show_in_website>1</show_in_website>
|
54 |
<show_in_store>1</show_in_store>
|
@@ -56,14 +109,14 @@
|
|
56 |
<redirectmessage translate="label">
|
57 |
<label>Message lors de la redirection vers So Colissimo</label>
|
58 |
<frontend_type>textarea</frontend_type>
|
59 |
-
<sort_order>
|
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 |
</redirectmessage>
|
64 |
<account translate="label">
|
65 |
<label>Identifiant FO</label>
|
66 |
-
<sort_order>
|
67 |
<show_in_default>1</show_in_default>
|
68 |
<show_in_website>1</show_in_website>
|
69 |
<show_in_store>1</show_in_store>
|
@@ -71,14 +124,14 @@
|
|
71 |
<encryption_key translate="label">
|
72 |
<label>Clé de cryptage</label>
|
73 |
<frontend_type>text</frontend_type>
|
74 |
-
<sort_order>
|
75 |
<show_in_default>1</show_in_default>
|
76 |
<show_in_website>1</show_in_website>
|
77 |
<show_in_store>1</show_in_store>
|
78 |
</encryption_key>
|
79 |
<url_fo translate="label">
|
80 |
<label>URL de passerelle</label>
|
81 |
-
<sort_order>
|
82 |
<show_in_default>1</show_in_default>
|
83 |
<show_in_website>1</show_in_website>
|
84 |
<show_in_store>1</show_in_store>
|
@@ -88,14 +141,14 @@
|
|
88 |
<label>Activer la vérification de la disponibilité</label>
|
89 |
<frontend_type>select</frontend_type>
|
90 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
91 |
-
<sort_order>
|
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 |
</active_service_is_available>
|
96 |
<url_service_is_available translate="label">
|
97 |
<label>URL de vérification de la disponibilité</label>
|
98 |
-
<sort_order>
|
99 |
<show_in_default>1</show_in_default>
|
100 |
<show_in_website>1</show_in_website>
|
101 |
<show_in_store>1</show_in_store>
|
@@ -103,7 +156,7 @@
|
|
103 |
<not_available_message translate="label">
|
104 |
<label>Message en cas d'indisponibilité de la plateforme</label>
|
105 |
<frontend_type>textarea</frontend_type>
|
106 |
-
<sort_order>
|
107 |
<show_in_default>1</show_in_default>
|
108 |
<show_in_website>1</show_in_website>
|
109 |
<show_in_store>1</show_in_store>
|
@@ -113,56 +166,93 @@
|
|
113 |
<frontend_type>select</frontend_type>
|
114 |
<source_model>socolissimosimplicite/system_config_source_shipping_amountbasetype
|
115 |
</source_model>
|
116 |
-
<sort_order>
|
117 |
<show_in_default>1</show_in_default>
|
118 |
<show_in_website>1</show_in_website>
|
119 |
<show_in_store>1</show_in_store>
|
120 |
</amountbasetype>
|
121 |
-
<amountcalculation translate="label">
|
122 |
<label>Calcul des frais de livraison</label>
|
123 |
<frontend_type>textarea</frontend_type>
|
124 |
-
<sort_order>
|
125 |
<show_in_default>1</show_in_default>
|
126 |
<show_in_website>1</show_in_website>
|
127 |
<show_in_store>1</show_in_store>
|
128 |
<comment>
|
129 |
<![CDATA[
|
|
|
130 |
Si <strong>tarif unique</strong>, indiquer le montant (sans devise) ;<br />
|
131 |
-
Si <strong>tarif selon le poids</strong>,
|
132 |
-
|
133 |
-
<code>{"</code>poids en kg<code>":"</code>tarif1<code>","</code>poids en kg<code>":"</code>tarif2<code>",</code>...<code>}</code><br />
|
134 |
Le tarif est appliqué pour un poids supérieur ou égal au poids correspondant.<br />
|
135 |
-
Exemple de conditions tarifaires selon le poids
|
|
|
136 |
Si <strong>tarif selon le sous-total du panier</strong>,
|
137 |
indiquer :<br />
|
138 |
-
|
139 |
Le tarif est appliqué pour un montant supérieur ou égal au montant correspondant.<br />
|
140 |
-
Exemple de conditions tarifaires selon le montant
|
|
|
141 |
]]>
|
142 |
</comment>
|
143 |
</amountcalculation>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
<minquotepriceforfree translate="label">
|
145 |
<label>Livraison offerte à partir de (en €)</label>
|
146 |
-
<sort_order>
|
147 |
<show_in_default>1</show_in_default>
|
148 |
<show_in_website>1</show_in_website>
|
149 |
<show_in_store>1</show_in_store>
|
150 |
-
<comment>
|
|
|
|
|
|
|
151 |
</comment>
|
152 |
</minquotepriceforfree>
|
153 |
-
<
|
154 |
-
<label>
|
155 |
-
<sort_order>
|
156 |
<show_in_default>1</show_in_default>
|
157 |
<show_in_website>1</show_in_website>
|
158 |
<show_in_store>1</show_in_store>
|
159 |
-
<comment>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
</comment>
|
161 |
-
</
|
162 |
<min_order_total translate="label">
|
163 |
<label>Minimum Order Total</label>
|
164 |
<frontend_type>text</frontend_type>
|
165 |
-
<sort_order>
|
166 |
<show_in_default>1</show_in_default>
|
167 |
<show_in_website>1</show_in_website>
|
168 |
<show_in_store>1</show_in_store>
|
@@ -170,23 +260,27 @@
|
|
170 |
<max_order_total translate="label">
|
171 |
<label>Maximum Order Total</label>
|
172 |
<frontend_type>text</frontend_type>
|
173 |
-
<sort_order>
|
174 |
<show_in_default>1</show_in_default>
|
175 |
<show_in_website>1</show_in_website>
|
176 |
<show_in_store>1</show_in_store>
|
177 |
</max_order_total>
|
178 |
-
<
|
179 |
-
<label>
|
180 |
-
<
|
181 |
-
<sort_order>200</sort_order>
|
182 |
<show_in_default>1</show_in_default>
|
183 |
<show_in_website>1</show_in_website>
|
184 |
-
<show_in_store>
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
186 |
<sallowspecific translate="label">
|
187 |
<label>Ship to Applicable Countries</label>
|
188 |
<frontend_type>select</frontend_type>
|
189 |
-
<sort_order>
|
190 |
<frontend_class>shipping-applicable-country</frontend_class>
|
191 |
<source_model>adminhtml/system_config_source_shipping_allspecificcountries
|
192 |
</source_model>
|
@@ -194,18 +288,30 @@
|
|
194 |
<show_in_website>1</show_in_website>
|
195 |
<show_in_store>0</show_in_store>
|
196 |
</sallowspecific>
|
197 |
-
<specificcountry translate="label">
|
198 |
<label>Ship to Specific Countries</label>
|
199 |
<frontend_type>multiselect</frontend_type>
|
200 |
-
<sort_order>
|
201 |
<source_model>adminhtml/system_config_source_country
|
202 |
</source_model>
|
203 |
<show_in_default>1</show_in_default>
|
204 |
<show_in_website>1</show_in_website>
|
205 |
<show_in_store>0</show_in_store>
|
|
|
|
|
|
|
|
|
|
|
206 |
<can_be_empty>1</can_be_empty>
|
207 |
</specificcountry>
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
</fields>
|
210 |
</socolissimosimplicite>
|
211 |
</groups>
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
+
* @category LaPoste
|
7 |
+
* @package LaPoste_SoColissimoSimplicite
|
8 |
+
* @copyright Copyright (c) 2010 La Poste
|
9 |
* @author Smile (http://www.smile.fr)
|
10 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
38 |
<show_in_website>1</show_in_website>
|
39 |
<show_in_store>1</show_in_store>
|
40 |
</title>
|
41 |
+
<name translate="label comment">
|
42 |
<label>Nom du mode de livraison</label>
|
43 |
<sort_order>30</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>
|
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>
|
55 |
+
<sort_order>40</sort_order>
|
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>
|
67 |
+
<sort_order>50</sort_order>
|
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>
|
79 |
+
<sort_order>60</sort_order>
|
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>
|
91 |
+
<sort_order>70</sort_order>
|
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>
|
103 |
<frontend_type>textarea</frontend_type>
|
104 |
+
<sort_order>80</sort_order>
|
105 |
<show_in_default>1</show_in_default>
|
106 |
<show_in_website>1</show_in_website>
|
107 |
<show_in_store>1</show_in_store>
|
109 |
<redirectmessage translate="label">
|
110 |
<label>Message lors de la redirection vers So Colissimo</label>
|
111 |
<frontend_type>textarea</frontend_type>
|
112 |
+
<sort_order>90</sort_order>
|
113 |
<show_in_default>1</show_in_default>
|
114 |
<show_in_website>1</show_in_website>
|
115 |
<show_in_store>1</show_in_store>
|
116 |
</redirectmessage>
|
117 |
<account translate="label">
|
118 |
<label>Identifiant FO</label>
|
119 |
+
<sort_order>100</sort_order>
|
120 |
<show_in_default>1</show_in_default>
|
121 |
<show_in_website>1</show_in_website>
|
122 |
<show_in_store>1</show_in_store>
|
124 |
<encryption_key translate="label">
|
125 |
<label>Clé de cryptage</label>
|
126 |
<frontend_type>text</frontend_type>
|
127 |
+
<sort_order>110</sort_order>
|
128 |
<show_in_default>1</show_in_default>
|
129 |
<show_in_website>1</show_in_website>
|
130 |
<show_in_store>1</show_in_store>
|
131 |
</encryption_key>
|
132 |
<url_fo translate="label">
|
133 |
<label>URL de passerelle</label>
|
134 |
+
<sort_order>120</sort_order>
|
135 |
<show_in_default>1</show_in_default>
|
136 |
<show_in_website>1</show_in_website>
|
137 |
<show_in_store>1</show_in_store>
|
141 |
<label>Activer la vérification de la disponibilité</label>
|
142 |
<frontend_type>select</frontend_type>
|
143 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
144 |
+
<sort_order>130</sort_order>
|
145 |
<show_in_default>1</show_in_default>
|
146 |
<show_in_website>1</show_in_website>
|
147 |
<show_in_store>1</show_in_store>
|
148 |
</active_service_is_available>
|
149 |
<url_service_is_available translate="label">
|
150 |
<label>URL de vérification de la disponibilité</label>
|
151 |
+
<sort_order>140</sort_order>
|
152 |
<show_in_default>1</show_in_default>
|
153 |
<show_in_website>1</show_in_website>
|
154 |
<show_in_store>1</show_in_store>
|
156 |
<not_available_message translate="label">
|
157 |
<label>Message en cas d'indisponibilité de la plateforme</label>
|
158 |
<frontend_type>textarea</frontend_type>
|
159 |
+
<sort_order>150</sort_order>
|
160 |
<show_in_default>1</show_in_default>
|
161 |
<show_in_website>1</show_in_website>
|
162 |
<show_in_store>1</show_in_store>
|
166 |
<frontend_type>select</frontend_type>
|
167 |
<source_model>socolissimosimplicite/system_config_source_shipping_amountbasetype
|
168 |
</source_model>
|
169 |
+
<sort_order>160</sort_order>
|
170 |
<show_in_default>1</show_in_default>
|
171 |
<show_in_website>1</show_in_website>
|
172 |
<show_in_store>1</show_in_store>
|
173 |
</amountbasetype>
|
174 |
+
<amountcalculation translate="label comment">
|
175 |
<label>Calcul des frais de livraison</label>
|
176 |
<frontend_type>textarea</frontend_type>
|
177 |
+
<sort_order>170</sort_order>
|
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>
|
201 |
+
<frontend_type>select</frontend_type>
|
202 |
+
<source_model>socolissimosimplicite/system_config_source_shipping_amountbasetype
|
203 |
+
</source_model>
|
204 |
+
<sort_order>180</sort_order>
|
205 |
+
<show_in_default>1</show_in_default>
|
206 |
+
<show_in_website>1</show_in_website>
|
207 |
+
<show_in_store>1</show_in_store>
|
208 |
+
</amountbasetype_pickup>
|
209 |
+
<amountcalculation_pickup translate="label comment">
|
210 |
+
<label>Calcul des frais de livraison commerçants</label>
|
211 |
+
<frontend_type>textarea</frontend_type>
|
212 |
+
<sort_order>190</sort_order>
|
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>
|
226 |
+
<sort_order>200</sort_order>
|
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">
|
237 |
+
<label>Format des frais de livraison</label>
|
238 |
+
<sort_order>210</sort_order>
|
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>
|
256 |
<show_in_default>1</show_in_default>
|
257 |
<show_in_website>1</show_in_website>
|
258 |
<show_in_store>1</show_in_store>
|
260 |
<max_order_total translate="label">
|
261 |
<label>Maximum Order Total</label>
|
262 |
<frontend_type>text</frontend_type>
|
263 |
+
<sort_order>230</sort_order>
|
264 |
<show_in_default>1</show_in_default>
|
265 |
<show_in_website>1</show_in_website>
|
266 |
<show_in_store>1</show_in_store>
|
267 |
</max_order_total>
|
268 |
+
<max_weight translate="label comment">
|
269 |
+
<label>Limite de poids</label>
|
270 |
+
<sort_order>240</sort_order>
|
|
|
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>
|
284 |
<frontend_class>shipping-applicable-country</frontend_class>
|
285 |
<source_model>adminhtml/system_config_source_shipping_allspecificcountries
|
286 |
</source_model>
|
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>
|
295 |
<source_model>adminhtml/system_config_source_country
|
296 |
</source_model>
|
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>
|
311 |
+
<show_in_default>1</show_in_default>
|
312 |
+
<show_in_website>1</show_in_website>
|
313 |
+
<show_in_store>0</show_in_store>
|
314 |
+
</sort_order>
|
315 |
</fields>
|
316 |
</socolissimosimplicite>
|
317 |
</groups>
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-install-1.0.0.php
CHANGED
@@ -1,20 +1,18 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
-
|
12 |
$installer = $this;
|
13 |
-
|
14 |
$installer->startSetup();
|
15 |
|
16 |
if (!$installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
17 |
-
|
18 |
$installer->run(
|
19 |
"-- DROP TABLE IF EXISTS {$this->getTable('laposte_socolissimosimplicite_transaction')};
|
20 |
CREATE TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} (
|
@@ -26,7 +24,7 @@ if (!$installer->tableExists($installer->getTable('laposte_socolissimosimplicite
|
|
26 |
KEY `FK_laposte_socolissimosimplicite_transaction_QUOTE_ID` (`quote_id`),
|
27 |
CONSTRAINT `FK_laposte_socolissimosimplicite_transaction_QUOTE_ID` FOREIGN KEY (`quote_id`) REFERENCES `{$this->getTable('sales_flat_quote')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
28 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT = 10000 COMMENT='colissimo transations';
|
29 |
-
|
30 |
-- transaction_id doit contenir entre 5 et 16 caractères
|
31 |
ALTER TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} AUTO_INCREMENT = 10000;"
|
32 |
);
|
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 |
if (!$installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
15 |
+
|
16 |
$installer->run(
|
17 |
"-- DROP TABLE IF EXISTS {$this->getTable('laposte_socolissimosimplicite_transaction')};
|
18 |
CREATE TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} (
|
24 |
KEY `FK_laposte_socolissimosimplicite_transaction_QUOTE_ID` (`quote_id`),
|
25 |
CONSTRAINT `FK_laposte_socolissimosimplicite_transaction_QUOTE_ID` FOREIGN KEY (`quote_id`) REFERENCES `{$this->getTable('sales_flat_quote')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
26 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT = 10000 COMMENT='colissimo transations';
|
27 |
+
|
28 |
-- transaction_id doit contenir entre 5 et 16 caractères
|
29 |
ALTER TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} AUTO_INCREMENT = 10000;"
|
30 |
);
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-uninstall-0.1.0.php
CHANGED
@@ -1,6 +1,12 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
*/
|
5 |
$installer = $this;
|
6 |
$installer->startSetup();
|
@@ -11,4 +17,4 @@ $installer->run(
|
|
11 |
WHERE path LIKE 'carriers/socolissimosimplicite/%';"
|
12 |
);
|
13 |
|
14 |
-
$installer->endSetup();
|
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();
|
17 |
WHERE path LIKE 'carriers/socolissimosimplicite/%';"
|
18 |
);
|
19 |
|
20 |
+
$installer->endSetup();
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.0.6-1.0.7.php
CHANGED
@@ -1,14 +1,13 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
-
|
12 |
$installer = $this;
|
13 |
$installer->startSetup();
|
14 |
|
@@ -128,4 +127,4 @@ $this->addAttribute(
|
|
128 |
)
|
129 |
);
|
130 |
|
131 |
-
$installer->endSetup();
|
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 |
|
127 |
)
|
128 |
);
|
129 |
|
130 |
+
$installer->endSetup();
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-1.1.2.php
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 |
-
$installer = $this;
|
13 |
-
|
14 |
-
$installer->startSetup();
|
15 |
-
|
16 |
-
if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
17 |
-
$installer->run(
|
18 |
-
// transaction_id doit contenir entre 5 et 16 caractères
|
19 |
-
"ALTER TABLE {$this->getTable('laposte_socolissimosimplicite_transaction')} AUTO_INCREMENT = 10000;"
|
20 |
-
);
|
21 |
-
}
|
22 |
-
|
23 |
-
$installer->endSetup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/LaPoste/SoColissimoSimplicite/sql/socolissimosimplicite_setup/mysql4-upgrade-1.1.1-2.0.0.php
CHANGED
@@ -2,15 +2,13 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
-
|
12 |
$installer = $this;
|
13 |
-
|
14 |
$installer->startSetup();
|
15 |
|
16 |
if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
@@ -20,4 +18,4 @@ if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_
|
|
20 |
);
|
21 |
}
|
22 |
|
23 |
-
$installer->endSetup();
|
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 |
if ($installer->tableExists($installer->getTable('laposte_socolissimosimplicite_transaction'))) {
|
18 |
);
|
19 |
}
|
20 |
|
21 |
+
$installer->endSetup();
|
app/design/frontend/default/default/layout/socolissimosimplicite.xml
CHANGED
@@ -3,20 +3,17 @@
|
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
-
* @category
|
7 |
-
* @package
|
8 |
-
* @copyright
|
9 |
-
* @author
|
10 |
-
* @license
|
11 |
*/
|
12 |
-
|
13 |
-->
|
14 |
<layout version="0.1.0">
|
15 |
-
|
16 |
-
<checkout_onepage_index translate="label">
|
17 |
<reference name="content">
|
18 |
-
|
19 |
-
|
20 |
<block type="socolissimosimplicite/onepage" name="checkout.onepage" template="checkout/onepage.phtml">
|
21 |
<block type="checkout/onepage_login" name="checkout.onepage.login" as="login" template="checkout/onepage/login.phtml">
|
22 |
<block type="page/html_wrapper" name="checkout.onepage.login.before" as="login_before">
|
@@ -27,8 +24,8 @@
|
|
27 |
<block type="checkout/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="checkout/onepage/shipping.phtml"/>
|
28 |
<block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="socolissimosimplicite/onepage/shipping_method.phtml">
|
29 |
<block type="socolissimosimplicite/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="socolissimosimplicite/onepage/shipping_method/available.phtml">
|
30 |
-
|
31 |
-
|
32 |
</block>
|
33 |
<block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
|
34 |
</block>
|
@@ -46,30 +43,23 @@
|
|
46 |
|
47 |
<checkout_onepage_shippingmethod>
|
48 |
<block type="socolissimosimplicite/onepage_shipping_method_available" name="root" output="toHtml" template="socolissimosimplicite/onepage/shipping_method/available.phtml">
|
49 |
-
|
50 |
-
|
51 |
</block>
|
52 |
</checkout_onepage_shippingmethod>
|
53 |
-
|
54 |
<socolissimosimplicite_form_send>
|
55 |
-
|
56 |
<action method="setTemplate"><template>socolissimosimplicite/empty.phtml</template></action>
|
57 |
</reference>
|
58 |
-
|
59 |
<block type="socolissimosimplicite/form" name="form.socolissimosimplicite" template="socolissimosimplicite/form.phtml" />
|
60 |
</reference>
|
61 |
</socolissimosimplicite_form_send>
|
62 |
-
|
63 |
-
<socolissimosimplicite_form_success />
|
64 |
-
|
65 |
<socolissimosimplicite_form_failure>
|
66 |
-
|
67 |
<block type="core/template" template="socolissimosimplicite/form/failure.phtml" />
|
68 |
</reference>
|
69 |
</socolissimosimplicite_form_failure>
|
70 |
-
|
71 |
</layout>
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
+
* @category LaPoste
|
7 |
+
* @package LaPoste_SoColissimoSimplicite
|
8 |
+
* @copyright Copyright (c) 2010 La Poste
|
9 |
+
* @author Smile (http://www.smile.fr)
|
10 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
|
|
12 |
-->
|
13 |
<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">
|
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>
|
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>
|
52 |
+
<reference name="root">
|
53 |
<action method="setTemplate"><template>socolissimosimplicite/empty.phtml</template></action>
|
54 |
</reference>
|
55 |
+
<reference name="content">
|
56 |
<block type="socolissimosimplicite/form" name="form.socolissimosimplicite" template="socolissimosimplicite/form.phtml" />
|
57 |
</reference>
|
58 |
</socolissimosimplicite_form_send>
|
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>
|
|
|
|
|
|
|
|
app/design/frontend/default/default/template/socolissimosimplicite/empty.phtml
CHANGED
@@ -2,11 +2,11 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
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">
|
app/design/frontend/default/default/template/socolissimosimplicite/form.phtml
CHANGED
@@ -2,129 +2,48 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
-
|
12 |
<?php
|
13 |
$_address = $this->getShippingAddress();
|
14 |
$_serviceUnavailableRedirect = $this->getServiceUnavailableRedirect();
|
15 |
-
|
16 |
/* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
17 |
$_helper = $this->helper('socolissimosimplicite');
|
18 |
-
|
19 |
|
20 |
<?php if (!empty($_serviceUnavailableRedirect)): ?>
|
21 |
<h3><?php echo $this->__("Les options du lieu de livraison ne sont pas disponibles.<br />Le colis sera livré à votre adresse de livraison.") ?></h3>
|
22 |
<p><?php echo $this->__("La page va se mettre à jour à l'étape suivante.") ?></p>
|
23 |
<form name="socolissimosimpliciteform" action="<?php echo $_serviceUnavailableRedirect ?>" target="_parent" method="get"></form>
|
24 |
<?php else: ?>
|
25 |
-
|
26 |
-
<?php // header au format ISO , So Colissimo ne gèrant pas l'UTF-8 ?>
|
27 |
-
<?php Mage::app()->getResponse()->setHeader("Content-Type", "text/html; charset=ISO-8859-1",true); ?>
|
28 |
-
|
29 |
<?php if($this->getRedirectMessage()): ?>
|
30 |
-
<h3><?php echo
|
31 |
<?php endif; ?>
|
32 |
-
<form name="socolissimosimpliciteform" action="<?php echo
|
33 |
-
|
34 |
-
<input type="hidden" name="pudoFOId" value="<?php echo
|
35 |
-
|
36 |
-
<?php
|
37 |
-
|
38 |
-
<?php
|
39 |
-
|
40 |
-
<?php
|
41 |
-
|
42 |
-
<?php
|
43 |
-
|
44 |
-
<?php
|
45 |
-
|
46 |
-
<?php
|
47 |
-
|
48 |
-
<?php if ($_address->getCompany()): ?>
|
49 |
-
<input type="hidden" name="ceCompanyName" value="<?php echo utf8_decode($_address->getCompany()); ?>" />
|
50 |
-
<?php endif; ?>
|
51 |
-
|
52 |
-
<?php if ($this->getShippingAddressStreet(1)): //1ère ligne de l'adresse dans Magento = 3ème champ adresse dans SoCo ?>
|
53 |
-
<input type="hidden" name="ceAdress3" value="<?php echo utf8_decode($this->getShippingAddressStreet(1)); ?>" />
|
54 |
-
<?php endif; ?>
|
55 |
-
|
56 |
-
<?php if ($this->getShippingAddressStreet(2)): ?>
|
57 |
-
<input type="hidden" name="ceAdress1" value="<?php echo utf8_decode($this->getShippingAddressStreet(2)); ?>" />
|
58 |
-
<?php endif; ?>
|
59 |
-
|
60 |
-
<?php if ($this->getShippingAddressStreet(3)): ?>
|
61 |
-
<input type="hidden" name="ceAdress2" value="<?php echo utf8_decode($this->getShippingAddressStreet(3)); ?>" />
|
62 |
-
<?php endif; ?>
|
63 |
-
|
64 |
-
<?php if ($this->getShippingAddressStreet(4)): ?>
|
65 |
-
<input type="hidden" name="ceAdress4" value="<?php echo utf8_decode($this->getShippingAddressStreet(4)); ?>" />
|
66 |
-
<?php endif; ?>
|
67 |
-
|
68 |
-
<?php if ($_address->getPostcode()): ?>
|
69 |
-
<input type="hidden" name="ceZipCode" value="<?php echo utf8_decode($_address->getPostcode()); ?>" />
|
70 |
-
<?php endif; ?>
|
71 |
-
|
72 |
-
<?php if ($_address->getCity()): ?>
|
73 |
-
<input type="hidden" name="ceTown" value="<?php echo utf8_decode($_address->getCity()); ?>" />
|
74 |
-
<?php endif; ?>
|
75 |
-
|
76 |
-
<?php if ($_address->getEmail()): ?>
|
77 |
-
<input type="hidden" name="ceEmail" value="<?php echo utf8_decode($_address->getEmail()); ?>" />
|
78 |
-
<?php endif; ?>
|
79 |
-
|
80 |
-
<?php if ($_address->getTelephone()): ?>
|
81 |
-
<?php // transfer phone number only if its a cell phone ?>
|
82 |
-
<?php // Same code is used LaPoste_SoColissimoSimplicite_Model_Transaction::_getGeneratedSignature()
|
83 |
-
$phone = $_address->getTelephone();
|
84 |
-
$phone = substr($phone, 0, 2);
|
85 |
-
?>
|
86 |
-
<?php if (($phone == '06') || ($phone == '07')): ?>
|
87 |
-
<input type="hidden" name="cePhoneNumber" value="<?php echo utf8_decode($_address->getTelephone()); ?>" />
|
88 |
-
<?php else: ?>
|
89 |
-
<input type="hidden" name="cePhoneNumber" value="" />
|
90 |
-
<?php endif; ?>
|
91 |
-
<?php endif; ?>
|
92 |
-
|
93 |
-
<?php if ((float)$_address->getWeight() > 0): ?>
|
94 |
-
<input type="hidden" name="dyWeight" value="<?php echo utf8_decode($_helper->getFormatedWeight($_address->getWeight())); ?>" />
|
95 |
-
<?php endif; ?>
|
96 |
-
|
97 |
-
<?php // suits with free shipping which can be set up by cart rules ?>
|
98 |
-
<?php $forwardingCharges = ($_address->getFreeShipping() === '1') ? 0 : $_address->getShippingAmount(); ?>
|
99 |
-
<input type="hidden" name="dyForwardingCharges" value="<?php echo utf8_decode($_helper->getFormatedShippingPrice($forwardingCharges)); ?>" />
|
100 |
-
|
101 |
-
<?php if ($_address->getCustomerId()): ?>
|
102 |
-
<input type="hidden" name="trClientNumber" value="<?php echo utf8_decode($_address->getCustomerId()); ?>" />
|
103 |
-
<?php endif; ?>
|
104 |
-
|
105 |
-
<?php if ($_address->getQuoteId()): ?>
|
106 |
-
<input type="hidden" name="trOrderNumber" value="<?php echo utf8_decode($_address->getQuoteId()); ?>" />
|
107 |
-
<?php endif; ?>
|
108 |
-
|
109 |
-
<input type="hidden" name="numVersion" value="<?php echo utf8_decode($_helper->getNumVersion()) ?>" />
|
110 |
-
|
111 |
-
<?php
|
112 |
-
/* donnée spécifique transmis au service, non interprétée par celui-ci et retournée
|
113 |
-
* en paramètre en cas de succès ou d'échec, non utilisée ici
|
114 |
-
* <input type="hidden" name="trParamPlus" value="" />
|
115 |
-
*/
|
116 |
-
?>
|
117 |
-
|
118 |
-
<input type="hidden" name="trReturnUrlOk" value="<?php echo utf8_decode($_helper->getSuccessUrl()); ?>" />
|
119 |
-
|
120 |
-
<input type="hidden" name="orderId" value="<?php echo utf8_decode($this->getTransaction()->getId()); ?>" />
|
121 |
-
|
122 |
-
<input type="hidden" name="signature" value="<?php echo utf8_decode($this->getTransaction()->getSignature()); ?>" />
|
123 |
</form>
|
124 |
-
|
125 |
<?php endif ?>
|
126 |
<script type="text/javascript">
|
127 |
//<![CDATA[
|
128 |
document.socolissimosimpliciteform.submit();
|
129 |
//]]>
|
130 |
-
</script>
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
+
* @category LaPoste
|
6 |
+
* @package LaPoste_SoColissimoSimplicite
|
7 |
+
* @copyright Copyright (c) 2010 La Poste
|
8 |
+
* @author Smile (http://www.smile.fr)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
+
?>
|
12 |
<?php
|
13 |
$_address = $this->getShippingAddress();
|
14 |
$_serviceUnavailableRedirect = $this->getServiceUnavailableRedirect();
|
|
|
15 |
/* @var $_helper LaPoste_SoColissimoSimplicite_Helper_Data */
|
16 |
$_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()): ?>
|
25 |
+
<h3><?php echo $this->getRedirectMessage(); ?></h3>
|
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); ?>
|
33 |
+
<?php unset($_fields['trReturnUrlKo']); ?>
|
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();
|
48 |
//]]>
|
49 |
+
</script>
|
app/design/frontend/default/default/template/socolissimosimplicite/form/failure.phtml
CHANGED
@@ -2,11 +2,11 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<h1><?php echo $this->__('Une erreur technique a été rencontrée') ?></h1>
|
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>
|
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method.phtml
CHANGED
@@ -2,11 +2,11 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
@@ -19,7 +19,7 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
19 |
</div>
|
20 |
<script type="text/javascript">
|
21 |
//<![CDATA[
|
22 |
-
//
|
23 |
ShippingMethod.prototype.isSocolissimoSelected = function() {
|
24 |
var rateCodeSoColissimoSimplicite = '<?php echo $_helper->getRateCode()?>';
|
25 |
var methods = document.getElementsByName('shipping_method');
|
@@ -31,21 +31,27 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
31 |
}
|
32 |
};
|
33 |
|
34 |
-
//
|
35 |
ShippingMethod.prototype.saveWithColissimo = function() {
|
36 |
-
if (
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
};
|
51 |
|
@@ -61,7 +67,7 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
61 |
this.savedAllowedSteps = [];
|
62 |
|
63 |
var steps = document.getElementById('checkoutSteps').children;
|
64 |
-
for (i=0; i<steps.length; i++) {
|
65 |
if (steps[i].hasClassName('allow')) {
|
66 |
this.savedAllowedSteps[i] = true;
|
67 |
steps[i].removeClassName('allow');
|
@@ -71,32 +77,40 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
71 |
}
|
72 |
};
|
73 |
|
74 |
-
// Hack to allow checkout
|
75 |
ShippingMethod.prototype.unfreezSteps = function() {
|
76 |
-
if (this.savedAllowedSteps
|
77 |
-
|
78 |
-
for (i=0; i<steps.length; i++) {
|
79 |
-
if (this.savedAllowedSteps[i]
|
80 |
-
|
81 |
}
|
82 |
}
|
83 |
}
|
84 |
-
}
|
85 |
|
86 |
-
//
|
87 |
ShippingMethod.prototype.redirectToColissimo = function(transport) {
|
88 |
var urlFormSoColissimoSimplicite = '<?php echo $_helper->getFormUrl()?>';
|
89 |
var methods = document.getElementsByName('shipping_method');
|
90 |
|
91 |
if (this.isSocolissimoSelected()) {
|
92 |
-
// Remove ending slash for
|
93 |
urlFormSoColissimoSimplicite = urlFormSoColissimoSimplicite.replace(/\/$/, '');
|
94 |
|
95 |
-
var
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
98 |
|
99 |
-
//
|
|
|
|
|
|
|
100 |
for (var j=0; j<methods.length; j++) {
|
101 |
methods[j].disabled = 'disabled';
|
102 |
}
|
@@ -106,24 +120,23 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
106 |
|
107 |
document.getElementById('cancel_soco_shipping_button').style.display = 'block';
|
108 |
checkout.setLoadWaiting('shipping-method');
|
109 |
-
|
110 |
-
|
|
|
111 |
}
|
112 |
-
|
113 |
-
// pass to next step (= default onSave binding)
|
114 |
-
ShippingMethod.prototype.nextStep(transport);
|
115 |
};
|
116 |
|
117 |
-
// Cancel
|
118 |
ShippingMethod.prototype.cancelSocollisimo = function() {
|
119 |
var methods = document.getElementsByName('shipping_method');
|
120 |
for (var i=0; i<methods.length; i++) {
|
121 |
methods[i].disabled = '';
|
122 |
}
|
123 |
|
124 |
-
var
|
125 |
-
|
126 |
-
|
|
|
127 |
|
128 |
this.resetLoadWaiting();
|
129 |
document.getElementById('cancel_soco_shipping_button').style.display = 'none';
|
@@ -140,10 +153,10 @@ $_helper = $this->helper('socolissimosimplicite');
|
|
140 |
<?php echo $this->getChildHtml('additional') ?>
|
141 |
</div>
|
142 |
<div class="buttons-set">
|
143 |
-
<button id="cancel_soco_shipping_button" type="button" class="button" onclick="shippingMethod.cancelSocollisimo();" style="display:none;"><span><span><?php echo $this->__('Annuler
|
144 |
</div>
|
145 |
<div class="buttons-set" id="shipping-method-buttons-container">
|
146 |
-
<p class="back-link"><a href="#" onclick="checkout.back();
|
147 |
<button type="button" class="button" onclick="shippingMethod.saveWithColissimo();"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
148 |
<span id="shipping-method-please-wait" class="please-wait" style="display:none;">
|
149 |
<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...') ?>
|
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
|
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');
|
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 |
|
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');
|
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 |
}
|
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';
|
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>« </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...') ?>
|
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available.phtml
CHANGED
@@ -2,11 +2,11 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
@@ -14,157 +14,60 @@
|
|
14 |
$_socoHelper = $this->helper('socolissimosimplicite');
|
15 |
?>
|
16 |
|
17 |
-
<?php if (
|
18 |
-
|
19 |
-
|
20 |
-
<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
|
21 |
-
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
22 |
-
<?php else: ?>
|
23 |
-
<dl class="sp-methods">
|
24 |
-
<?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
|
25 |
-
<dt><?php echo $this->getCarrierName($code) ?></dt>
|
26 |
-
<dd>
|
27 |
-
<ul>
|
28 |
-
<?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
|
29 |
-
<li>
|
30 |
-
<?php if ($_rate->getErrorMessage()): ?>
|
31 |
-
<ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
|
32 |
-
<?php else: ?>
|
33 |
-
<?php if ($_sole) : ?>
|
34 |
-
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span>
|
35 |
-
<?php else: ?>
|
36 |
-
<input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> class="radio" />
|
37 |
-
<?php endif; ?>
|
38 |
-
<?php echo $this->getItemHtml($_rate) ?>
|
39 |
-
|
40 |
-
<?php // disponibilité de la plateforme soco ?>
|
41 |
-
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and !$this->getServiceIsAvailable()): ?>
|
42 |
-
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
43 |
-
<?php endif ?>
|
44 |
-
|
45 |
-
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and $this->getServiceIsAvailable()): ?>
|
46 |
-
<iframe id="socolissimosimplicite_iframe" src="about:blank" style="width:572px; height:1100px; border: 0 none; display:none;"></iframe>
|
47 |
-
<?php endif ?>
|
48 |
-
<?php endif ?>
|
49 |
-
</li>
|
50 |
-
<?php endforeach; ?>
|
51 |
-
</ul>
|
52 |
-
</dd>
|
53 |
-
<?php endforeach; ?>
|
54 |
-
</dl>
|
55 |
-
<?php endif; ?>
|
56 |
-
|
57 |
-
<?php // Magento >= 1.5 ?>
|
58 |
<?php else: ?>
|
59 |
-
|
60 |
-
<?php if (
|
61 |
-
<
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
64 |
<dl class="sp-methods">
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
<dt><?php echo $this->getCarrierName($code) ?></dt>
|
81 |
-
<dd>
|
82 |
-
<ul>
|
83 |
-
<?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
|
84 |
-
<?php $shippingMe[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
|
85 |
-
<li>
|
86 |
-
<?php if ($_rate->getErrorMessage()): ?>
|
87 |
-
<ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
|
88 |
-
<?php else: ?>
|
89 |
-
<?php if ($_sole) : ?>
|
90 |
-
<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>
|
91 |
-
<?php else: ?>
|
92 |
-
<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" onchange="return includingShipping('<?php echo $_rate->getCode();?>');"/>
|
93 |
|
94 |
-
|
|
|
95 |
//<![CDATA[
|
96 |
-
<?php
|
97 |
-
lastPrice = <?php echo (float)$_rate->getPrice(); ?>;
|
98 |
-
<?php endif; ?>
|
99 |
//]]>
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
<?php // socolissimo ?>
|
105 |
-
<?php if ($_rate->getCode() == $_socoHelper->getRateCode()): ?>
|
106 |
-
|
107 |
-
<?php // disponibilité de la plateforme soco ?>
|
108 |
-
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and !$this->getServiceIsAvailable()): ?>
|
109 |
-
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->getServiceNotAvailableMessage() ?></li></ul></li></ul>
|
110 |
-
<?php else: ?>
|
111 |
-
<?php
|
112 |
-
$_helper = $this->helper('socolissimosimplicite');
|
113 |
-
$_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax());
|
114 |
-
?>
|
115 |
-
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?> <?php echo $_excl; ?></label>
|
116 |
-
<br />
|
117 |
-
<?php echo $_helper->getSelectMessage() ?>
|
118 |
-
<?php endif; ?>
|
119 |
-
|
120 |
-
<?php if ($_rate->getCode() == $_socoHelper->getRateCode() and $this->getServiceIsAvailable()): ?>
|
121 |
-
<iframe id="socolissimosimplicite_iframe" src="about:blank" style="width:572px; height:1100px; border: 0 none; display:none;"></iframe>
|
122 |
-
<?php endif ?>
|
123 |
|
124 |
-
|
125 |
-
<?php else: ?>
|
126 |
-
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?>
|
127 |
-
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
128 |
-
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
129 |
-
<?php echo $_excl; ?>
|
130 |
-
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
131 |
-
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
132 |
-
<?php endif; ?>
|
133 |
-
</label>
|
134 |
-
<?php endif; ?>
|
135 |
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
</dl>
|
143 |
-
<script type="text/javascript">
|
144 |
-
//<![CDATA[
|
145 |
-
<?php if (!empty($shippingMe)): ?>
|
146 |
-
var shippingMe = {<?php echo implode(',',$shippingMe); ?>};
|
147 |
-
<?php endif; ?>
|
148 |
-
|
149 |
-
function includingShipping(getShippingCode)
|
150 |
-
{
|
151 |
-
<?php if (!empty($shippingMe)): ?>
|
152 |
-
var newPrice = shippingMe[getShippingCode];
|
153 |
-
if (!lastPrice) {
|
154 |
-
lastPrice = newPrice;
|
155 |
-
quoteBaseGrandTotal += newPrice;
|
156 |
-
}
|
157 |
-
if (newPrice != lastPrice) {
|
158 |
-
quoteBaseGrandTotal += (newPrice-lastPrice);
|
159 |
-
lastPrice = newPrice;
|
160 |
-
|
161 |
-
}
|
162 |
-
<?php endif; ?>
|
163 |
-
checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
|
164 |
-
return false;
|
165 |
-
}
|
166 |
-
//]]>
|
167 |
-
</script>
|
168 |
-
<?php endif; ?>
|
169 |
-
|
170 |
<?php endif; ?>
|
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
|
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
CHANGED
@@ -2,11 +2,11 @@
|
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<?php $_rate = $this->getRate() ?>
|
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() ?>
|
app/design/frontend/default/default/template/socolissimosimplicite/onepage/shipping_method/available/socolissimosimplicite.phtml
CHANGED
@@ -1,18 +1,22 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* LaPoste_SoColissimoSimplicite
|
4 |
-
*
|
5 |
-
* @category
|
6 |
-
* @package
|
7 |
-
* @copyright
|
8 |
-
* @author
|
9 |
-
* @license
|
10 |
*/
|
11 |
?>
|
12 |
<?php
|
13 |
$_rate = $this->getRate();
|
|
|
14 |
$_helper = $this->helper('socolissimosimplicite');
|
|
|
15 |
$_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax());
|
|
|
|
|
16 |
?>
|
17 |
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?> <?php echo $_excl; ?></label>
|
18 |
<br />
|
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 />
|
app/etc/modules/LaPoste_SoColissimoSimplicite.xml
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
-
* @category
|
7 |
-
* @package
|
8 |
-
* @copyright
|
9 |
-
* @author
|
10 |
-
* @license
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
3 |
/**
|
4 |
* LaPoste_SoColissimoSimplicite
|
5 |
*
|
6 |
+
* @category LaPoste
|
7 |
+
* @package LaPoste_SoColissimoSimplicite
|
8 |
+
* @copyright Copyright (c) 2010 La Poste
|
9 |
+
* @author Smile (http://www.smile.fr)
|
10 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
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.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -18,16 +18,16 @@ So Colissimo offre le choix parmi 5 solutions de livraison et un grand rése
|
|
18 |
* mon commerçant : livraison chez l'un des nombreux commerçants de notre réseau partenaire.
|
19 |

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

|
25 |
Réalisation par Smile.</description>
|
26 |
<notes>Compatible 1.7</notes>
|
27 |
<authors><author><name>Berlioz</name><user>Aline</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
|
28 |
-
<date>
|
29 |
-
<time>15:
|
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="
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
33 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ColiPoste_La_Poste_So_Colissimo</name>
|
4 |
+
<version>2.2.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
18 |
* mon commerçant : livraison chez l'un des nombreux commerçants de notre réseau partenaire.
|
19 |

|
20 |
Testé et validé sur Magento :
|
21 |
+
- CE 1.3.2.4, CE 1.4.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
|
22 |
- PE 1.8
|
23 |
- EE 1.8, EE 1.9, EE 1.10, EE 1.11, EE 1.12
|
24 |

|
25 |
Réalisation par Smile.</description>
|
26 |
<notes>Compatible 1.7</notes>
|
27 |
<authors><author><name>Berlioz</name><user>Aline</user><email>Aline.BERLIOZ@laposte.fr</email></author></authors>
|
28 |
+
<date>2013-05-14</date>
|
29 |
+
<time>15:49:24</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="e23b28c9dc36e8e3fae4a71a504ced16"/><dir name="form"><file name="failure.phtml" hash="6899294fef95e8ba97e923a95ce6e800"/></dir><file name="form.phtml" hash="25e9ef6a8adea89c8a85554d06102da3"/><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></dir></dir><dir name="layout"><file name="socolissimosimplicite.xml" hash="9ac746d2644eae5c257290e6845421cb"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="fr_FR"><file name="LaPoste_SoColissimoSimplicite.csv" hash="ddc252df7c3ca35cc4bf5bbe7fdb9433"/></dir></dir></target><target name="magecommunity"><dir><dir name="LaPoste"><dir name="SoColissimoSimplicite"><dir name="Block"><file name="Form.php" hash="df4d1dfbd6f8fbb6088b505b285ed7fa"/><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="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><file name="Observer.php" hash="563e26117a0cc90affcad28a503cef5d"/><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="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="26f3d2ccbb9634de3184b3bec24dfe12"/><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></dir></target><target name="mageetc"><dir><dir name="modules"><file name="LaPoste_SoColissimoSimplicite.xml" hash="154dd96df1089ac29e87eaa8677693c3"/></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>
|