MultiSafepay_Msp - Version 2.3.1

Version Notes

Tested by MultiSafepay

Download this release

Release Info

Developer MultiSafepay
Extension MultiSafepay_Msp
Version 2.3.1
Comparing to
See all releases


Code changes from version 2.2.9 to 2.3.1

Files changed (262) hide show
  1. app/code/community/MultiSafepay/Msp/Block/Creditcards.php +46 -0
  2. app/code/community/MultiSafepay/Msp/Model/Api/Autoloader.php +24 -0
  3. app/code/community/MultiSafepay/Msp/Model/Api/Client.php +97 -0
  4. app/code/community/MultiSafepay/Msp/Model/Api/Object/Affiliates.php +29 -0
  5. app/code/community/MultiSafepay/Msp/Model/Api/Object/Core.php +51 -0
  6. app/code/community/MultiSafepay/Msp/Model/Api/Object/Gateways.php +16 -0
  7. app/code/community/MultiSafepay/Msp/Model/Api/Object/Issuers.php +17 -0
  8. app/code/community/MultiSafepay/Msp/Model/Api/Object/Orders.php +34 -0
  9. app/code/community/MultiSafepay/Msp/Model/Api/Paylink.php +2 -0
  10. app/code/community/MultiSafepay/Msp/Model/Base.php +3 -0
  11. app/code/community/MultiSafepay/Msp/Model/Config/Sources/Creditcards.php +34 -0
  12. app/code/community/MultiSafepay/Msp/Model/Gateway/Abstract.php +132 -2
  13. app/code/community/MultiSafepay/Msp/Model/Gateway/Creditcard.php +37 -0
  14. app/code/community/MultiSafepay/Msp/Model/Gateway/Einvoice.php +20 -1
  15. app/code/community/MultiSafepay/Msp/Model/Gateway/Eps.php +9 -0
  16. app/code/community/MultiSafepay/Msp/Model/Gateway/Ferbuy.php +9 -0
  17. app/code/community/MultiSafepay/Msp/Model/Gateway/Klarna.php +15 -1
  18. app/code/community/MultiSafepay/Msp/Model/Gateway/Payafter.php +15 -1
  19. app/code/community/MultiSafepay/Msp/Model/Gateway/Vvvgiftcard.php +1 -1
  20. app/code/community/MultiSafepay/Msp/Model/Observer/Order.php +11 -0
  21. app/code/community/MultiSafepay/Msp/Model/Payment.php +15 -5
  22. app/code/community/MultiSafepay/Msp/Model/Service/Quote.php +3 -0
  23. app/code/community/MultiSafepay/Msp/Model/Servicecost/Quote/Address/Total/Servicecost.php +6 -0
  24. app/code/community/MultiSafepay/Msp/Model/controllers/CheckoutController.php +240 -0
  25. app/code/community/MultiSafepay/Msp/Model/controllers/MspPaymentController.php +22 -0
  26. app/code/community/MultiSafepay/Msp/Model/controllers/StandardController.php +932 -0
  27. app/code/community/MultiSafepay/Msp/controllers/StandardController.php +362 -29
  28. app/code/community/MultiSafepay/Msp/etc/config.xml +37 -1
  29. app/code/community/MultiSafepay/Msp/etc/system.xml +441 -1
  30. app/design/adminhtml/default/default/template/msp/creditcards.phtml +8 -0
  31. app/design/adminhtml/default/default/template/msp/default.phtml +8 -0
  32. app/design/frontend/base/default/template/msp/creditcards.phtml +64 -0
  33. app/design/frontend/base/default/template/msp/idealissuers.phtml +7 -8
  34. app/design/frontend/base/default/template/msp/klarna.phtml +18 -16
  35. app/locale/de_DE/MultiSafepay_Msp.csv +115 -112
  36. app/locale/nl_NL/MultiSafepay_Msp.csv +1 -1
  37. media/msp/creditcards/AMEX.png +0 -0
  38. media/msp/creditcards/MAESTRO.png +0 -0
  39. media/msp/creditcards/MASTERCARD.png +0 -0
  40. media/msp/creditcards/VISA.png +0 -0
  41. media/msp/de/msp_amex.png +0 -0
  42. media/msp/de/msp_babygiftcard.png +0 -0
  43. media/msp/de/msp_banktransfer.png +0 -0
  44. media/msp/de/msp_beautyandwellness.png +0 -0
  45. media/msp/de/msp_boekenbon.png +0 -0
  46. media/msp/de/msp_degrotespeelgoedwinkel.png +0 -0
  47. media/msp/de/msp_directdebit.png +0 -0
  48. media/msp/de/msp_directebanking.png +0 -0
  49. media/msp/de/msp_dotpay.png +0 -0
  50. media/msp/de/msp_ebon.png +0 -0
  51. media/msp/de/msp_einvoice.png +0 -0
  52. media/msp/de/msp_eps.png +0 -0
  53. media/msp/de/msp_erotiekbon.png +0 -0
  54. media/msp/de/msp_fashioncheque.png +0 -0
  55. media/msp/de/msp_fashiongiftcard.png +0 -0
  56. media/msp/de/msp_ferbuy.png +0 -0
  57. media/msp/de/msp_gezondheidsbon.png +0 -0
  58. media/msp/de/msp_giropay.png +0 -0
  59. media/msp/de/msp_giveacard.png +0 -0
  60. media/msp/de/msp_ideal.png +0 -0
  61. media/msp/de/msp_klarna.png +0 -0
  62. media/msp/de/msp_maestro.png +0 -0
  63. media/msp/de/msp_mastercard.png +0 -0
  64. media/msp/de/msp_mistercash.png +0 -0
  65. media/msp/de/msp_multisafepay.png +0 -0
  66. media/msp/de/msp_parfumcadeaukaart.png +0 -0
  67. media/msp/de/msp_parfumnl.png +0 -0
  68. media/msp/de/msp_payafter.png +0 -0
  69. media/msp/de/msp_paypal.png +0 -0
  70. media/msp/de/msp_podium.png +0 -0
  71. media/msp/de/msp_sportenfit.png +0 -0
  72. media/msp/de/msp_visa.png +0 -0
  73. media/msp/de/msp_vvvgiftcard.png +0 -0
  74. media/msp/de/msp_webgift.png +0 -0
  75. media/msp/de/msp_wijncadeau.png +0 -0
  76. media/msp/de/msp_yourgift.png +0 -0
  77. media/msp/en/msp_amex.png +0 -0
  78. media/msp/en/msp_babygiftcard.png +0 -0
  79. media/msp/en/msp_banktransfer.png +0 -0
  80. media/msp/en/msp_beautyandwellness.png +0 -0
  81. media/msp/en/msp_boekenbon.png +0 -0
  82. media/msp/en/msp_degrotespeelgoedwinkel.png +0 -0
  83. media/msp/en/msp_directdebit.png +0 -0
  84. media/msp/en/msp_directebanking.png +0 -0
  85. media/msp/en/msp_dotpay.png +0 -0
  86. media/msp/en/msp_ebon.png +0 -0
  87. media/msp/en/msp_einvoice.png +0 -0
  88. media/msp/en/msp_eps.png +0 -0
  89. media/msp/en/msp_erotiekbon.png +0 -0
  90. media/msp/en/msp_fashioncheque.png +0 -0
  91. media/msp/en/msp_fashiongiftcard.png +0 -0
  92. media/msp/en/msp_ferbuy.png +0 -0
  93. media/msp/en/msp_gezondheidsbon.png +0 -0
  94. media/msp/en/msp_giropay.png +0 -0
  95. media/msp/en/msp_giveacard.png +0 -0
  96. media/msp/en/msp_ideal.png +0 -0
  97. media/msp/en/msp_klarna.png +0 -0
  98. media/msp/en/msp_maestro.png +0 -0
  99. media/msp/en/msp_mastercard.png +0 -0
  100. media/msp/en/msp_mistercash.png +0 -0
  101. media/msp/en/msp_multisafepay.png +0 -0
  102. media/msp/en/msp_parfumcadeaukaart.png +0 -0
  103. media/msp/en/msp_parfumnl.png +0 -0
  104. media/msp/en/msp_payafter.png +0 -0
  105. media/msp/en/msp_paypal.png +0 -0
  106. media/msp/en/msp_podium.png +0 -0
  107. media/msp/en/msp_sportenfit.png +0 -0
  108. media/msp/en/msp_visa.png +0 -0
  109. media/msp/en/msp_vvvgiftcard.png +0 -0
  110. media/msp/en/msp_webgift.png +0 -0
  111. media/msp/en/msp_wijncadeau.png +0 -0
  112. media/msp/en/msp_yourgift.png +0 -0
  113. media/msp/es/msp_amex.png +0 -0
  114. media/msp/es/msp_babygiftcard.png +0 -0
  115. media/msp/es/msp_banktransfer.png +0 -0
  116. media/msp/es/msp_beautyandwellness.png +0 -0
  117. media/msp/es/msp_boekenbon.png +0 -0
  118. media/msp/es/msp_degrotespeelgoedwinkel.png +0 -0
  119. media/msp/es/msp_directdebit.png +0 -0
  120. media/msp/es/msp_directebanking.png +0 -0
  121. media/msp/es/msp_dotpay.png +0 -0
  122. media/msp/es/msp_ebon.png +0 -0
  123. media/msp/es/msp_einvoice.png +0 -0
  124. media/msp/es/msp_eps.png +0 -0
  125. media/msp/es/msp_erotiekbon.png +0 -0
  126. media/msp/es/msp_fashioncheque.png +0 -0
  127. media/msp/es/msp_fashiongiftcard.png +0 -0
  128. media/msp/es/msp_ferbuy.png +0 -0
  129. media/msp/es/msp_gezondheidsbon.png +0 -0
  130. media/msp/es/msp_giropay.png +0 -0
  131. media/msp/es/msp_giveacard.png +0 -0
  132. media/msp/es/msp_ideal.png +0 -0
  133. media/msp/es/msp_klarna.png +0 -0
  134. media/msp/es/msp_maestro.png +0 -0
  135. media/msp/es/msp_mastercard.png +0 -0
  136. media/msp/es/msp_mistercash.png +0 -0
  137. media/msp/es/msp_multisafepay.png +0 -0
  138. media/msp/es/msp_parfumcadeaukaart.png +0 -0
  139. media/msp/es/msp_parfumnl.png +0 -0
  140. media/msp/es/msp_payafter.png +0 -0
  141. media/msp/es/msp_paypal.png +0 -0
  142. media/msp/es/msp_podium.png +0 -0
  143. media/msp/es/msp_sportenfit.png +0 -0
  144. media/msp/es/msp_visa.png +0 -0
  145. media/msp/es/msp_vvvgiftcard.png +0 -0
  146. media/msp/es/msp_webgift.png +0 -0
  147. media/msp/es/msp_wijncadeau.png +0 -0
  148. media/msp/es/msp_yourgift.png +0 -0
  149. media/msp/fr/msp_amex.png +0 -0
  150. media/msp/fr/msp_babygiftcard.png +0 -0
  151. media/msp/fr/msp_banktransfer.png +0 -0
  152. media/msp/fr/msp_beautyandwellness.png +0 -0
  153. media/msp/fr/msp_boekenbon.png +0 -0
  154. media/msp/fr/msp_degrotespeelgoedwinkel.png +0 -0
  155. media/msp/fr/msp_directdebit.png +0 -0
  156. media/msp/fr/msp_directebanking.png +0 -0
  157. media/msp/fr/msp_dotpay.png +0 -0
  158. media/msp/fr/msp_ebon.png +0 -0
  159. media/msp/fr/msp_einvoice.png +0 -0
  160. media/msp/fr/msp_eps.png +0 -0
  161. media/msp/fr/msp_erotiekbon.png +0 -0
  162. media/msp/fr/msp_fashioncheque.png +0 -0
  163. media/msp/fr/msp_fashiongiftcard.png +0 -0
  164. media/msp/fr/msp_ferbuy.png +0 -0
  165. media/msp/fr/msp_gezondheidsbon.png +0 -0
  166. media/msp/fr/msp_giropay.png +0 -0
  167. media/msp/fr/msp_giveacard.png +0 -0
  168. media/msp/fr/msp_ideal.png +0 -0
  169. media/msp/fr/msp_klarna.png +0 -0
  170. media/msp/fr/msp_maestro.png +0 -0
  171. media/msp/fr/msp_mastercard.png +0 -0
  172. media/msp/fr/msp_mistercash.png +0 -0
  173. media/msp/fr/msp_multisafepay.png +0 -0
  174. media/msp/fr/msp_parfumcadeaukaart.png +0 -0
  175. media/msp/fr/msp_parfumnl.png +0 -0
  176. media/msp/fr/msp_payafter.png +0 -0
  177. media/msp/fr/msp_paypal.png +0 -0
  178. media/msp/fr/msp_podium.png +0 -0
  179. media/msp/fr/msp_sportenfit.png +0 -0
  180. media/msp/fr/msp_visa.png +0 -0
  181. media/msp/fr/msp_vvvgiftcard.png +0 -0
  182. media/msp/fr/msp_webgift.png +0 -0
  183. media/msp/fr/msp_wijncadeau.png +0 -0
  184. media/msp/fr/msp_yourgift.png +0 -0
  185. media/msp/ideallogos/3151.gif +0 -0
  186. media/msp/it/msp_amex.png +0 -0
  187. media/msp/it/msp_babygiftcard.png +0 -0
  188. media/msp/it/msp_banktransfer.png +0 -0
  189. media/msp/it/msp_beautyandwellness.png +0 -0
  190. media/msp/it/msp_boekenbon.png +0 -0
  191. media/msp/it/msp_degrotespeelgoedwinkel.png +0 -0
  192. media/msp/it/msp_directdebit.png +0 -0
  193. media/msp/it/msp_directebanking.png +0 -0
  194. media/msp/it/msp_dotpay.png +0 -0
  195. media/msp/it/msp_ebon.png +0 -0
  196. media/msp/it/msp_einvoice.png +0 -0
  197. media/msp/it/msp_eps.png +0 -0
  198. media/msp/it/msp_erotiekbon.png +0 -0
  199. media/msp/it/msp_fashioncheque.png +0 -0
  200. media/msp/it/msp_fashiongiftcard.png +0 -0
  201. media/msp/it/msp_ferbuy.png +0 -0
  202. media/msp/it/msp_gezondheidsbon.png +0 -0
  203. media/msp/it/msp_giropay.png +0 -0
  204. media/msp/it/msp_giveacard.png +0 -0
  205. media/msp/it/msp_ideal.png +0 -0
  206. media/msp/it/msp_klarna.png +0 -0
  207. media/msp/it/msp_maestro.png +0 -0
  208. media/msp/it/msp_mastercard.png +0 -0
  209. media/msp/it/msp_mistercash.png +0 -0
  210. media/msp/it/msp_multisafepay.png +0 -0
  211. media/msp/it/msp_parfumcadeaukaart.png +0 -0
  212. media/msp/it/msp_parfumnl.png +0 -0
  213. media/msp/it/msp_payafter.png +0 -0
  214. media/msp/it/msp_paypal.png +0 -0
  215. media/msp/it/msp_podium.png +0 -0
  216. media/msp/it/msp_sportenfit.png +0 -0
  217. media/msp/it/msp_visa.png +0 -0
  218. media/msp/it/msp_vvvgiftcard.png +0 -0
  219. media/msp/it/msp_webgift.png +0 -0
  220. media/msp/it/msp_wijncadeau.png +0 -0
  221. media/msp/it/msp_yourgift.png +0 -0
  222. media/msp/nl/msp_amex.png +0 -0
  223. media/msp/nl/msp_babygiftcard.png +0 -0
  224. media/msp/nl/msp_banktransfer.png +0 -0
  225. media/msp/nl/msp_beautyandwellness.png +0 -0
  226. media/msp/nl/msp_boekenbon.png +0 -0
  227. media/msp/nl/msp_degrotespeelgoedwinkel.png +0 -0
  228. media/msp/nl/msp_directdebit.png +0 -0
  229. media/msp/nl/msp_directebanking.png +0 -0
  230. media/msp/nl/msp_dotpay.png +0 -0
  231. media/msp/nl/msp_ebon.png +0 -0
  232. media/msp/nl/msp_einvoice.png +0 -0
  233. media/msp/nl/msp_eps.png +0 -0
  234. media/msp/nl/msp_erotiekbon.png +0 -0
  235. media/msp/nl/msp_fashioncheque.png +0 -0
  236. media/msp/nl/msp_fashiongiftcard.png +0 -0
  237. media/msp/nl/msp_ferbuy.png +0 -0
  238. media/msp/nl/msp_gezondheidsbon.png +0 -0
  239. media/msp/nl/msp_giropay.png +0 -0
  240. media/msp/nl/msp_giveacard.png +0 -0
  241. media/msp/nl/msp_ideal.png +0 -0
  242. media/msp/nl/msp_klarna.png +0 -0
  243. media/msp/nl/msp_maestro.png +0 -0
  244. media/msp/nl/msp_mastercard.png +0 -0
  245. media/msp/nl/msp_mistercash.png +0 -0
  246. media/msp/nl/msp_multisafepay.png +0 -0
  247. media/msp/nl/msp_parfumcadeaukaart.png +0 -0
  248. media/msp/nl/msp_parfumnl.png +0 -0
  249. media/msp/nl/msp_payafter.png +0 -0
  250. media/msp/nl/msp_paypal.png +0 -0
  251. media/msp/nl/msp_podium.png +0 -0
  252. media/msp/nl/msp_sportenfit.png +0 -0
  253. media/msp/nl/msp_visa.png +0 -0
  254. media/msp/nl/msp_vvvgiftcard.png +0 -0
  255. media/msp/nl/msp_webgift.png +0 -0
  256. media/msp/nl/msp_wijncadeau.png +0 -0
  257. media/msp/nl/msp_yourgift.png +0 -0
  258. package.xml +4 -4
  259. skin/adminhtml/default/default/css/MultiSafepay/config.css +25 -0
  260. skin/adminhtml/default/default/images/msp/nl/msp_eps.png +0 -0
  261. skin/adminhtml/default/default/images/msp/nl/msp_ferbuy.png +0 -0
  262. skin/adminhtml/default/default/images/msp/nl/msp_yourgift.png +0 -0
app/code/community/MultiSafepay/Msp/Block/Creditcards.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ <?php
4
+
5
+ /**
6
+ *
7
+ * @category MultiSafepay
8
+ * @package MultiSafepay_Msp
9
+ */
10
+ class MultiSafepay_Msp_Block_Creditcards extends Mage_Payment_Block_Form {
11
+
12
+ /**
13
+ * Construct
14
+ */
15
+ protected function _construct() {
16
+
17
+ parent::_construct();
18
+ $this->setTemplate('msp/creditcards.phtml');
19
+
20
+ }
21
+
22
+ /**
23
+ * @return array
24
+ */
25
+ public function getCreditcards() {
26
+ /** @var $msp MultiSafepay_Msp_Model_Gateway_Ideal */
27
+ $msp = Mage::getSingleton("msp/gateway_creditcard");
28
+ $base = $msp->getCreditcards();
29
+
30
+ return $base;
31
+ }
32
+ /**
33
+ * @return array
34
+ */
35
+ public function getCreditcardLabels() {
36
+ /** @var $msp MultiSafepay_Msp_Model_Gateway_Ideal */
37
+ $msp = Mage::getSingleton("msp/gateway_creditcard");
38
+ $base = $msp->getCreditcardLabels();
39
+
40
+ return $base;
41
+ }
42
+
43
+
44
+
45
+
46
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Autoloader.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class API_Autoloader {
4
+
5
+ public static function autoload($class_name) {
6
+ $name = str_replace("_", "/", $class_name);
7
+ $file_name = realpath(dirname(__FILE__) . "/{$name}.php");
8
+
9
+ if (file_exists($file_name)) {
10
+ require $file_name;
11
+ }
12
+ }
13
+
14
+ public static function register() {
15
+ return spl_autoload_register(array(__CLASS__, "autoload"));
16
+ }
17
+
18
+ public static function unregister() {
19
+ return spl_autoload_unregister(array(__CLASS__, "autoload"));
20
+ }
21
+
22
+ }
23
+
24
+ API_Autoloader::register();
app/code/community/MultiSafepay/Msp/Model/Api/Client.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname(__FILE__) . "/Object/Orders.php";
4
+ require_once dirname(__FILE__) . "/Object/Issuers.php";
5
+ require_once dirname(__FILE__) . "/Object/Gateways.php";
6
+ require_once dirname(__FILE__) . "/Object/Affiliates.php";
7
+
8
+ class Client {
9
+
10
+ public $orders;
11
+ public $issuers;
12
+ public $transactions;
13
+ public $gateways;
14
+ public $affiliates;
15
+ protected $api_key;
16
+ public $api_url;
17
+ public $api_endpoint;
18
+ public $request;
19
+ public $response;
20
+ public $debug;
21
+
22
+ public function __construct() {
23
+ $this->orders = new Object_Orders($this);
24
+ $this->issuers = new Object_Issuers($this);
25
+ $this->gateways = new Object_Gateways($this);
26
+ $this->affiliates = new Object_Affiliates($this);
27
+ }
28
+
29
+ public function getRequest() {
30
+ return $this->request;
31
+ }
32
+
33
+ public function getResponse() {
34
+ return $this->response;
35
+ }
36
+
37
+ public function setApiUrl($url) {
38
+ $this->api_url = trim($url);
39
+ }
40
+
41
+ public function setDebug($debug) {
42
+ $this->debug = trim($debug);
43
+ }
44
+
45
+ public function setApiKey($api_key) {
46
+ $this->api_key = trim($api_key);
47
+ }
48
+
49
+
50
+ public function processAPIRequest($http_method, $api_method, $http_body = NULL) {
51
+ if (empty($this->api_key)) {
52
+ throw new Exception("Please configure your MultiSafepay API Key.");
53
+ }
54
+
55
+ $url = $this->api_url . $api_method;
56
+ $ch = curl_init($url);
57
+
58
+ $request_headers = array(
59
+ "Accept: application/json",
60
+ "api_key:" . $this->api_key,
61
+ );
62
+
63
+ if ($http_body !== NULL) {
64
+ $request_headers[] = "Content-Type: application/json";
65
+ curl_setopt($ch, CURLOPT_POST, 1);
66
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $http_body);
67
+ }
68
+
69
+ /* echo $url;
70
+ print_r($request_headers);
71
+ print_r($http_body);exit;*/
72
+
73
+
74
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
75
+ curl_setopt($ch, CURLINFO_HEADER_OUT, true);
76
+ curl_setopt($ch, CURLOPT_ENCODING, "");
77
+ curl_setopt($ch, CURLOPT_TIMEOUT, 120);
78
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
79
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
80
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $http_method);
81
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
82
+
83
+ $body = curl_exec($ch);
84
+
85
+ if($this->debug){
86
+ $this->request = $http_body;
87
+ $this->response = $body;
88
+ }
89
+
90
+ if (curl_errno($ch)) {
91
+ throw new Exception("Unable to communicatie with the MultiSafepay payment server (" . curl_errno($ch) . "): " . curl_error($ch) . ".");
92
+ }
93
+
94
+ curl_close($ch);
95
+ return $body;
96
+ }
97
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Object/Affiliates.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__) . "/Core.php";
3
+ class Object_Affiliates extends Object_Core {
4
+
5
+ public $success;
6
+ public $data;
7
+
8
+ public function patch($body, $endpoint = '') {
9
+ $result = parent::patch(json_encode($body), $endpoint);
10
+ $this->success = $result->success;
11
+ $this->data = $result->data;
12
+ return $result;
13
+ }
14
+
15
+ public function get($type = 'websites', $id, $body = array(), $query_string = false) {
16
+ $result = parent::get($type, $id, $body, $query_string);
17
+ $this->success = $result->success;
18
+ $this->data = $result->data;
19
+ return $this->data;
20
+ }
21
+
22
+ public function post($body, $endpoint = 'websites') {
23
+ $result = parent::post(json_encode($body), $endpoint);
24
+ $this->success = $result->success;
25
+ $this->data = $result->data;
26
+ return $this->data;
27
+ }
28
+
29
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Object/Core.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Object_Core {
4
+
5
+ protected $mspapi;
6
+ public $result;
7
+
8
+ public function __construct(Client $mspapi) {
9
+ $this->mspapi = $mspapi;
10
+ }
11
+
12
+ public function post($body, $endpoint = 'orders') {
13
+ $this->result = $this->processRequest('POST', $endpoint, $body);
14
+ return $this->result;
15
+ }
16
+
17
+ public function patch($body, $endpoint = '') {
18
+ $this->result = $this->processRequest('PATCH', $endpoint, $body);
19
+ return $this->result;
20
+ }
21
+
22
+ public function getResult() {
23
+ return $this->result;
24
+ }
25
+
26
+ public function get($endpoint, $id, $body = array(), $query_string = false) {
27
+ if (!$query_string) {
28
+ $url = "{$endpoint}/{$id}";
29
+ } else {
30
+ $url = "{$endpoint}?{$query_string}";
31
+ }
32
+
33
+
34
+ $this->result = $this->processRequest('GET', $url, $body);
35
+ return $this->result;
36
+ }
37
+
38
+ protected function processRequest($http_method, $api_method, $http_body = NULL) {
39
+ $body = $this->mspapi->processAPIRequest($http_method, $api_method, $http_body);
40
+ if (!($object = @json_decode($body))) {
41
+ throw new Exception("'{$body}'.");
42
+ }
43
+
44
+ if (!empty($object->error_code)) {
45
+ $exception = new Exception("{$object->error_code}: {$object->error_info}.");
46
+ throw $exception;
47
+ }
48
+ return $object;
49
+ }
50
+
51
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Object/Gateways.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__) . "/Core.php";
3
+ class Object_Gateways extends Object_Core {
4
+
5
+ public $success;
6
+ public $data;
7
+
8
+ public function get($endpoint = 'gateways', $type = '', $body = array(), $query_string = false) {
9
+ $result = parent::get($endpoint, $type, json_encode($body), $query_string);
10
+ $this->success = $result->success;
11
+ $this->data = $result->data;
12
+
13
+ return $this->data;
14
+ }
15
+
16
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Object/Issuers.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__) . "/Core.php";
3
+ class Object_Issuers extends Object_Core {
4
+
5
+ public $success;
6
+ public $data;
7
+
8
+ public function get($endpoint = 'issuers', $type = 'ideal', $body = array(), $query_string = false) {
9
+
10
+ $result = parent::get($endpoint, $type, $body, $query_string);
11
+ $this->success = $result->success;
12
+ $this->data = $result->data;
13
+
14
+ return $this->data;
15
+ }
16
+
17
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Object/Orders.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__) . "/Core.php";
3
+
4
+ class Object_Orders extends Object_Core {
5
+
6
+ public $success;
7
+ public $data;
8
+
9
+ public function patch($body, $endpoint = '') {
10
+ $result = parent::patch(json_encode($body), $endpoint);
11
+ $this->success = $result->success;
12
+ $this->data = $result->data;
13
+ return $result;
14
+ }
15
+
16
+ public function get($type = 'orders', $id, $body = array(), $query_string = false) {
17
+ $result = parent::get($type, $id, $body, $query_string);
18
+ $this->success = $result->success;
19
+ $this->data = $result->data;
20
+ return $this->data;
21
+ }
22
+
23
+ public function post($body, $endpoint = 'orders') {
24
+ $result = parent::post(json_encode($body), $endpoint);
25
+ $this->success = $result->success;
26
+ $this->data = $result->data;
27
+ return $this->data;
28
+ }
29
+
30
+ public function getPaymentLink() {
31
+ return $this->data->payment_url;
32
+ }
33
+
34
+ }
app/code/community/MultiSafepay/Msp/Model/Api/Paylink.php CHANGED
@@ -49,6 +49,8 @@ class MultiSafepay_Msp_Model_Api_Paylink {
49
  //'msp_einvoice', for now we dont allow einvoice manual transaction requests
50
  'msp_mistercash' => 'MISTERCASH',
51
  'msp_visa' => 'VISA',
 
 
52
  'msp_mastercard' => 'MASTERCARD',
53
  'msp_banktransfer' => 'BANKTRANS',
54
  'msp_maestro' => 'MAESTRO',
49
  //'msp_einvoice', for now we dont allow einvoice manual transaction requests
50
  'msp_mistercash' => 'MISTERCASH',
51
  'msp_visa' => 'VISA',
52
+ 'msp_eps' => 'EPS',
53
+ 'msp_ferbuy' => 'FERBUY',
54
  'msp_mastercard' => 'MASTERCARD',
55
  'msp_banktransfer' => 'BANKTRANS',
56
  'msp_maestro' => 'MAESTRO',
app/code/community/MultiSafepay/Msp/Model/Base.php CHANGED
@@ -26,12 +26,15 @@ class MultiSafepay_Msp_Model_Base extends Varien_Object {
26
  protected $_paid;
27
  public $methodMap = array(
28
  'IDEAL' => 'msp_ideal',
 
29
  'DOTPAY' => 'msp_dotpay',
30
  'PAYAFTER' => 'msp_payafter',
31
  'EINVOICE' => 'msp_einvoice',
32
  'KLARNA' => 'msp_klarna',
33
  'MISTERCASH' => 'msp_mistercash',
34
  'VISA' => 'msp_visa',
 
 
35
  'MASTERCARD' => 'msp_mastercard',
36
  'BANKTRANS' => 'msp_banktransfer',
37
  'MAESTRO' => 'msp_maestro',
26
  protected $_paid;
27
  public $methodMap = array(
28
  'IDEAL' => 'msp_ideal',
29
+ 'CREDITCARD' => 'msp_creditcard',
30
  'DOTPAY' => 'msp_dotpay',
31
  'PAYAFTER' => 'msp_payafter',
32
  'EINVOICE' => 'msp_einvoice',
33
  'KLARNA' => 'msp_klarna',
34
  'MISTERCASH' => 'msp_mistercash',
35
  'VISA' => 'msp_visa',
36
+ 'EPS' => 'msp_eps',
37
+ 'FERBUY' => 'msp_ferbuy',
38
  'MASTERCARD' => 'msp_mastercard',
39
  'BANKTRANS' => 'msp_banktransfer',
40
  'MAESTRO' => 'msp_maestro',
app/code/community/MultiSafepay/Msp/Model/Config/Sources/Creditcards.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ class MultiSafepay_Msp_Model_Config_Sources_Creditcards {
9
+
10
+ /**
11
+ * @return array
12
+ */
13
+ public function toOptionArray() {
14
+ return array(
15
+ array(
16
+ "value" => "VISA",
17
+ "label" => "Visa"
18
+ ),
19
+ array(
20
+ "value" => "MASTERCARD",
21
+ "label" => "Mastercard"
22
+ ),
23
+ array(
24
+ "value" => "MAESTRO",
25
+ "label" => "Maestro"
26
+ ),
27
+ array(
28
+ "value" => "AMEX",
29
+ "label" => "American Express"
30
+ ),
31
+ );
32
+ }
33
+
34
+ }
app/code/community/MultiSafepay/Msp/Model/Gateway/Abstract.php CHANGED
@@ -39,12 +39,15 @@ abstract class MultiSafepay_Msp_Model_Gateway_Abstract extends Mage_Payment_Mode
39
  'msp',
40
  'mspcheckout',
41
  'msp_ideal',
 
42
  'msp_dotpay',
43
  'msp_payafter',
44
  'msp_einvoice',
45
  'msp_klarna',
46
  'msp_mistercash',
47
  'msp_visa',
 
 
48
  'msp_mastercard',
49
  'msp_banktransfer',
50
  'msp_maestro',
@@ -98,12 +101,15 @@ abstract class MultiSafepay_Msp_Model_Gateway_Abstract extends Mage_Payment_Mode
98
  );
99
  public $gateways = array(
100
  'msp_ideal',
 
101
  'msp_dotpay',
102
  'msp_payafter',
103
  'msp_einvoice',
104
  'msp_klarna',
105
  'msp_mistercash',
106
  'msp_visa',
 
 
107
  'msp_mastercard',
108
  'msp_banktransfer',
109
  'msp_maestro',
@@ -369,12 +375,17 @@ abstract class MultiSafepay_Msp_Model_Gateway_Abstract extends Mage_Payment_Mode
369
  return Mage::getStoreConfig($path, $storeId);
370
  }
371
 
 
 
 
 
372
  public function refund(Varien_Object $payment, $amount) {
373
  $order = $payment->getOrder();
374
  $payment = $order->getPayment()->getMethodInstance();
375
-
376
-
377
  $data = Mage::app()->getRequest()->getPost('creditmemo');
 
 
378
  if(isset($data['servicecost'])){
379
  $refunded_servicecost = $data['servicecost'];
380
  if ($refunded_servicecost != $order->getServicecost()) {
@@ -443,6 +454,125 @@ abstract class MultiSafepay_Msp_Model_Gateway_Abstract extends Mage_Payment_Mode
443
  }
444
  }
445
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
446
 
447
  // build request
448
  $mapi = new MultiSafepay();
39
  'msp',
40
  'mspcheckout',
41
  'msp_ideal',
42
+ 'msp_creditcard',
43
  'msp_dotpay',
44
  'msp_payafter',
45
  'msp_einvoice',
46
  'msp_klarna',
47
  'msp_mistercash',
48
  'msp_visa',
49
+ 'msp_eps',
50
+ 'msp_ferbuy',
51
  'msp_mastercard',
52
  'msp_banktransfer',
53
  'msp_maestro',
101
  );
102
  public $gateways = array(
103
  'msp_ideal',
104
+ 'msp_creditcard',
105
  'msp_dotpay',
106
  'msp_payafter',
107
  'msp_einvoice',
108
  'msp_klarna',
109
  'msp_mistercash',
110
  'msp_visa',
111
+ 'msp_eps',
112
+ 'msp_ferbuy',
113
  'msp_mastercard',
114
  'msp_banktransfer',
115
  'msp_maestro',
375
  return Mage::getStoreConfig($path, $storeId);
376
  }
377
 
378
+
379
+
380
+
381
+
382
  public function refund(Varien_Object $payment, $amount) {
383
  $order = $payment->getOrder();
384
  $payment = $order->getPayment()->getMethodInstance();
385
+
 
386
  $data = Mage::app()->getRequest()->getPost('creditmemo');
387
+
388
+
389
  if(isset($data['servicecost'])){
390
  $refunded_servicecost = $data['servicecost'];
391
  if ($refunded_servicecost != $order->getServicecost()) {
454
  }
455
  }
456
 
457
+ //This is a PAD/Klarna/Einvoice refund so we need to update the checkout data. We will be using the JSON API instead
458
+ if($payment->getCode() == self::MSP_GENERAL_PAD_CODE || $payment->getCode() == self::MSP_GENERAL_KLARNA_CODE || $payment->getCode() == self::MSP_GENERAL_EINVOICE_CODE){
459
+ if($config['test_api'] == 'test'){
460
+ $mspurl = 'https://testapi.multisafepay.com/v1/json/';
461
+ }else{
462
+ $mspurl = 'https://api.multisafepay.com/v1/json/';
463
+ }
464
+
465
+ require_once dirname(__FILE__) . "/../Api/Client.php";
466
+
467
+ $msp = new Client;
468
+ $msp->setApiKey($config['api_key']);
469
+ $msp->setApiUrl($mspurl);
470
+ $msporder = $msp->orders->get($type = 'orders', $order->getIncrementId(), $body = array(), $query_string = false);
471
+
472
+
473
+ $originalCart = $msporder->shopping_cart;
474
+
475
+ $refundData = array();
476
+ //$refundData['checkout_data']['items'];
477
+
478
+
479
+ foreach ($originalCart->items as $key => $item) {
480
+ if ($item->unit_price > 0) {
481
+ $refundData['checkout_data']['items'][] = $item;
482
+ }
483
+
484
+ foreach ($order->getCreditmemosCollection() as $creditmemo) {
485
+ foreach($creditmemo->getAllItems() as $product){
486
+
487
+ $product_id = $product->getData('order_item_id');
488
+
489
+ if ($product_id == $item->merchant_item_id) {
490
+ $qty_refunded = $product->getData('qty');
491
+ if ($qty_refunded > 0) {
492
+ if ($item->unit_price > 0) {
493
+ $refundItem = (OBJECT) Array();
494
+ $refundItem->name = $item->name;
495
+ $refundItem->description = $item->description;
496
+ $refundItem->unit_price = '-' . $item->unit_price;
497
+ $refundItem->quantity = round($qty_refunded);
498
+ $refundItem->merchant_item_id = $item->merchant_item_id;
499
+ $refundItem->tax_table_selector = $item->tax_table_selector;
500
+ $refundData['checkout_data']['items'][] = $refundItem;
501
+ }
502
+ }
503
+ }
504
+ }
505
+ }
506
+
507
+ foreach($data['items'] as $productid => $proddata){
508
+ if($item->merchant_item_id == $productid){
509
+ if($proddata['qty'] > 0){
510
+ $refundItem = (OBJECT) Array();
511
+ $refundItem->name = $item->name;
512
+ $refundItem->description = $item->description;
513
+ $refundItem->unit_price = '-' . $item->unit_price;
514
+ $refundItem->quantity = round($proddata['qty']);
515
+ $refundItem->merchant_item_id = $item->merchant_item_id;
516
+ $refundItem->tax_table_selector = $item->tax_table_selector;
517
+ $refundData['checkout_data']['items'][] = $refundItem;
518
+ }
519
+ }
520
+ }
521
+
522
+ //The complete shipping cost is refunded also so we can remove it from the checkout data and refund it
523
+ if($item->merchant_item_id == 'msp-shipping'){
524
+ if($data['shipping_amount'] == $order->getShippingAmount()){
525
+ $refundItem = (OBJECT) Array();
526
+ $refundItem->name = $item->name;
527
+ $refundItem->description = $item->description;
528
+ $refundItem->unit_price = '-' . $item->unit_price;
529
+ $refundItem->quantity = '1';
530
+ $refundItem->merchant_item_id = $item->merchant_item_id;
531
+ $refundItem->tax_table_selector = $item->tax_table_selector;
532
+ $refundData['checkout_data']['items'][] = $refundItem;
533
+ }else{
534
+ if($data['shipping_amount'] != 0){
535
+ Mage::getSingleton('adminhtml/session')->addError('MultiSafepay: Refund not processed online as it did not match the complete shipping cost');
536
+ $order->addStatusHistoryComment('MultiSafepay: Refund not processed online as it did not match the complete shipping cost', false);
537
+ $order->save();
538
+ return $this;
539
+ }
540
+ }
541
+ }
542
+ if($item->name == $order->getShippingDescription() && $item->unit_price <0){
543
+ $refundItem = (OBJECT) Array();
544
+ $refundItem->name = $item->name;
545
+ $refundItem->description = $item->description;
546
+ $refundItem->unit_price = $item->unit_price;
547
+ $refundItem->quantity = '1';
548
+ $refundItem->merchant_item_id = $item->merchant_item_id;
549
+ $refundItem->tax_table_selector = $item->tax_table_selector;
550
+ $refundData['checkout_data']['items'][] = $refundItem;
551
+ }
552
+ }
553
+
554
+
555
+
556
+
557
+ //print_r($originalCart);
558
+ //print_r($refundData);exit;
559
+
560
+ $endpoint = 'orders/' . $order->getIncrementId() . '/refunds';
561
+ try {
562
+ $mspreturn = $msp->orders->post($refundData, $endpoint);
563
+ Mage::log($mspreturn, null, 'MultiSafepay-Refunds.log');
564
+ Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('msp')->__('Refund request has been sent successfully to MultiSafepay, your transaction has been refunded.'));
565
+ } catch (Exception $e) {
566
+ Mage::log($mspreturn, null, 'MultiSafepay-Refunds.log');
567
+
568
+ Mage::getSingleton('adminhtml/session')->addError('Online processing of the refund failed, reason: ' . $e->getMessage());
569
+ $order->addStatusHistoryComment('Online processing of the refund failed, reason: ' . $e->getMessage(), false);
570
+ $order->save();
571
+ }
572
+ return $this;
573
+ }
574
+
575
+
576
 
577
  // build request
578
  $mapi = new MultiSafepay();
app/code/community/MultiSafepay/Msp/Model/Gateway/Creditcard.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ class MultiSafepay_Msp_Model_Gateway_Creditcard extends MultiSafepay_Msp_Model_Gateway_Abstract {
9
+
10
+ protected $_code = "msp_creditcard";
11
+ public $_model = "creditcard";
12
+ public $_gateway = "CREDITCARD";
13
+ protected $_formBlockType = 'msp/creditcards';
14
+
15
+
16
+ public function assignData($data) {
17
+ parent::assignData($data);
18
+ $session = Mage::getSingleton('checkout/session');
19
+ $session->setData('payment_additional', $data);
20
+
21
+
22
+ return $this;
23
+ }
24
+
25
+ public function getCreditcards($storeId = null) {
26
+ $cards = Mage::getStoreConfig("msp_gateways/msp_creditcard/card_select");
27
+ return $cards;
28
+ }
29
+
30
+
31
+ public function getCreditcardLabels($storeId = null) {
32
+ $labels = array("VISA"=>"Visa", "MASTERCARD"=>"Mastercard", "MAESTRO"=>"Maestro","AMEX"=>"American Express");
33
+ return $labels;
34
+ }
35
+
36
+
37
+ }
app/code/community/MultiSafepay/Msp/Model/Gateway/Einvoice.php CHANGED
@@ -35,12 +35,15 @@ class MultiSafepay_Msp_Model_Gateway_Einvoice extends MultiSafepay_Msp_Model_Gat
35
  );
36
  public $gateways = array(
37
  'msp_ideal',
 
38
  'msp_dotpay',
39
  'msp_payafter',
40
  'msp_einvoice',
41
  'msp_klarna',
42
  'msp_mistercash',
43
  'msp_visa',
 
 
44
  'msp_mastercard',
45
  'msp_banktransfer',
46
  'msp_maestro',
@@ -66,6 +69,9 @@ class MultiSafepay_Msp_Model_Gateway_Einvoice extends MultiSafepay_Msp_Model_Gat
66
  $availableByIP = false;
67
  }
68
  }
 
 
 
69
 
70
 
71
 
@@ -80,6 +86,8 @@ class MultiSafepay_Msp_Model_Gateway_Einvoice extends MultiSafepay_Msp_Model_Gat
80
  $currencies = explode(',', Mage::getStoreConfig('msp_giftcards/' . $this->_code . '/allowed_currency'));
81
  $isAllowConvert = Mage::getStoreConfigFlag('msp/settings/allow_convert_currency');
82
  }
 
 
83
 
84
 
85
  if ($isAllowConvert) {
@@ -91,8 +99,19 @@ class MultiSafepay_Msp_Model_Gateway_Einvoice extends MultiSafepay_Msp_Model_Gat
91
  $availableByCurrency = false;
92
  }
93
  }
 
 
 
 
 
 
 
 
 
 
 
94
 
95
- $this->_canUseCheckout = $availableByIP && $availableByCurrency;
96
  }
97
 
98
  public function getOrderPlaceRedirectUrl() {
35
  );
36
  public $gateways = array(
37
  'msp_ideal',
38
+ 'msp_creditcard',
39
  'msp_dotpay',
40
  'msp_payafter',
41
  'msp_einvoice',
42
  'msp_klarna',
43
  'msp_mistercash',
44
  'msp_visa',
45
+ 'msp_eps',
46
+ 'msp_ferbuy',
47
  'msp_mastercard',
48
  'msp_banktransfer',
49
  'msp_maestro',
69
  $availableByIP = false;
70
  }
71
  }
72
+
73
+
74
+
75
 
76
 
77
 
86
  $currencies = explode(',', Mage::getStoreConfig('msp_giftcards/' . $this->_code . '/allowed_currency'));
87
  $isAllowConvert = Mage::getStoreConfigFlag('msp/settings/allow_convert_currency');
88
  }
89
+
90
+
91
 
92
 
93
  if ($isAllowConvert) {
99
  $availableByCurrency = false;
100
  }
101
  }
102
+ $isavailablebygroup= true;
103
+ $group_id = 0; // If not logged in, customer group id is 0
104
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) { // If logged in, set customer group id
105
+ $group_id = Mage::getSingleton('customer/session')->getCustomer()->getGroupId();
106
+ }
107
+ $option = trim(Mage::getStoreConfig($this->_configCode . '/' . $this->_code . '/specificgroups'));
108
+ $specificgroups = explode(",", $option);
109
+ // If customer group is not in available groups and config option is not empty, disable this gateway
110
+ if (!in_array($group_id, $specificgroups) && $option !== "") {
111
+ $isavailablebygroup = false;
112
+ }
113
 
114
+ $this->_canUseCheckout = $availableByIP && $availableByCurrency && $isavailablebygroup;
115
  }
116
 
117
  public function getOrderPlaceRedirectUrl() {
app/code/community/MultiSafepay/Msp/Model/Gateway/Eps.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MultiSafepay_Msp_Model_Gateway_Eps extends MultiSafepay_Msp_Model_Gateway_Abstract {
4
+
5
+ protected $_code = "msp_eps";
6
+ public $_model = "eps";
7
+ public $_gateway = "EPS";
8
+
9
+ }
app/code/community/MultiSafepay/Msp/Model/Gateway/Ferbuy.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MultiSafepay_Msp_Model_Gateway_Ferbuy extends MultiSafepay_Msp_Model_Gateway_Abstract {
4
+
5
+ protected $_code = "msp_ferbuy";
6
+ public $_model = "ferbuy";
7
+ public $_gateway = "FERBUY";
8
+
9
+ }
app/code/community/MultiSafepay/Msp/Model/Gateway/Klarna.php CHANGED
@@ -41,6 +41,8 @@ class MultiSafepay_Msp_Model_Gateway_Klarna extends MultiSafepay_Msp_Model_Gatew
41
  'msp_klarna',
42
  'msp_mistercash',
43
  'msp_visa',
 
 
44
  'msp_mastercard',
45
  'msp_banktransfer',
46
  'msp_maestro',
@@ -87,7 +89,19 @@ class MultiSafepay_Msp_Model_Gateway_Klarna extends MultiSafepay_Msp_Model_Gatew
87
  $availableByCurrency = false;
88
  }
89
  }
90
- $this->_canUseCheckout = $availableByIP && $availableByCurrency;
 
 
 
 
 
 
 
 
 
 
 
 
91
  }
92
 
93
  public function getOrderPlaceRedirectUrl() {
41
  'msp_klarna',
42
  'msp_mistercash',
43
  'msp_visa',
44
+ 'msp_eps',
45
+ 'msp_ferbuy',
46
  'msp_mastercard',
47
  'msp_banktransfer',
48
  'msp_maestro',
89
  $availableByCurrency = false;
90
  }
91
  }
92
+ $isavailablebygroup= true;
93
+ $group_id = 0; // If not logged in, customer group id is 0
94
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) { // If logged in, set customer group id
95
+ $group_id = Mage::getSingleton('customer/session')->getCustomer()->getGroupId();
96
+ }
97
+ $option = trim(Mage::getStoreConfig($this->_configCode . '/' . $this->_code . '/specificgroups'));
98
+ $specificgroups = explode(",", $option);
99
+ // If customer group is not in available groups and config option is not empty, disable this gateway
100
+ if (!in_array($group_id, $specificgroups) && $option !== "") {
101
+ $isavailablebygroup = false;
102
+ }
103
+
104
+ $this->_canUseCheckout = $availableByIP && $availableByCurrency && $isavailablebygroup;
105
  }
106
 
107
  public function getOrderPlaceRedirectUrl() {
app/code/community/MultiSafepay/Msp/Model/Gateway/Payafter.php CHANGED
@@ -40,6 +40,8 @@ class MultiSafepay_Msp_Model_Gateway_PayAfter extends MultiSafepay_Msp_Model_Gat
40
  'msp_klarna',
41
  'msp_mistercash',
42
  'msp_visa',
 
 
43
  'msp_mastercard',
44
  'msp_banktransfer',
45
  'msp_maestro',
@@ -91,7 +93,19 @@ class MultiSafepay_Msp_Model_Gateway_PayAfter extends MultiSafepay_Msp_Model_Gat
91
  }
92
  }
93
 
94
- $this->_canUseCheckout = $availableByIP && $availableByCurrency;
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
 
97
  public function getOrderPlaceRedirectUrl() {
40
  'msp_klarna',
41
  'msp_mistercash',
42
  'msp_visa',
43
+ 'msp_eps',
44
+ 'msp_ferbuy',
45
  'msp_mastercard',
46
  'msp_banktransfer',
47
  'msp_maestro',
93
  }
94
  }
95
 
96
+ $isavailablebygroup= true;
97
+ $group_id = 0; // If not logged in, customer group id is 0
98
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) { // If logged in, set customer group id
99
+ $group_id = Mage::getSingleton('customer/session')->getCustomer()->getGroupId();
100
+ }
101
+ $option = trim(Mage::getStoreConfig($this->_configCode . '/' . $this->_code . '/specificgroups'));
102
+ $specificgroups = explode(",", $option);
103
+ // If customer group is not in available groups and config option is not empty, disable this gateway
104
+ if (!in_array($group_id, $specificgroups) && $option !== "") {
105
+ $isavailablebygroup = false;
106
+ }
107
+
108
+ $this->_canUseCheckout = $availableByIP && $availableByCurrency && $isavailablebygroup;
109
  }
110
 
111
  public function getOrderPlaceRedirectUrl() {
app/code/community/MultiSafepay/Msp/Model/Gateway/Vvvgiftcard.php CHANGED
@@ -9,6 +9,6 @@ class MultiSafepay_Msp_Model_Gateway_Vvvgiftcard extends MultiSafepay_Msp_Model_
9
 
10
  protected $_code = "msp_vvvgiftcard";
11
  public $_model = "vvvgiftcard";
12
- public $_gateway = "VVVGIFTCARD";
13
 
14
  }
9
 
10
  protected $_code = "msp_vvvgiftcard";
11
  public $_model = "vvvgiftcard";
12
+ public $_gateway = "VVVBON";
13
 
14
  }
app/code/community/MultiSafepay/Msp/Model/Observer/Order.php CHANGED
@@ -18,11 +18,14 @@ class MultiSafepay_Msp_Model_Observer_Order extends MultiSafepay_Msp_Model_Obser
18
  'msp',
19
  //'mspcheckout', dont allow fco
20
  'msp_ideal',
 
21
  'msp_dotpay',
22
  //'msp_payafter', for now we dont allow payafter manual transaction requests
23
  //'msp_einvoice', for now we dont allow payafter manual transaction requests
24
  'msp_mistercash',
25
  'msp_visa',
 
 
26
  'msp_mastercard',
27
  'msp_banktransfer',
28
  'msp_maestro',
@@ -118,9 +121,17 @@ class MultiSafepay_Msp_Model_Observer_Order extends MultiSafepay_Msp_Model_Obser
118
 
119
  $api = Mage::getModel('msp/api_paylink');
120
  $configMain = Mage::getStoreConfig('msp/settings', $order->getStoreId());
 
 
 
 
 
121
  if (!$api->isPaymentLinkCreated($order)) {
122
  if ($payment->getCode() == self::MSP_GENERAL_PAD_CODE || $payment->getCode() == self::MSP_GENERAL_KLARNA_CODE || $payment->getCode() == self::MSP_GENERAL_EINVOICE_CODE) {
123
 
 
 
 
124
 
125
  $api->test = ($config['test_api_pad'] == 'test');
126
  $suffix = '';
18
  'msp',
19
  //'mspcheckout', dont allow fco
20
  'msp_ideal',
21
+ 'msp_creditcard',
22
  'msp_dotpay',
23
  //'msp_payafter', for now we dont allow payafter manual transaction requests
24
  //'msp_einvoice', for now we dont allow payafter manual transaction requests
25
  'msp_mistercash',
26
  'msp_visa',
27
+ 'msp_eps',
28
+ 'msp_ferbuy',
29
  'msp_mastercard',
30
  'msp_banktransfer',
31
  'msp_maestro',
121
 
122
  $api = Mage::getModel('msp/api_paylink');
123
  $configMain = Mage::getStoreConfig('msp/settings', $order->getStoreId());
124
+
125
+ if(!$config['paylink_create']){
126
+ return $this;
127
+ }
128
+
129
  if (!$api->isPaymentLinkCreated($order)) {
130
  if ($payment->getCode() == self::MSP_GENERAL_PAD_CODE || $payment->getCode() == self::MSP_GENERAL_KLARNA_CODE || $payment->getCode() == self::MSP_GENERAL_EINVOICE_CODE) {
131
 
132
+
133
+
134
+
135
 
136
  $api->test = ($config['test_api_pad'] == 'test');
137
  $suffix = '';
app/code/community/MultiSafepay/Msp/Model/Payment.php CHANGED
@@ -45,12 +45,15 @@ class MultiSafepay_Msp_Model_Payment extends Varien_Object {
45
  );
46
  public $gateways = array(
47
  'msp_ideal',
 
48
  'msp_dotpay',
49
  'msp_payafter',
50
  'msp_einvoice',
51
  'msp_klarna',
52
  'msp_mistercash',
53
  'msp_visa',
 
 
54
  'msp_mastercard',
55
  'msp_banktransfer',
56
  'msp_maestro',
@@ -378,9 +381,10 @@ class MultiSafepay_Msp_Model_Payment extends Varien_Object {
378
  $this->api->gatewayinfo['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
379
  }
380
 
381
- if (isset($_GET['birthday'])) {
382
- $this->api->gatewayinfo['birthday'] = $_GET['birthday'];
383
- $this->api->customer['birthday'] = $_GET['birthday'];
 
384
  } else {
385
  $this->api->gatewayinfo['birthday'] = ''; //not available
386
  }
@@ -859,7 +863,7 @@ class MultiSafepay_Msp_Model_Payment extends Varien_Object {
859
 
860
  // create item
861
  $c_item = new MspItem($itemName, $item->getDescription(), $quantity, $price, 'KG', $item->getWeight());
862
- $c_item->SetMerchantItemId($item->getSku());
863
  $c_item->SetTaxTableSelector($taxClass);
864
  $this->api->cart->AddItem($c_item);
865
  }
@@ -1052,9 +1056,15 @@ class MultiSafepay_Msp_Model_Payment extends Varien_Object {
1052
  $session = Mage::getSingleton('checkout/session');
1053
  $payment_data = $session->getData('payment_additional');
1054
 
 
 
1055
 
1056
  if (is_object($payment_data)) {
1057
- $ideal_issuer = $payment_data->msp_ideal_bank;
 
 
 
 
1058
  }
1059
 
1060
 
45
  );
46
  public $gateways = array(
47
  'msp_ideal',
48
+ 'msp_creditcard',
49
  'msp_dotpay',
50
  'msp_payafter',
51
  'msp_einvoice',
52
  'msp_klarna',
53
  'msp_mistercash',
54
  'msp_visa',
55
+ 'msp_eps',
56
+ 'msp_ferbuy',
57
  'msp_mastercard',
58
  'msp_banktransfer',
59
  'msp_maestro',
381
  $this->api->gatewayinfo['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
382
  }
383
 
384
+ if (isset($_GET['birthday'])) {
385
+ $birthday = str_replace('/', '-', $_GET['birthday']);
386
+ $this->api->gatewayinfo['birthday'] = $birthday;
387
+ $this->api->customer['birthday'] = $birthday;
388
  } else {
389
  $this->api->gatewayinfo['birthday'] = ''; //not available
390
  }
863
 
864
  // create item
865
  $c_item = new MspItem($itemName, $item->getDescription(), $quantity, $price, 'KG', $item->getWeight());
866
+ $c_item->SetMerchantItemId($item->getId());
867
  $c_item->SetTaxTableSelector($taxClass);
868
  $this->api->cart->AddItem($c_item);
869
  }
1056
  $session = Mage::getSingleton('checkout/session');
1057
  $payment_data = $session->getData('payment_additional');
1058
 
1059
+ $iss=$payment_data->msp_ideal_bank;
1060
+ $cc= $payment_data->msp_creditcard_cc;
1061
 
1062
  if (is_object($payment_data)) {
1063
+ if(!empty($iss)){
1064
+ $ideal_issuer = $payment_data->msp_ideal_bank;
1065
+ }elseif(!empty($cc)){
1066
+ $api->transaction['gateway'] = $payment_data->msp_creditcard_cc;
1067
+ }
1068
  }
1069
 
1070
 
app/code/community/MultiSafepay/Msp/Model/Service/Quote.php CHANGED
@@ -11,11 +11,14 @@ class MultiSafepay_Msp_Model_Service_Quote extends Mage_Sales_Model_Service_Quot
11
  'msp',
12
  //'mspcheckout',
13
  'msp_ideal',
 
14
  'msp_dotpay',
15
  'msp_payafter',
16
  'msp_einvoice',
17
  'msp_mistercash',
18
  'msp_visa',
 
 
19
  'msp_mastercard',
20
  'msp_banktransfer',
21
  'msp_maestro',
11
  'msp',
12
  //'mspcheckout',
13
  'msp_ideal',
14
+ 'msp_creditcard',
15
  'msp_dotpay',
16
  'msp_payafter',
17
  'msp_einvoice',
18
  'msp_mistercash',
19
  'msp_visa',
20
+ 'msp_eps',
21
+ 'msp_ferbuy',
22
  'msp_mastercard',
23
  'msp_banktransfer',
24
  'msp_maestro',
app/code/community/MultiSafepay/Msp/Model/Servicecost/Quote/Address/Total/Servicecost.php CHANGED
@@ -10,12 +10,15 @@ class MultiSafepay_Msp_Model_Servicecost_Quote_Address_Total_Servicecost extends
10
  'msp',
11
  'mspcheckout',
12
  'msp_ideal',
 
13
  'msp_dotpay',
14
  'msp_payafter',
15
  'msp_einvoice',
16
  'msp_klarna',
17
  'msp_mistercash',
18
  'msp_visa',
 
 
19
  'msp_mastercard',
20
  'msp_banktransfer',
21
  'msp_maestro',
@@ -69,12 +72,15 @@ class MultiSafepay_Msp_Model_Servicecost_Quote_Address_Total_Servicecost extends
69
  );
70
  public $gateways = array(
71
  'msp_ideal',
 
72
  'msp_dotpay',
73
  'msp_payafter',
74
  'msp_einvoice',
75
  'msp_klarna',
76
  'msp_mistercash',
77
  'msp_visa',
 
 
78
  'msp_mastercard',
79
  'msp_banktransfer',
80
  'msp_maestro',
10
  'msp',
11
  'mspcheckout',
12
  'msp_ideal',
13
+ 'msp_creditcard',
14
  'msp_dotpay',
15
  'msp_payafter',
16
  'msp_einvoice',
17
  'msp_klarna',
18
  'msp_mistercash',
19
  'msp_visa',
20
+ 'msp_eps',
21
+ 'msp_ferbuy',
22
  'msp_mastercard',
23
  'msp_banktransfer',
24
  'msp_maestro',
72
  );
73
  public $gateways = array(
74
  'msp_ideal',
75
+ 'msp_creditcard',
76
  'msp_dotpay',
77
  'msp_payafter',
78
  'msp_einvoice',
79
  'msp_klarna',
80
  'msp_mistercash',
81
  'msp_visa',
82
+ 'msp_eps',
83
+ 'msp_ferbuy',
84
  'msp_mastercard',
85
  'msp_banktransfer',
86
  'msp_maestro',
app/code/community/MultiSafepay/Msp/Model/controllers/CheckoutController.php ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ require_once(Mage::getBaseDir('lib') . DS . 'multisafepay' . DS . 'MultiSafepay.combined.php');
9
+
10
+ class MultiSafepay_Msp_CheckoutController extends Mage_Core_Controller_Front_Action {
11
+
12
+ protected $base;
13
+
14
+ /**
15
+ * Checkout redirect -> start checkout transaction
16
+ */
17
+ public function redirectAction() {
18
+ /** @var $session Mage_Checkout_Model_Session */
19
+ $session = Mage::getSingleton('checkout/session');
20
+
21
+ /** @var $checkout MultiSafepay_Msp_Model_Checkout */
22
+ $checkout = Mage::getModel("msp/checkout");
23
+
24
+ // empty cart -> redirect
25
+ if (!$session->getQuote()->hasItems()) {
26
+ $this->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
27
+ return;
28
+ }
29
+
30
+ // create new quote
31
+ /** @var $storeQuote Mage_Sales_Model_Quote */
32
+ $storeQuote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore()->getId());
33
+ $storeQuote->setCustomerId(Mage::getModel('customer/session')->getCustomerId());
34
+ $storeQuote->merge($session->getQuote());
35
+ $storeQuote->setItemsCount($session->getQuote()->getItemsCount())->setItemsQty($session->getQuote()->getItemsQty())->setChangedFlag(false);
36
+ $storeQuote->save();
37
+
38
+ $baseCurrency = $session->getQuote()->getBaseCurrencyCode();
39
+ $currency = Mage::app()->getStore($session->getQuote()->getStoreId())->getBaseCurrency();
40
+ $session->getQuote()->collectTotals()->save();
41
+
42
+ // replace quote into session
43
+ $oldQuote = $session->getQuote();
44
+ $oldQuote->setIsActive(false)->save();
45
+ $session->replaceQuote($storeQuote);
46
+ Mage::getModel('checkout/cart')->init();
47
+ Mage::getModel('checkout/cart')->save();
48
+
49
+ // checkout
50
+ $checkoutLink = $checkout->startCheckout();
51
+
52
+ header("Location: " . $checkoutLink);
53
+ exit();
54
+ }
55
+
56
+ /**
57
+ * Agreements page
58
+ */
59
+ public function agreementsAction() {
60
+ $this->loadLayout();
61
+ $block = $this->getLayout()->createBlock(
62
+ 'Mage_Checkout_Block_Agreements', '', array('template' => 'msp/agreements.phtml')
63
+ );
64
+ echo $block->toHtml();
65
+ }
66
+
67
+ /**
68
+ * Return after transaction
69
+ */
70
+ public function returnAction() {
71
+ $this->notificationAction(true);
72
+ $transactionId = $this->getRequest()->getQuery('transactionid');
73
+
74
+ // clear cart
75
+ /** @var $session Mage_Checkout_Model_Session */
76
+ $session = Mage::getSingleton("checkout/session");
77
+ $session->unsQuoteId();
78
+ $session->getQuote()->setIsActive(false)->save();
79
+
80
+ // set some vars for the success page
81
+ $session->setLastSuccessQuoteId($transactionId);
82
+ $session->setLastQuoteId($transactionId);
83
+
84
+ /** @var $order Mage_Sales_Model_Order */
85
+ $order = Mage::getSingleton('sales/order')->loadByAttribute('ext_order_id', $transactionId);
86
+ $session->setLastOrderId($order->getId());
87
+ $session->setLastRealOrderId($order->getIncrementId());
88
+
89
+ $storeId = Mage::app()->getStore()->getId();
90
+ $config = Mage::getStoreConfig('mspcheckout/settings', $storeId);
91
+
92
+ // We now have an order so we can also request the customerID. With the customer ID we can login the user.
93
+ if ($config["auto_login_fco_user"]) {
94
+ $order_data = $order->getData();
95
+ $customer = Mage::getModel('customer/customer')->load($order_data['customer_id']);
96
+ $session = Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer);
97
+ }
98
+
99
+ // Just as an extra feature, option to redirect to the account instead of the thank you page.
100
+ if ($config["redirect_to_account"]) {
101
+ $this->_redirect("customer/account?utm_nooverride=1", array("_secure" => true));
102
+ } else {
103
+ $this->_redirect("checkout/onepage/success/", array("_secure" => true));
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Cancel action
109
+ */
110
+ public function cancelAction() {
111
+ $this->_redirect("checkout", array("_secure" => true));
112
+ }
113
+
114
+ /**
115
+ * Checks if this is a fastcheckout notification
116
+ */
117
+ public function isFCONotification($transId) {
118
+ $storeId = Mage::app()->getStore()->getStoreId();
119
+ $config = Mage::getStoreConfig('mspcheckout/settings', $storeId);
120
+
121
+ $msp = new MultiSafepay();
122
+ $msp->test = ($config["test_api"] == 'test');
123
+ $msp->merchant['account_id'] = $config["account_id"];
124
+ $msp->merchant['site_id'] = $config["site_id"];
125
+ $msp->merchant['site_code'] = $config["secure_code"];
126
+ $msp->transaction['id'] = $transId;
127
+
128
+ if ($msp->getStatus() == false) {
129
+ //Mage::log("Error while getting status.", null, "multisafepay.log");
130
+ } else {
131
+ //Mage::log("Got status: ".$msp->details['ewallet']['fastcheckout'], null, "multisafepay.log");
132
+ return $msp->details['ewallet']['fastcheckout'] == "YES";
133
+ }
134
+ }
135
+
136
+ /**
137
+ * Status notification
138
+ */
139
+ function notificationAction($return = false) {
140
+ $transactionId = $this->getRequest()->getQuery('transactionid');
141
+ $isInitial = ($this->getRequest()->getQuery('type') == 'initial') ? true : false;
142
+ $isShipping = ($this->getRequest()->getQuery('type') == 'shipping') ? true : false;
143
+
144
+ /** @var $checkout MultiSafepay_Msp_Model_Checkout */
145
+ $checkout = Mage::getModel('msp/checkout');
146
+
147
+ // Is this notification about new shipping rates?
148
+ if ($isShipping) {
149
+ $this->handleShippingRatesNotification($checkout);
150
+ return;
151
+ }
152
+
153
+ // Check if this is a fastcheckout notification
154
+ if ((!$isInitial) && (!$this->isFCONotification($transactionId))) {
155
+ //Mage::log("Redirecting to standard method notification URL...", null, "multisafepay.log");
156
+ $redirect = Mage::getUrl("msp/standard/notification/");
157
+ header('HTTP/1.1 307 Temporary Redirect');
158
+ header('Location: ' . $redirect);
159
+ exit;
160
+ }
161
+
162
+ // Is this notification about new shipping address?
163
+ if ($this->isShippingMethodsNotification()) {
164
+ $this->handleShippingMethodsNotification($checkout);
165
+ return;
166
+ }
167
+
168
+ $done = $checkout->notification($transactionId, $isInitial);
169
+
170
+ if (!$return) {
171
+ if ($isInitial) {
172
+ $returnUrl = Mage::getUrl("msp/checkout/return", array("_secure" => true)) . '?transactionid=' . $transactionId;
173
+
174
+ $storeId = Mage::getModel('sales/quote')->load($transactionId)->getStoreId();
175
+ $storeName = Mage::app()->getGroup($storeId)->getName();
176
+
177
+ // display return message
178
+ $this->getResponse()->setBody('Return to <a href="' . $returnUrl . '">' . $storeName . '</a>');
179
+ } else {
180
+ if ($done) {
181
+ $this->getResponse()->setBody('ok');
182
+ } else {
183
+ $this->getResponse()->setBody('ng');
184
+ }
185
+ }
186
+ } else {
187
+ return true;
188
+ }
189
+ }
190
+
191
+ /**
192
+ * @return bool
193
+ */
194
+ public function isShippingMethodsNotification() {
195
+ // Check for mandatory parameters
196
+ $country = $this->getRequest()->getQuery('country');
197
+ $countryCode = $this->getRequest()->getQuery('countrycode');
198
+ $transactionId = $this->getRequest()->getQuery('transactionid');
199
+
200
+ if (empty($country) || empty($countryCode) || empty($transactionId)) {
201
+ return false;
202
+ } else {
203
+ return true;
204
+ }
205
+ }
206
+
207
+ /**
208
+ * @param $model
209
+ */
210
+ public function handleShippingMethodsNotification($model) {
211
+ $country = $this->getRequest()->getQuery('country');
212
+ $countryCode = $this->getRequest()->getQuery('countrycode');
213
+ $transactionId = $this->getRequest()->getQuery('transactionid');
214
+ $weight = $this->getRequest()->getQuery('weight');
215
+ $size = $this->getRequest()->getQuery('size');
216
+
217
+ header("Content-Type:text/xml");
218
+ print($model->getShippingMethodsFilteredXML($country, $countryCode, $weight, $size, $transactionId));
219
+ }
220
+
221
+ /**
222
+ * @param $model MultiSafepay_Msp_Model_Checkout
223
+ */
224
+ public function handleShippingRatesNotification($model) {
225
+ $transactionId = $this->getRequest()->getQuery('transactionid');
226
+ $countryCode = $this->getRequest()->getQuery('countrycode');
227
+ $zipCode = $this->getRequest()->getQuery('zipcode');
228
+ $settings = array(
229
+ 'currency' => $this->getRequest()->getQuery('currency'),
230
+ 'country' => $this->getRequest()->getQuery('country'),
231
+ 'weight' => $this->getRequest()->getQuery('weight'),
232
+ 'amount' => $this->getRequest()->getQuery('amount'),
233
+ 'size' => $this->getRequest()->getQuery('size'),
234
+ );
235
+
236
+ header("Content-Type:text/xml");
237
+ print $model->getShippingRatesFilteredXML($transactionId, $countryCode, $zipCode, $settings);
238
+ }
239
+
240
+ }
app/code/community/MultiSafepay/Msp/Model/controllers/MspPaymentController.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ class MultiSafepay_Msp_MspPaymentController extends Mage_Core_Controller_Front_Action {
9
+
10
+ /**
11
+ * Notification for the 'old' module, just call the notification for the other controller
12
+ */
13
+ public function notificationAction() {
14
+ $controllerFile = dirname(__FILE__) . '/StandardController.php';
15
+ include_once($controllerFile);
16
+
17
+ $standard = new MultiSafepay_Msp_StandardController($this->getRequest(), $this->getResponse());
18
+ $standard->setGatewayModel('gateway_standard');
19
+ $standard->notificationAction();
20
+ }
21
+
22
+ }
app/code/community/MultiSafepay/Msp/Model/controllers/StandardController.php ADDED
@@ -0,0 +1,932 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ require_once(Mage::getBaseDir('lib') . DS . 'multisafepay' . DS . 'MultiSafepay.combined.php');
9
+
10
+ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Action {
11
+
12
+ private $gatewayModel = null;
13
+
14
+ /**
15
+ * Set gateway model
16
+ */
17
+ public function setGatewayModel($model) {
18
+ $this->gatewayModel = $model;
19
+ }
20
+
21
+ /**
22
+ * Get the current model
23
+ * - first check if set (gatewayModel)
24
+ * - check if we have one in the query string
25
+ * - if not return default
26
+ */
27
+ public function getGatewayModel() {
28
+ if ($this->gatewayModel) {
29
+ return $this->gatewayModel;
30
+ }
31
+
32
+
33
+ $orderId = $this->getRequest()->getQuery('transactionid');
34
+ $order = Mage::getModel('sales/order')->loadByIncrementId($orderId); //use a real increment order id here
35
+
36
+ $model = $this->getRequest()->getParam('model');
37
+
38
+ // filter
39
+ $model = preg_replace("|[^a-zA-Z]+|", "", $model);
40
+
41
+ if (empty($model)) {
42
+ if ($orderId == '') {
43
+ return "gateway_default";
44
+ } else {
45
+ if (is_object($order->getPayment())) {
46
+ $model = $order->getPayment()->getMethodInstance()->_model;
47
+ if ($model == '') {
48
+ return "gateway_default";
49
+ } else {
50
+ return "gateway_" . $model;
51
+ }
52
+ } else {
53
+ return "gateway_default";
54
+ }
55
+ }
56
+ } else {
57
+ return "gateway_" . $model;
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Payment redirect -> start transaction
63
+ */
64
+ public function redirectAction() {
65
+ $paymentModel = Mage::getSingleton("msp/" . $this->getGatewayModel());
66
+ $selected_gateway = '';
67
+ if (isset($paymentModel->_gateway)) {
68
+ $selected_gateway = $paymentModel->_gateway;
69
+ }
70
+
71
+ $paymentModel->setParams($this->getRequest()->getParams());
72
+
73
+ if ($selected_gateway != 'PAYAFTER' && $selected_gateway != 'KLARNA' && $selected_gateway != 'EINVOICE') {
74
+ $paymentLink = $paymentModel->startTransaction();
75
+ } else {
76
+ $paymentLink = $paymentModel->startPayAfterTransaction();
77
+ }
78
+
79
+ //header("Location: " . $paymentLink);
80
+
81
+ header('Content-type: text/html; charset=utf-8');
82
+ header("Location: " . $paymentLink, true);
83
+ header("Connection: close", true);
84
+ header("Content-Length: 0", true);
85
+ flush();
86
+ @ob_flush();
87
+
88
+ exit();
89
+ }
90
+
91
+ /**
92
+ * Return after transaction
93
+ */
94
+ public function returnAction() {
95
+ $transactionId = $this->getRequest()->getQuery('transactionid');
96
+
97
+ /** @var $session Mage_Checkout_Model_Session */
98
+ $session = Mage::getSingleton("checkout/session");
99
+ $session->unsQuoteId();
100
+ $session->getQuote()->setIsActive(false)->save();
101
+
102
+ // set some vars for the success page
103
+ $session->setLastSuccessQuoteId($transactionId);
104
+ $session->setLastQuoteId($transactionId);
105
+
106
+ /** @var $order Mage_Sales_Model_Order */
107
+ //$order = Mage::getSingleton('sales/order')->loadByAttribute('ext_order_id', $transactionId);
108
+ $order = Mage::getModel('sales/order')->loadByIncrementId($transactionId);
109
+ $session->setLastOrderId($order->getId());
110
+ $session->setLastRealOrderId($order->getIncrementId());
111
+
112
+ //$url = Mage::getUrl('checkout/onepage/success?utm_nooverride=1&__store', array("__secure" => true, "__store"=> $order->getStoreId()));
113
+ /* $url = Mage::getUrl('checkout/onepage/success', array(
114
+ '_current' => true,
115
+ '_use_rewrite' => true,
116
+ '_secure' => true,
117
+ '_store' => $order->getStoreId(),
118
+ '_store_to_url' => true,
119
+ 'query' => array("utm_nooverride" => 1)
120
+ )); */
121
+
122
+
123
+ $this->_redirect("checkout/onepage/success", array(
124
+ '_current' => true,
125
+ '_use_rewrite' => true,
126
+ '_secure' => true,
127
+ '_store' => $order->getStoreId(),
128
+ '_store_to_url' => true,
129
+ '_query' => array("utm_nooverride" => 1)
130
+ ));
131
+
132
+
133
+ //print_r($url);exit;
134
+
135
+ /* header('Content-type: text/html; charset=utf-8');
136
+ header("Location: " . $url, true);
137
+ header("Connection: close", true);
138
+ header("Content-Length: 0", true);
139
+ exit; */
140
+ //$this->_redirect($url);
141
+ //$this->_redirect("checkout/onepage/success?utm_nooverride=1", array("__secure" => true, "__store"=> $order->getStoreId()));
142
+ }
143
+
144
+ /**
145
+ * @return Mage_Checkout_Model_Type_Onepage
146
+ */
147
+ public function getOnepage() {
148
+ return Mage::getSingleton('checkout/type_onepage');
149
+ }
150
+
151
+ /**
152
+ * Cancel action
153
+ */
154
+ public function cancelAction() {
155
+ // cancel order
156
+ $checkout = Mage::getSingleton("checkout/session");
157
+ $order_id = $checkout->getLastRealOrderId();
158
+ $order = Mage::getSingleton('sales/order')->loadByIncrementId($order_id);
159
+
160
+ if ($order_id) {
161
+ $order->cancel();
162
+ $order->save();
163
+ }
164
+
165
+
166
+ $quote = Mage::getModel('sales/quote')->load($checkout->getLastQuoteId());
167
+
168
+ //add keep cart function in cancelaction to have better support for onestepcheckout modules that overrule the observer
169
+ if (Mage::getStoreConfig('payment/msp/keep_cart', $quote->getStoreId()) ||
170
+ Mage::getStoreConfig('msp/settings/keep_cart', $quote->getStoreId()) ||
171
+ $quote->getPayment()->getMethod() == 'msp_payafter' ||
172
+ $quote->getPayment()->getMethod() == 'msp_einvoice' ||
173
+ $quote->getPayment()->getMethod() == 'msp_klarna') {
174
+
175
+ if ($quoteId = $checkout->getLastQuoteId()) {
176
+ $quote = Mage::getModel('sales/quote')->load($quoteId);
177
+ if ($quote->getId()) {
178
+ $quote->setIsActive(true)->save();
179
+ $checkout->setQuoteId($quoteId);
180
+ }
181
+ }
182
+ }
183
+
184
+
185
+ //Validate this function. Do we need this one as an extra setting? Why not just detect it on checkout -> ???
186
+ if (Mage::getStoreConfig("msp/settings/use_onestepcheckout") || Mage::getStoreConfig("payment/msp/use_onestepcheckout")) {
187
+ //$this->_redirect("onestepcheckout?utm_nooverride=1", array("_secure" => true));
188
+ $this->_redirect("onestepcheckout", array("_secure" => true,
189
+ "query" => array("utm_nooverride" => 1)));
190
+ } else {
191
+ //$this->_redirect("checkout?utm_nooverride=1", array("_secure" => true));
192
+ $this->_redirect("checkout", array("_secure" => true,
193
+ "query" => array("utm_nooverride" => 1)));
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Checks if this is a fastcheckout notification
199
+ */
200
+ public function isFCONotification($transId) {
201
+ //Mage::log("Checking if FCO notification...", null, "multisafepay.log");
202
+
203
+ /** @var $quote Mage_Sales_Model_Quote */
204
+ $quote = Mage::getModel('sales/quote')->load($transId);
205
+
206
+ $storeId = Mage::app()->getStore()->getStoreId();
207
+ if ($quote) {
208
+ $storeId = $quote->getStoreId();
209
+ }
210
+
211
+ $config = Mage::getStoreConfig('mspcheckout/settings', $storeId);
212
+
213
+ if (isset($config['account_id']) && isset($config['test_api']) &&
214
+ isset($config['site_id']) && isset($config['secure_code'])) {
215
+
216
+ $msp = new MultiSafepay();
217
+ $msp->test = ($config["test_api"] == 'test');
218
+ $msp->merchant['account_id'] = $config["account_id"];
219
+ $msp->merchant['site_id'] = $config["site_id"];
220
+ $msp->merchant['site_code'] = $config["secure_code"];
221
+ $msp->transaction['id'] = $transId;
222
+
223
+ if ($msp->getStatus() == false) {
224
+ //Mage::log("Error while getting status.", null, "multisafepay.log");
225
+ } else {
226
+ //Mage::log("Got status: ".$msp->details['ewallet']['fastcheckout'], null, "multisafepay.log");
227
+ if ($msp->details['ewallet']['fastcheckout'] == "YES") {
228
+ return true;
229
+ } else {
230
+ return false;
231
+ }
232
+ }
233
+ } else {
234
+ // Mage::log("No FCO transaction so default to normal notification", null, "multisafepay.log");
235
+ return false;
236
+ }
237
+ }
238
+
239
+ /**
240
+ * Status notification
241
+ */
242
+ public function notificationAction($return = false) {
243
+ $orderId = $this->getRequest()->getQuery('transactionid');
244
+ $initial = ($this->getRequest()->getQuery('type') == 'initial') ? true : false;
245
+ $transactionid = $this->getRequest()->getQuery('transactionid');
246
+
247
+ // Check if this is a fastcheckout notification and redirect
248
+ //check if FCO transaction
249
+ $storeId = Mage::app()->getStore()->getStoreId();
250
+ $config = Mage::getStoreConfig('mspcheckout' . "/settings", $storeId);
251
+
252
+ if (isset($config["active"]) && $config["active"]) {//if (isset($config["account_id"])) {
253
+ $msp = new MultiSafepay();
254
+ $msp->test = ($config["test_api"] == 'test');
255
+ $msp->merchant['account_id'] = $config["account_id"];
256
+ $msp->merchant['site_id'] = $config["site_id"];
257
+ $msp->merchant['site_code'] = $config["secure_code"];
258
+ $msp->transaction['id'] = $transactionid;
259
+
260
+ if ($msp->getStatus() == false) {
261
+ //Mage::log("Error while getting status.", null, "multisafepay.log");
262
+ } else {
263
+ if ($msp->details['ewallet']['fastcheckout'] == "YES") {
264
+ $transactionid = $this->getRequest()->getQuery('transactionid');
265
+ $initial = ($this->getRequest()->getQuery('type') == 'initial') ? true : false;
266
+ $checkout = Mage::getModel("msp/checkout");
267
+ $done = $checkout->notification($transactionid, $initial);
268
+
269
+ if ($initial) {
270
+ $returnUrl = Mage::getUrl("msp/checkout/return", array("_secure" => true)) . '?transactionid=' . $transactionid;
271
+
272
+ $storeId = Mage::getModel('sales/quote')->load($transactionid)->getStoreId();
273
+ $storeName = Mage::app()->getGroup($storeId)->getName();
274
+
275
+ // display return message
276
+ echo 'Return to <a href="' . $returnUrl . '?transactionid=' . $orderId . '">' . $storeName . '</a>';
277
+ } else {
278
+ if ($done) {
279
+ echo 'ok';
280
+ } else {
281
+ echo 'ng';
282
+ }
283
+ }
284
+ exit;
285
+ }
286
+ }
287
+ }
288
+ $paymentModel = Mage::getSingleton("msp/" . $this->getGatewayModel());
289
+
290
+ $done = $paymentModel->notification($orderId, $initial);
291
+
292
+ if (!$return) {
293
+ if ($initial) {
294
+ $returnUrl = $paymentModel->getReturnUrl();
295
+
296
+ $order = Mage::getSingleton('sales/order')->loadByIncrementId($orderId);
297
+ $storename = $order->getStoreGroupName();
298
+
299
+ // display return message
300
+ $this->getResponse()->setBody('Return to <a href="' . $returnUrl . '?transactionid=' . $orderId . '">' . $storename . '</a>');
301
+ } else {
302
+ if ($done) {
303
+ $this->getResponse()->setBody('ok');
304
+ } else {
305
+ $this->getResponse()->setBody('ng');
306
+ }
307
+ }
308
+ } else {
309
+ return true;
310
+ }
311
+ }
312
+
313
+ /*
314
+ * Function that generates a JSON product feed based on productID or CategoryID
315
+ */
316
+ public function getProductsFeed() {
317
+ $category_id = $this->getRequest()->getQuery('category_id');
318
+ $product_id = $this->getRequest()->getQuery('product_id');
319
+
320
+ if (empty($category_id) && empty($product_id)) {
321
+ echo 'Nothing to fetch. Missing product_id or category_id';
322
+ exit;
323
+ }
324
+
325
+ //If category is set then get the products from that category
326
+ //If category is not set, but product_id is, then get that product
327
+ if (!empty($category_id)) {
328
+ $products = Mage::getModel('catalog/category')->load($category_id);
329
+ $productslist = $products->getProductCollection()->addAttributeToSelect('*')->addAttributeToFilter('status', 1)->addAttributeToFilter('visibility', 4);
330
+ $json = array();
331
+ $prodIds = $productslist->getAllIds();
332
+
333
+ foreach ($prodIds as $productId) {
334
+ $product = Mage::getModel('catalog/product')->load($productId);
335
+ $maincat = $subcats = '';
336
+ $cats = $product->getCategoryIds();
337
+ //$eee = implode(",",$cats);
338
+ foreach ($cats as $category_id) {
339
+ $_cat = Mage::getModel('catalog/category')->load($category_id);
340
+ if ($subcats == '') {
341
+ $maincat = $subcats = $_cat->getName();
342
+ } else {
343
+ $subcats .= ">" . $_cat->getName();
344
+ }
345
+ }
346
+
347
+ $product_data = array();
348
+ $product_data['ProductID'] = $productId;
349
+ $product_data['ProductName'] = $product->getName();
350
+ $product_data['SKUnumber'] = $product->getSku();
351
+ $product_data['Created'] = $product->getCreatedAt();
352
+ $product_data['Updated'] = $product->getUpdatedAt();
353
+
354
+ if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL){
355
+ $product_data['Downloadable'] = true;
356
+ }else{
357
+ $product_data['Downloadable'] = false;
358
+ }
359
+
360
+ if($product->getFtin()){
361
+ $product_data['FTIN'] = $product->getFtin();
362
+ $product_data['UniqueIdentifier'] = true;
363
+ }else{
364
+ $product_data['UniqueIdentifier'] = false;
365
+ }
366
+
367
+ $product_data['MPN'] = $product->getMpn();
368
+ $product_data['Brand'] = $product->getBrand();
369
+ $product_data['Weight'] = $product->getWeight();
370
+ $product_data['PrimaryCategory'] = $maincat;
371
+ $product_data['SecondaryCategory'] = $subcats;
372
+ $product_data['ProductURL'] = $product->getProductUrl();
373
+ $product_data['ProductImageURLs']= array();
374
+
375
+ $mainimage = new stdclass();
376
+ $mainimage->url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
377
+ $mainimage->main = true;
378
+ $product_data['ProductImageURLs'][]= $mainimage;
379
+
380
+
381
+ foreach ($product->getMediaGalleryImages() as $image) {
382
+ $subimage = new stdclass();
383
+ $subimage->url = $image->getUrl();
384
+ $subimage->main = false;
385
+ $product_data['ProductImageURLs'][] = $subimage;
386
+ }
387
+
388
+ //$product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
389
+ $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
390
+ $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
391
+ $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
392
+ $product_data['RetailPrice'] = round($product->getPrice(), 4);
393
+ //$product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
394
+ $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
395
+ $product_data['TaxId'] = $product->getTaxClassId();
396
+
397
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
398
+
399
+
400
+ $product_data['Stock'] = $stockItem->getQty();
401
+
402
+ $meta_data = new stdclass();
403
+ $meta_data->title = $product->getMetaTitle();
404
+ $meta_data->keyword = $product->getMetaKeyword();
405
+ $meta_data->description= $product->getMetaDescription();
406
+
407
+ $product_data['Metadata'] =$meta_data;
408
+
409
+ foreach ($product->getOptions() as $value) {
410
+ if (is_object($value)) {
411
+ $values = $value->getValues();
412
+ foreach ($values as $values) {
413
+ $product_data['Options']['CustomOptions'][$value->getTitle()][] = $values->getData();
414
+ }
415
+ }
416
+ }
417
+
418
+ $attributes = $product->getAttributes();
419
+ foreach ($attributes as $attribute) {
420
+ if ($attribute->getIsVisibleOnFront()) {
421
+ $product_data['Attributes'][$attribute->getAttributeCode()] = array('label' => $attribute->getFrontend()->getLabel($product), 'value' => $attribute->getFrontend()->getValue($product));
422
+ }
423
+ }
424
+
425
+ if ($product->isConfigurable()) {
426
+ $productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
427
+ foreach ($productAttributeOptions as $productAttribute) {
428
+ foreach ($productAttribute['values'] as $attribute) {
429
+ $product_data['Options']['GlobalOptions'][$productAttribute['label']][$attribute['value_index']] = array('Label' => $attribute['store_label'], 'Pricing' => $attribute['pricing_value']);
430
+ }
431
+ }
432
+ }
433
+ $json[] = $product_data;
434
+ }
435
+ } elseif (!empty($product_id)) {
436
+ $json = array();
437
+ $product = Mage::getModel('catalog/product')->load($product_id);
438
+ $maincat = $subcats = '';
439
+ $cats = $product->getCategoryIds();
440
+ //$eee = implode(",",$cats);
441
+ foreach ($cats as $category_id) {
442
+ $_cat = Mage::getModel('catalog/category')->load($category_id);
443
+ if ($subcats == '') {
444
+ $maincat = $subcats = $_cat->getName();
445
+ } else {
446
+ $subcats .= ">" . $_cat->getName();
447
+ }
448
+ }
449
+
450
+
451
+
452
+ $product_data = array();
453
+ $product_data['ProductID'] = $product_id;
454
+ $product_data['ProductName'] = $product->getName();
455
+ $product_data['SKUnumber'] = $product->getSku();
456
+ $product_data['Created'] = $product->getCreatedAt();
457
+ $product_data['Updated'] = $product->getUpdatedAt();
458
+
459
+ if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL){
460
+ $product_data['Downloadable'] = true;
461
+ }else{
462
+ $product_data['Downloadable'] = false;
463
+ }
464
+
465
+ if($product->getFtin()){
466
+ $product_data['FTIN'] = $product->getFtin();
467
+ $product_data['UniqueIdentifier'] = true;
468
+ }else{
469
+ $product_data['UniqueIdentifier'] = false;
470
+ }
471
+
472
+ $product_data['MPN'] = $product->getMpn();
473
+ $product_data['Brand'] = $product->getBrand();
474
+ $product_data['Weight'] = $product->getWeight();
475
+ $product_data['PrimaryCategory'] = $maincat;
476
+ $product_data['SecondaryCategory'] = $subcats;
477
+ $product_data['ProductURL'] = $product->getProductUrl();
478
+ $product_data['ProductImageURLs']= array();
479
+
480
+ $mainimage = new stdclass();
481
+ $mainimage->url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
482
+ $mainimage->main = true;
483
+ $product_data['ProductImageURLs'][]= $mainimage;
484
+
485
+
486
+ foreach ($product->getMediaGalleryImages() as $image) {
487
+ $subimage = new stdclass();
488
+ $subimage->url = $image->getUrl();
489
+ $subimage->main = false;
490
+ $product_data['ProductImageURLs'][] = $subimage;
491
+ }
492
+
493
+ //$product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
494
+ $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
495
+ $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
496
+ $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
497
+ $product_data['RetailPrice'] = round($product->getPrice(), 4);
498
+ //$product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
499
+ $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
500
+ $product_data['TaxId'] = $product->getTaxClassId();
501
+
502
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id);
503
+
504
+
505
+ $product_data['Stock'] = $stockItem->getQty();
506
+
507
+ $meta_data = new stdclass();
508
+ $meta_data->title = $product->getMetaTitle();
509
+ $meta_data->keyword = $product->getMetaKeyword();
510
+ $meta_data->description= $product->getMetaDescription();
511
+
512
+ $product_data['Metadata'] =$meta_data;
513
+
514
+ foreach ($product->getOptions() as $value) {
515
+ if (is_object($value)) {
516
+ $values = $value->getValues();
517
+ foreach ($values as $values) {
518
+ $product_data['Options']['CustomOptions'][$value->getTitle()][] = $values->getData();
519
+ }
520
+ }
521
+ }
522
+
523
+ $attributes = $product->getAttributes();
524
+ foreach ($attributes as $attribute) {
525
+ if ($attribute->getIsVisibleOnFront()) {
526
+ $product_data['Attributes'][$attribute->getAttributeCode()] = array('label' => $attribute->getFrontend()->getLabel($product), 'value' => $attribute->getFrontend()->getValue($product));
527
+ }
528
+ }
529
+
530
+ if ($product->isConfigurable()) {
531
+ $productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
532
+ foreach ($productAttributeOptions as $productAttribute) {
533
+ foreach ($productAttribute['values'] as $attribute) {
534
+ $product_data['Options']['GlobalOptions'][$productAttribute['label']][$attribute['value_index']] = array('Label' => $attribute['store_label'], 'Pricing' => $attribute['pricing_value']);
535
+ }
536
+ }
537
+ }
538
+ $json[] = $product_data;
539
+ }
540
+ return json_encode($json);
541
+ }
542
+
543
+ /*
544
+ * Function that generates a JSON Categories feed.
545
+ */
546
+
547
+ public function getCategoriesFeed() {
548
+ $recursionLevel = 10;
549
+ $parent = Mage::app()->getStore()->getRootCategoryId();
550
+ $tree = Mage::getResourceModel('catalog/category_tree');
551
+ $nodes = $tree->loadNode($parent)->loadChildren($recursionLevel)->getChildren();
552
+ $tree->addCollectionData(null, false, $parent);
553
+ $categoryTreeData = array();
554
+ //$categoryTreeData->categories = array();
555
+ foreach ($nodes as $node) {
556
+ $categoryTreeData[] = $this->getNodeChildrenData($node);
557
+ }
558
+ return json_encode($categoryTreeData);
559
+ }
560
+
561
+ function getNodeChildrenData(Varien_Data_Tree_Node $node) {
562
+ $data = array(
563
+ 'title' => $node->getData('name'),
564
+ 'id' => $node->getData('entity_id')
565
+ );
566
+
567
+ foreach ($node->getChildren() as $childNode) {
568
+ if (!array_key_exists('children', $data)) {
569
+ $data['children'] = array();
570
+ }
571
+ $data['children'][] = $this->getNodeChildrenData($childNode);
572
+ }
573
+ return $data;
574
+ }
575
+
576
+ /*
577
+ * Function that generates a JSON Stock feed based on productID(s).
578
+ */
579
+
580
+ public function getStockFeed() {
581
+ $product_id = $this->getRequest()->getQuery('product_id');
582
+ $stock = array();
583
+ if (empty($product_id)) {
584
+ echo 'Nothing to fetch. Missing product_id.';
585
+ exit;
586
+ }
587
+
588
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id);
589
+ $stockqty = new stdclass();
590
+ $stockqty->ProductID = $product_id;
591
+ $stockqty->Stock = $stockItem->getQty();
592
+ $stock[] = $stockqty;
593
+ return json_encode($stock);
594
+ }
595
+
596
+ /*
597
+ * Function that generates a JSON Tax feed.
598
+ */
599
+ public function getTaxFeed() {
600
+ $taxRules = Mage::getModel('tax/sales_order_tax')->getCollection();
601
+
602
+ $alternate= array();
603
+ foreach ($taxRules as $taxRule) {
604
+ $tax_rule = new stdclass();
605
+ $tax_rule->id = $taxRule->getTaxId();
606
+ $code = $taxRule->getCode();
607
+ $rate = $test = Mage::getModel('tax/calculation_rate')->loadByCode($code);
608
+ $tax_rule->name = $taxRule->getTitle();
609
+ $rule = array();
610
+ $rule[$rate->getTaxCountryId()]=$taxRule->getPercent();
611
+ $tax_rule->rules = $rule;
612
+ $alternate[] = $tax_rule;
613
+ }
614
+ return json_encode($alternate);
615
+ }
616
+
617
+ /*
618
+ * Function that generates a JSON Shipping feed.
619
+ */
620
+ public function getShippingFeed() {
621
+ //all method
622
+ $shippingMethods= array();
623
+ $carriers = Mage::getStoreConfig('carriers', Mage::app()->getStore()->getId());
624
+ //$oldcarrierlist= print_r($this->handleShippingRatesNotification());
625
+
626
+ //print_r($carriers);
627
+
628
+ foreach ($carriers as $carrierCode => $carrierConfig) {
629
+ if($carrierConfig['active']){
630
+ if(isset($carrierConfig['price'])){
631
+ $method= new stdclass();
632
+ $method->id = $carrierCode;
633
+ $method->name = $carrierConfig['name'];
634
+ //$method->taxid= null;
635
+ $method->price = $carrierConfig['price'];
636
+ $method->sort_order = $carrierConfig['sort_order'];
637
+ $areas = explode(',', $carrierConfig['specificcountry']);
638
+ $method->allowed_areas = array();
639
+ foreach($areas as $area){
640
+ $method->allowed_areas[] =$area;
641
+ }
642
+ $shippingMethods[] = $method;
643
+ }
644
+ }
645
+ }
646
+ return json_encode($shippingMethods);
647
+ }
648
+
649
+
650
+ /*
651
+ * Function that generates a JSON store info feed.
652
+ */
653
+ public function getStoresFeed() {
654
+ $stores = array();
655
+ $languages=array();
656
+ $storeCollection=Mage::getModel('core/store')->getCollection();
657
+ //foreach($storeCollection as $store)
658
+ //{
659
+ $store = Mage::app()->getStore();
660
+ $store_data= new stdclass();
661
+
662
+ //get languages
663
+ //$languages[] = Mage::getStoreConfig('general/locale/code', $store->getId());
664
+
665
+
666
+ //get allowed countries
667
+ $allowed = explode(",", Mage::getStoreConfig('general/country/allow'),$store->getId());
668
+ $countries = array();
669
+
670
+ foreach($allowed as $key => $value){
671
+ $countriesdata = explode(",", $value);
672
+ foreach($countriesdata as $index => $val){
673
+ $countries[] = $val;
674
+ }
675
+ }
676
+
677
+ $store_data->allowed_countries = $countries;
678
+
679
+ //get metadata per languages
680
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['title'] = Mage::getStoreConfig('design/head/default_title', $store->getId());
681
+
682
+ $keywords = explode(",", Mage::getStoreConfig('design/head/default_keywords', $store->getId()));
683
+ $keywordsdata = array();
684
+ foreach($keywords as $key =>$value){
685
+ $keywordsdata[]=trim($value);
686
+ }
687
+
688
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['keywords'] = $keywordsdata;
689
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['description'] = Mage::getStoreConfig('design/head/default_description', $store->getId());
690
+
691
+ $store_data->languages = $metadata;
692
+
693
+ $store_data->stock_updates = true;
694
+ $store_data->including_tax = false;
695
+ $store_data->require_shipping = true;
696
+ $store_data->base_url = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
697
+ $store_data->order_push_url=$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK).'msp/standard/notification/';
698
+
699
+
700
+
701
+
702
+
703
+ //add store data to feed structure
704
+ $stores = $store_data;
705
+
706
+ //}
707
+
708
+ return json_encode($stores);
709
+ }
710
+
711
+
712
+
713
+
714
+ /*
715
+ * Function that generates a JSON Languages feed.
716
+ */
717
+ public function getLanguagesFeed() {
718
+ $languages=array();
719
+ $storeCollection=Mage::getModel('core/store')->getCollection();
720
+ foreach($storeCollection as $store)
721
+ {
722
+ $languages[] =Mage::getStoreConfig('general/locale/code', $store->getId());
723
+ }
724
+
725
+ return json_encode($languages);
726
+ }
727
+
728
+ /*
729
+ * Function that generates a JSON countries feed.
730
+ */
731
+ public function getCountriesFeed() {
732
+ $allowed = explode(",", Mage::getStoreConfig('general/country/allow'),$store->getId());
733
+ $countries = array();
734
+
735
+ foreach($allowed as $key => $value){
736
+ $countries[] = $value;
737
+ }
738
+
739
+ return json_encode($countries);
740
+ }
741
+
742
+ /*
743
+ * Function that generates a JSON Languages feed.
744
+ */
745
+ public function getMetadataFeed() {
746
+ $metadata=array();
747
+ $storeCollection=Mage::getModel('core/store')->getCollection();
748
+
749
+ foreach($storeCollection as $store)
750
+ {
751
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['title'] = Mage::getStoreConfig('design/head/default_title', $store->getId());
752
+
753
+ $keywords = explode(",", Mage::getStoreConfig('design/head/default_keywords', $store->getId()));
754
+ $keywordsdata = array();
755
+ foreach($keywords as $key =>$value){
756
+ $keywordsdata[]=trim($value);
757
+ }
758
+
759
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['keywords'] = $keywordsdata;
760
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['description'] = Mage::getStoreConfig('design/head/default_description', $store->getId());
761
+ }
762
+
763
+ return json_encode($metadata);
764
+ }
765
+
766
+
767
+
768
+
769
+ public function handleShippingRatesNotification() {
770
+ $transactionId = $this->getRequest()->getQuery('transactionid');
771
+ $countryCode = $this->getRequest()->getQuery('countrycode');
772
+ $zipCode = $this->getRequest()->getQuery('zipcode');
773
+ $settings = array(
774
+ 'currency' => $this->getRequest()->getQuery('currency'),
775
+ 'country' => $this->getRequest()->getQuery('countrycode'),
776
+ 'weight' => $this->getRequest()->getQuery('weight'),
777
+ 'amount' => $this->getRequest()->getQuery('amount'),
778
+ 'size' => $this->getRequest()->getQuery('size'),
779
+ );
780
+
781
+ return $this->getShippingRatesFiltered($transactionId, $countryCode, $zipCode, $settings);
782
+ }
783
+
784
+
785
+
786
+ public function getShippingRatesFiltered($transactionId, $countryCode, $zipCode, $settings) {
787
+ $output = array();
788
+
789
+ /** @var $quote Mage_Sales_Model_Quote */
790
+ $quote = Mage::getModel('sales/quote')->load($transactionId);
791
+
792
+ /** @var $shippingAddress Mage_Sales_Model_Quote_Address */
793
+ $shippingAddress = $quote->getShippingAddress();
794
+ $shippingAddress->setCountryId($countryCode);
795
+ $shippingAddress->setPostcode($zipCode);
796
+ $shippingAddress->setCollectShippingRates(true);
797
+
798
+ $rates = $shippingAddress->collectShippingRates()->getGroupedAllShippingRates();
799
+
800
+
801
+ foreach ($rates as $carrier) {
802
+ foreach ($carrier as $rate) {
803
+ $shipping = array();
804
+ $shipping['id'] = $rate->getCode();
805
+ $shipping['name'] = $rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle();
806
+ $shipping['cost'] = number_format($rate->getPrice(), 2, '.', '');
807
+ $shipping['currency'] = $quote->getQuoteCurrencyCode();
808
+
809
+ $output[] = $shipping;
810
+ }
811
+ }
812
+
813
+ return $output;
814
+ }
815
+
816
+
817
+
818
+ /*
819
+ * This function will generate the product feed, used for FastCheckout shopping
820
+ *
821
+ */
822
+ public function feedAction() {
823
+ $storeId = Mage::app()->getStore()->getStoreId();
824
+ $config = Mage::getStoreConfig('mspcheckout' . "/settings", $storeId);
825
+ $api_key = $this->getRequest()->getQuery('api_key');
826
+ $config_api_key = $config["api_key"];
827
+
828
+ if (strtoupper($api_key) == strtoupper($config_api_key)) {
829
+ $keys_match = true;
830
+ } else {
831
+ $keys_match = false;
832
+ }
833
+
834
+ //Check if feed is enabled and api keys match
835
+ if ($config["allow_fcofeed"] && $keys_match) {
836
+ $identifier = $this->getRequest()->getQuery('identifier');
837
+ if (empty($identifier)) {
838
+ echo 'Identifier not set';
839
+ exit;
840
+ }
841
+ $json = '';
842
+
843
+ switch ($identifier) {
844
+ case "products":
845
+ $json = $this->getProductsFeed();
846
+ break;
847
+ case "categories":
848
+ $json = $this->getCategoriesFeed();
849
+ break;
850
+ case "stock":
851
+ $json = $this->getStockFeed();
852
+ break;
853
+ case "tax":
854
+ $json = $this->getTaxFeed();
855
+ break;
856
+ case "shipping":
857
+ $json = $this->getShippingFeed();
858
+ break;
859
+ case "languages":
860
+ $json = "Deprecated"; //$this->getLanguagesFeed();
861
+ break;
862
+ case "countries":
863
+ $json = "Deprecated"; // $this->getCountriesFeed();
864
+ break;
865
+ case "metadata":
866
+ $json = "Deprecated"; //$this->getMetadataFeed();
867
+ break;
868
+ case "stores":
869
+ $json = $this->getStoresFeed();
870
+ break;
871
+ }
872
+
873
+ $this->getResponse()->clearHeaders()->setHeader('Content-type','application/json',true);
874
+ $this->getResponse()->setHeader('X-Feed-Version','1.0',true);
875
+ $this->getResponse()->setHeader('Connection','close',true);
876
+ $this->getResponse()->setBody($json);
877
+
878
+ } else {
879
+ echo Mage::helper("msp")->__("You are not allowed to request the product feed!");
880
+ exit;
881
+ }
882
+ }
883
+
884
+ function json_readable_encode($in, $indent = 0, Closure $_escape = null) {
885
+ if (__CLASS__ && isset($this)) {
886
+ $_myself = array($this, __FUNCTION__);
887
+ } elseif (__CLASS__) {
888
+ $_myself = array('self', __FUNCTION__);
889
+ } else {
890
+ $_myself = __FUNCTION__;
891
+ }
892
+
893
+ if (is_null($_escape)) {
894
+ $_escape = function ($str) {
895
+ return str_replace(
896
+ array('\\', '"', "\n", "\r", "\b", "\f", "\t", '/', '\\\\u'), array('\\\\', '\\"', "\\n", "\\r", "\\b", "\\f", "\\t", '\\/', '\\u'), $str);
897
+ };
898
+ }
899
+
900
+ $out = '';
901
+
902
+ foreach ($in as $key => $value) {
903
+ $out .= str_repeat("\t", $indent + 1);
904
+ $out .= "\"" . $_escape((string) $key) . "\": ";
905
+
906
+ if (is_object($value) || is_array($value)) {
907
+ $out .= "\n";
908
+ $out .= call_user_func($_myself, $value, $indent + 1, $_escape);
909
+ } elseif (is_bool($value)) {
910
+ $out .= $value ? 'true' : 'false';
911
+ } elseif (is_null($value)) {
912
+ $out .= 'null';
913
+ } elseif (is_string($value)) {
914
+ $out .= "\"" . $_escape($value) . "\"";
915
+ } else {
916
+ $out .= $value;
917
+ }
918
+
919
+ $out .= ",\n";
920
+ }
921
+
922
+ if (!empty($out)) {
923
+ $out = substr($out, 0, -2);
924
+ }
925
+
926
+ $out = str_repeat("\t", $indent) . "{\n" . $out;
927
+ $out .= "\n" . str_repeat("\t", $indent) . "}";
928
+
929
+ return $out;
930
+ }
931
+
932
+ }
app/code/community/MultiSafepay/Msp/controllers/StandardController.php CHANGED
@@ -345,19 +345,66 @@ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Act
345
  }
346
 
347
  $product_data = array();
348
- $product_data['ProductID'] = $productId;
349
- $product_data['ProductName'] = $product->getName();
350
- $product_data['SKUnumber'] = $product->getSku();
351
- $product_data['PrimaryCategory'] = $maincat;
352
- $product_data['SecondaryCategory'] = $subcats;
353
- $product_data['ProductURL'] = $product->getProductUrl();
354
- $product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
355
- $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
356
- $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
357
- $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
358
- $product_data['RetailPrice'] = round($product->getPrice(), 4);
359
- $product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
360
- $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
 
362
  foreach ($product->getOptions() as $value) {
363
  if (is_object($value)) {
@@ -400,20 +447,69 @@ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Act
400
  }
401
  }
402
 
 
 
403
  $product_data = array();
404
  $product_data['ProductID'] = $product_id;
405
  $product_data['ProductName'] = $product->getName();
406
  $product_data['SKUnumber'] = $product->getSku();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
407
  $product_data['PrimaryCategory'] = $maincat;
408
  $product_data['SecondaryCategory'] = $subcats;
409
  $product_data['ProductURL'] = $product->getProductUrl();
410
- $product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
412
  $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
413
  $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
414
  $product_data['RetailPrice'] = round($product->getPrice(), 4);
415
- $product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
416
  $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
 
 
 
 
 
 
 
 
 
 
 
 
 
417
 
418
  foreach ($product->getOptions() as $value) {
419
  if (is_object($value)) {
@@ -454,10 +550,10 @@ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Act
454
  $tree = Mage::getResourceModel('catalog/category_tree');
455
  $nodes = $tree->loadNode($parent)->loadChildren($recursionLevel)->getChildren();
456
  $tree->addCollectionData(null, false, $parent);
457
- $categoryTreeData = new stdClass();
458
- $categoryTreeData->categories = array();
459
  foreach ($nodes as $node) {
460
- $categoryTreeData->categories[] = $this->getNodeChildrenData($node);
461
  }
462
  return json_encode($categoryTreeData);
463
  }
@@ -502,27 +598,250 @@ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Act
502
  */
503
  public function getTaxFeed() {
504
  $taxRules = Mage::getModel('tax/sales_order_tax')->getCollection();
505
- $taxes = array();
506
 
 
507
  foreach ($taxRules as $taxRule) {
508
- print_r($taxRule);
509
- exit;
510
-
511
  $tax_rule = new stdclass();
512
  $tax_rule->id = $taxRule->getTaxId();
 
 
513
  $tax_rule->name = $taxRule->getTitle();
514
- $tax_rule->rate = $taxRule->getPercent();
515
- $taxes[] = $tax_rule;
 
 
516
  }
517
- return json_encode($taxes);
518
  }
519
 
520
  /*
521
  * Function that generates a JSON Shipping feed.
522
  */
523
  public function getShippingFeed() {
524
- return 'Shipping feed in json needs to be returned';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
526
 
527
  /*
528
  * This function will generate the product feed, used for FastCheckout shopping
@@ -565,11 +884,25 @@ class MultiSafepay_Msp_StandardController extends Mage_Core_Controller_Front_Act
565
  case "shipping":
566
  $json = $this->getShippingFeed();
567
  break;
 
 
 
 
 
 
 
 
 
 
 
 
568
  }
569
 
570
- $this->getResponse()->setHeader('Content-type', 'application/json', true);
571
- echo $json;
572
- exit;
 
 
573
  } else {
574
  echo Mage::helper("msp")->__("You are not allowed to request the product feed!");
575
  exit;
345
  }
346
 
347
  $product_data = array();
348
+ $product_data['ProductID'] = $productId;
349
+ $product_data['ProductName'] = $product->getName();
350
+ $product_data['SKUnumber'] = $product->getSku();
351
+ $product_data['Created'] = $product->getCreatedAt();
352
+ $product_data['Updated'] = $product->getUpdatedAt();
353
+
354
+ if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL){
355
+ $product_data['Downloadable'] = true;
356
+ }else{
357
+ $product_data['Downloadable'] = false;
358
+ }
359
+
360
+ if($product->getFtin()){
361
+ $product_data['FTIN'] = $product->getFtin();
362
+ $product_data['UniqueIdentifier'] = true;
363
+ }else{
364
+ $product_data['UniqueIdentifier'] = false;
365
+ }
366
+
367
+ $product_data['MPN'] = $product->getMpn();
368
+ $product_data['Brand'] = $product->getBrand();
369
+ $product_data['Weight'] = $product->getWeight();
370
+ $product_data['PrimaryCategory'] = $maincat;
371
+ $product_data['SecondaryCategory'] = $subcats;
372
+ $product_data['ProductURL'] = $product->getProductUrl();
373
+ $product_data['ProductImageURLs']= array();
374
+
375
+ $mainimage = new stdclass();
376
+ $mainimage->url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
377
+ $mainimage->main = true;
378
+ $product_data['ProductImageURLs'][]= $mainimage;
379
+
380
+
381
+ foreach ($product->getMediaGalleryImages() as $image) {
382
+ $subimage = new stdclass();
383
+ $subimage->url = $image->getUrl();
384
+ $subimage->main = false;
385
+ $product_data['ProductImageURLs'][] = $subimage;
386
+ }
387
+
388
+ //$product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
389
+ $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
390
+ $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
391
+ $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
392
+ $product_data['RetailPrice'] = round($product->getPrice(), 4);
393
+ //$product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
394
+ $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
395
+ $product_data['TaxId'] = $product->getTaxClassId();
396
+
397
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
398
+
399
+
400
+ $product_data['Stock'] = $stockItem->getQty();
401
+
402
+ $meta_data = new stdclass();
403
+ $meta_data->title = $product->getMetaTitle();
404
+ $meta_data->keyword = $product->getMetaKeyword();
405
+ $meta_data->description= $product->getMetaDescription();
406
+
407
+ $product_data['Metadata'] =$meta_data;
408
 
409
  foreach ($product->getOptions() as $value) {
410
  if (is_object($value)) {
447
  }
448
  }
449
 
450
+
451
+
452
  $product_data = array();
453
  $product_data['ProductID'] = $product_id;
454
  $product_data['ProductName'] = $product->getName();
455
  $product_data['SKUnumber'] = $product->getSku();
456
+ $product_data['Created'] = $product->getCreatedAt();
457
+ $product_data['Updated'] = $product->getUpdatedAt();
458
+
459
+ if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL){
460
+ $product_data['Downloadable'] = true;
461
+ }else{
462
+ $product_data['Downloadable'] = false;
463
+ }
464
+
465
+ if($product->getFtin()){
466
+ $product_data['FTIN'] = $product->getFtin();
467
+ $product_data['UniqueIdentifier'] = true;
468
+ }else{
469
+ $product_data['UniqueIdentifier'] = false;
470
+ }
471
+
472
+ $product_data['MPN'] = $product->getMpn();
473
+ $product_data['Brand'] = $product->getBrand();
474
+ $product_data['Weight'] = $product->getWeight();
475
  $product_data['PrimaryCategory'] = $maincat;
476
  $product_data['SecondaryCategory'] = $subcats;
477
  $product_data['ProductURL'] = $product->getProductUrl();
478
+ $product_data['ProductImageURLs']= array();
479
+
480
+ $mainimage = new stdclass();
481
+ $mainimage->url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
482
+ $mainimage->main = true;
483
+ $product_data['ProductImageURLs'][]= $mainimage;
484
+
485
+
486
+ foreach ($product->getMediaGalleryImages() as $image) {
487
+ $subimage = new stdclass();
488
+ $subimage->url = $image->getUrl();
489
+ $subimage->main = false;
490
+ $product_data['ProductImageURLs'][] = $subimage;
491
+ }
492
+
493
+ //$product_data['ProductImageURL'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
494
  $product_data['ShortProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 150) . "...";
495
  $product_data['LongProductDescription'] = substr(iconv("UTF-8", "UTF-8//IGNORE", $product->getDescription()), 0, 2000);
496
  $product_data['SalePrice'] = round($product->getFinalPrice(), 4);
497
  $product_data['RetailPrice'] = round($product->getPrice(), 4);
498
+ //$product_data['UniversalProductCode'] = $product->getData('upc'); //need variable
499
  $product_data['Currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
500
+ $product_data['TaxId'] = $product->getTaxClassId();
501
+
502
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id);
503
+
504
+
505
+ $product_data['Stock'] = $stockItem->getQty();
506
+
507
+ $meta_data = new stdclass();
508
+ $meta_data->title = $product->getMetaTitle();
509
+ $meta_data->keyword = $product->getMetaKeyword();
510
+ $meta_data->description= $product->getMetaDescription();
511
+
512
+ $product_data['Metadata'] =$meta_data;
513
 
514
  foreach ($product->getOptions() as $value) {
515
  if (is_object($value)) {
550
  $tree = Mage::getResourceModel('catalog/category_tree');
551
  $nodes = $tree->loadNode($parent)->loadChildren($recursionLevel)->getChildren();
552
  $tree->addCollectionData(null, false, $parent);
553
+ $categoryTreeData = array();
554
+ //$categoryTreeData->categories = array();
555
  foreach ($nodes as $node) {
556
+ $categoryTreeData[] = $this->getNodeChildrenData($node);
557
  }
558
  return json_encode($categoryTreeData);
559
  }
598
  */
599
  public function getTaxFeed() {
600
  $taxRules = Mage::getModel('tax/sales_order_tax')->getCollection();
 
601
 
602
+ $alternate= array();
603
  foreach ($taxRules as $taxRule) {
 
 
 
604
  $tax_rule = new stdclass();
605
  $tax_rule->id = $taxRule->getTaxId();
606
+ $code = $taxRule->getCode();
607
+ $rate = $test = Mage::getModel('tax/calculation_rate')->loadByCode($code);
608
  $tax_rule->name = $taxRule->getTitle();
609
+ $rule = array();
610
+ $rule[$rate->getTaxCountryId()]=$taxRule->getPercent();
611
+ $tax_rule->rules = $rule;
612
+ $alternate[] = $tax_rule;
613
  }
614
+ return json_encode($alternate);
615
  }
616
 
617
  /*
618
  * Function that generates a JSON Shipping feed.
619
  */
620
  public function getShippingFeed() {
621
+ //all method
622
+ $shippingMethods= array();
623
+ $carriers = Mage::getStoreConfig('carriers', Mage::app()->getStore()->getId());
624
+ //$oldcarrierlist= print_r($this->handleShippingRatesNotification());
625
+
626
+ //print_r($carriers);
627
+
628
+ foreach ($carriers as $carrierCode => $carrierConfig) {
629
+ if($carrierConfig['active']){
630
+ if(isset($carrierConfig['price'])){
631
+ $method= new stdclass();
632
+ $method->id = $carrierCode;
633
+ $method->name = $carrierConfig['name'];
634
+ //$method->taxid= null;
635
+ $method->price = $carrierConfig['price'];
636
+ $method->sort_order = $carrierConfig['sort_order'];
637
+ $areas = explode(',', $carrierConfig['specificcountry']);
638
+ $method->allowed_areas = array();
639
+ foreach($areas as $area){
640
+ $method->allowed_areas[] =$area;
641
+ }
642
+ $shippingMethods[] = $method;
643
+ }
644
+ }
645
+ }
646
+ return json_encode($shippingMethods);
647
+ }
648
+
649
+
650
+ /*
651
+ * Function that generates a JSON store info feed.
652
+ */
653
+ public function getStoresFeed() {
654
+ $stores = array();
655
+ $languages=array();
656
+ $storeCollection=Mage::getModel('core/store')->getCollection();
657
+ //foreach($storeCollection as $store)
658
+ //{
659
+ $store = Mage::app()->getStore();
660
+ $store_data= new stdclass();
661
+
662
+ //get languages
663
+ //$languages[] = Mage::getStoreConfig('general/locale/code', $store->getId());
664
+
665
+
666
+ //get allowed countries
667
+ $allowed = explode(",", Mage::getStoreConfig('general/country/allow'),$store->getId());
668
+ $countries = array();
669
+
670
+ foreach($allowed as $key => $value){
671
+ $countriesdata = explode(",", $value);
672
+ foreach($countriesdata as $index => $val){
673
+ $countries[] = $val;
674
+ }
675
+ }
676
+
677
+ $store_data->allowed_countries = $countries;
678
+
679
+ //get metadata per languages
680
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['title'] = Mage::getStoreConfig('design/head/default_title', $store->getId());
681
+
682
+ $keywords = explode(",", Mage::getStoreConfig('design/head/default_keywords', $store->getId()));
683
+ $keywordsdata = array();
684
+ foreach($keywords as $key =>$value){
685
+ $keywordsdata[]=trim($value);
686
+ }
687
+
688
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['keywords'] = $keywordsdata;
689
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['description'] = Mage::getStoreConfig('design/head/default_description', $store->getId());
690
+
691
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['usps'] = array(
692
+ "shipping" => array("Order before 20:00 delivery tomorrow", "Optional, same day delivery", "We deliver till 22:00"),
693
+ "global"=> array("24 hour helpdesk", "Try first, pay later")
694
+ );
695
+
696
+
697
+ $store_data->languages = $metadata;
698
+
699
+ $store_data->stock_updates = true;
700
+ $store_data->including_tax = false;
701
+ $store_data->require_shipping = true;
702
+ $store_data->base_url = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
703
+ $store_data->order_push_url=$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK).'msp/standard/notification/';
704
+ $store_data->coc='12345678';
705
+ $store_data->email='webmaster@example.com';
706
+ $store_data->contact_phone='0208500500';
707
+ $store_data->address='raanspoor';
708
+ $store_data->housenumber='39';
709
+ $store_data->zipcode ='1033 SC';
710
+ $store_data->city = 'Amsterdam';
711
+ $store_data->country='NL';
712
+ $store_data->vat_nr= "NL123456789B01";
713
+ $store_data->coc='12345678';
714
+ $store_data->terms_and_conditions = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
715
+ $store_data->faq = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
716
+ $store_data->open= "08:00";
717
+ $store_data->closed='23:00';
718
+
719
+ $store_data->days= array("sunday"=>false,"monday"=>true, "tuesday"=>true, "wednesday"=>true, "thursday"=>true,"friday"=>true, "saturday"=>true);
720
+ $store_data->social=array(
721
+ "facebook"=>$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK),
722
+ "twitter"=>$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK),
723
+ "linkedin"=>$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)
724
+ );
725
+
726
+
727
+
728
+
729
+
730
+
731
+ //add store data to feed structure
732
+ $stores = $store_data;
733
+
734
+ //}
735
+
736
+ return json_encode($stores);
737
+ }
738
+
739
+
740
+
741
+
742
+ /*
743
+ * Function that generates a JSON Languages feed.
744
+ */
745
+ public function getLanguagesFeed() {
746
+ $languages=array();
747
+ $storeCollection=Mage::getModel('core/store')->getCollection();
748
+ foreach($storeCollection as $store)
749
+ {
750
+ $languages[] =Mage::getStoreConfig('general/locale/code', $store->getId());
751
+ }
752
+
753
+ return json_encode($languages);
754
+ }
755
+
756
+ /*
757
+ * Function that generates a JSON countries feed.
758
+ */
759
+ public function getCountriesFeed() {
760
+ $allowed = explode(",", Mage::getStoreConfig('general/country/allow'),$store->getId());
761
+ $countries = array();
762
+
763
+ foreach($allowed as $key => $value){
764
+ $countries[] = $value;
765
+ }
766
+
767
+ return json_encode($countries);
768
+ }
769
+
770
+ /*
771
+ * Function that generates a JSON Languages feed.
772
+ */
773
+ public function getMetadataFeed() {
774
+ $metadata=array();
775
+ $storeCollection=Mage::getModel('core/store')->getCollection();
776
+
777
+ foreach($storeCollection as $store)
778
+ {
779
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['title'] = Mage::getStoreConfig('design/head/default_title', $store->getId());
780
+
781
+ $keywords = explode(",", Mage::getStoreConfig('design/head/default_keywords', $store->getId()));
782
+ $keywordsdata = array();
783
+ foreach($keywords as $key =>$value){
784
+ $keywordsdata[]=trim($value);
785
+ }
786
+
787
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['keywords'] = $keywordsdata;
788
+ $metadata[Mage::getStoreConfig('general/locale/code', $store->getId())]['description'] = Mage::getStoreConfig('design/head/default_description', $store->getId());
789
+ }
790
+
791
+ return json_encode($metadata);
792
+ }
793
+
794
+
795
+
796
+
797
+ public function handleShippingRatesNotification() {
798
+ $transactionId = $this->getRequest()->getQuery('transactionid');
799
+ $countryCode = $this->getRequest()->getQuery('countrycode');
800
+ $zipCode = $this->getRequest()->getQuery('zipcode');
801
+ $settings = array(
802
+ 'currency' => $this->getRequest()->getQuery('currency'),
803
+ 'country' => $this->getRequest()->getQuery('countrycode'),
804
+ 'weight' => $this->getRequest()->getQuery('weight'),
805
+ 'amount' => $this->getRequest()->getQuery('amount'),
806
+ 'size' => $this->getRequest()->getQuery('size'),
807
+ );
808
+
809
+ return $this->getShippingRatesFiltered($transactionId, $countryCode, $zipCode, $settings);
810
  }
811
+
812
+
813
+
814
+ public function getShippingRatesFiltered($transactionId, $countryCode, $zipCode, $settings) {
815
+ $output = array();
816
+
817
+ /** @var $quote Mage_Sales_Model_Quote */
818
+ $quote = Mage::getModel('sales/quote')->load($transactionId);
819
+
820
+ /** @var $shippingAddress Mage_Sales_Model_Quote_Address */
821
+ $shippingAddress = $quote->getShippingAddress();
822
+ $shippingAddress->setCountryId($countryCode);
823
+ $shippingAddress->setPostcode($zipCode);
824
+ $shippingAddress->setCollectShippingRates(true);
825
+
826
+ $rates = $shippingAddress->collectShippingRates()->getGroupedAllShippingRates();
827
+
828
+
829
+ foreach ($rates as $carrier) {
830
+ foreach ($carrier as $rate) {
831
+ $shipping = array();
832
+ $shipping['id'] = $rate->getCode();
833
+ $shipping['name'] = $rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle();
834
+ $shipping['cost'] = number_format($rate->getPrice(), 2, '.', '');
835
+ $shipping['currency'] = $quote->getQuoteCurrencyCode();
836
+
837
+ $output[] = $shipping;
838
+ }
839
+ }
840
+
841
+ return $output;
842
+ }
843
+
844
+
845
 
846
  /*
847
  * This function will generate the product feed, used for FastCheckout shopping
884
  case "shipping":
885
  $json = $this->getShippingFeed();
886
  break;
887
+ case "languages":
888
+ $json = "Deprecated"; //$this->getLanguagesFeed();
889
+ break;
890
+ case "countries":
891
+ $json = "Deprecated"; // $this->getCountriesFeed();
892
+ break;
893
+ case "metadata":
894
+ $json = "Deprecated"; //$this->getMetadataFeed();
895
+ break;
896
+ case "stores":
897
+ $json = $this->getStoresFeed();
898
+ break;
899
  }
900
 
901
+ $this->getResponse()->clearHeaders()->setHeader('Content-type','application/json',true);
902
+ $this->getResponse()->setHeader('X-Feed-Version','1.0',true);
903
+ $this->getResponse()->setHeader('Connection','close',true);
904
+ $this->getResponse()->setBody($json);
905
+
906
  } else {
907
  echo Mage::helper("msp")->__("You are not allowed to request the product feed!");
908
  exit;
app/code/community/MultiSafepay/Msp/etc/config.xml CHANGED
@@ -9,7 +9,7 @@
9
  <config>
10
  <modules>
11
  <MultiSafepay_Msp>
12
- <version>2.2.9</version>
13
  </MultiSafepay_Msp>
14
  </modules>
15
  <global>
@@ -275,6 +275,21 @@
275
  <model>msp/gateway_ideal</model>
276
  <title>MSP iDEAL</title>
277
  </msp_ideal>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  <msp_payafter>
279
  <active>1</active>
280
  <model>msp/gateway_payafter</model>
@@ -486,6 +501,27 @@
486
  <allowed_currency>EUR</allowed_currency>
487
  <lang>nl</lang>
488
  </msp_ideal>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  <msp_payafter translate="title" module="msp">
490
  <active>0</active>
491
  <model>msp/gateway_payafter</model>
9
  <config>
10
  <modules>
11
  <MultiSafepay_Msp>
12
+ <version>2.3.1</version>
13
  </MultiSafepay_Msp>
14
  </modules>
15
  <global>
275
  <model>msp/gateway_ideal</model>
276
  <title>MSP iDEAL</title>
277
  </msp_ideal>
278
+ <msp_creditcard>
279
+ <active>1</active>
280
+ <model>msp/gateway_creditcard</model>
281
+ <title>MSP Creditcard</title>
282
+ </msp_creditcard>
283
+ <msp_eps>
284
+ <active>1</active>
285
+ <model>msp/gateway_eps</model>
286
+ <title>MSP Eps</title>
287
+ </msp_eps>
288
+ <msp_ferbuy>
289
+ <active>1</active>
290
+ <model>msp/gateway_ferbuy</model>
291
+ <title>MSP Ferbuy</title>
292
+ </msp_ferbuy>
293
  <msp_payafter>
294
  <active>1</active>
295
  <model>msp/gateway_payafter</model>
501
  <allowed_currency>EUR</allowed_currency>
502
  <lang>nl</lang>
503
  </msp_ideal>
504
+ <msp_creditcard translate="title" module="msp">
505
+ <active>0</active>
506
+ <model>msp/gateway_creditcard</model>
507
+ <title>Creditcard</title>
508
+ <allowed_currency>EUR</allowed_currency>
509
+ <lang>nl</lang>
510
+ </msp_creditcard>
511
+ <msp_eps translate="title" module="msp">
512
+ <active>0</active>
513
+ <model>msp/gateway_eps</model>
514
+ <title>Eps</title>
515
+ <allowed_currency>EUR</allowed_currency>
516
+ <lang>nl</lang>
517
+ </msp_eps>
518
+ <msp_ferbuy translate="title" module="msp">
519
+ <active>0</active>
520
+ <model>msp/gateway_ferbuy</model>
521
+ <title>Ferbuy</title>
522
+ <allowed_currency>EUR</allowed_currency>
523
+ <lang>nl</lang>
524
+ </msp_ferbuy>
525
  <msp_payafter translate="title" module="msp">
526
  <active>0</active>
527
  <model>msp/gateway_payafter</model>
app/code/community/MultiSafepay/Msp/etc/system.xml CHANGED
@@ -9,7 +9,7 @@
9
  <config>
10
  <tabs>
11
  <ms translate="label">
12
- <label><![CDATA[<div style="display:inline-block;color:#00adee;text-transform: capitalize;font-size: 120%;font-weight:900;font-family:Tahoma, Geneva, sans-serif;">Multi</div><div style="display:inline-block;color:black;text-transform: capitalize;font-size: 120%;font-weight:900;font-family:Tahoma, Geneva, sans-serif;">Safepay</div><div style="display: inline-block;vertical-align: middle;border: 3px dotted #666;width:8px;height:8px;border-radius:8px;margin-bottom:3px;margin-left:3px;"></div>&nbsp;&nbsp;]]> (2.2.9)</label>
13
  <sort_order>301</sort_order>
14
  <!--<class>admin-system-config-msp</class>-->
15
  </ms>
@@ -175,6 +175,16 @@
175
  <show_in_website>1</show_in_website>
176
  <show_in_store>1</show_in_store>
177
  </keep_cart>
 
 
 
 
 
 
 
 
 
 
178
  <gateway_reset translate="label comment">
179
  <label>Reset Gateway</label>
180
  <comment>This option is used to allow the payment selection at MultiSafepay when createing payment links for orders created in the Magento Backend and with a preselected MultiSafepay payment method</comment>
@@ -474,6 +484,156 @@
474
  </fields>
475
  </msp_ideal>
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
 
478
 
479
 
@@ -2995,6 +3155,286 @@
2995
  </specificgroups>
2996
  </fields>
2997
  </msp_directdebit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2998
  </groups>
2999
  </msp_gateways>
3000
  <msp_giftcards>
9
  <config>
10
  <tabs>
11
  <ms translate="label">
12
+ <label><![CDATA[<div style="display:inline-block;color:#00adee;text-transform: capitalize;font-size: 120%;font-weight:900;font-family:Tahoma, Geneva, sans-serif;">Multi</div><div style="display:inline-block;color:black;text-transform: capitalize;font-size: 120%;font-weight:900;font-family:Tahoma, Geneva, sans-serif;">Safepay</div><div style="display: inline-block;vertical-align: middle;border: 3px dotted #666;width:8px;height:8px;border-radius:8px;margin-bottom:3px;margin-left:3px;"></div>&nbsp;&nbsp;]]> (2.3.1)</label>
13
  <sort_order>301</sort_order>
14
  <!--<class>admin-system-config-msp</class>-->
15
  </ms>
175
  <show_in_website>1</show_in_website>
176
  <show_in_store>1</show_in_store>
177
  </keep_cart>
178
+ <paylink_create translate="label comment">
179
+ <label>Create a payment link for manually created orders?</label>
180
+ <comment>A payment link will be created when adding an order using the Magento backend.</comment>
181
+ <frontend_type>select</frontend_type>
182
+ <source_model>adminhtml/system_config_source_yesno</source_model>
183
+ <sort_order>79</sort_order>
184
+ <show_in_default>1</show_in_default>
185
+ <show_in_website>1</show_in_website>
186
+ <show_in_store>1</show_in_store>
187
+ </paylink_create>
188
  <gateway_reset translate="label comment">
189
  <label>Reset Gateway</label>
190
  <comment>This option is used to allow the payment selection at MultiSafepay when createing payment links for orders created in the Magento Backend and with a preselected MultiSafepay payment method</comment>
484
  </fields>
485
  </msp_ideal>
486
 
487
+ <msp_creditcard translate="label" module="msp">
488
+ <label>Creditcard</label>
489
+ <sort_order>680</sort_order>
490
+ <show_in_default>1</show_in_default>
491
+ <show_in_website>1</show_in_website>
492
+ <show_in_store>1</show_in_store>
493
+ <fields>
494
+ <active translate="label">
495
+ <label>Enabled</label>
496
+ <frontend_type>select</frontend_type>
497
+ <source_model>adminhtml/system_config_source_yesno</source_model>
498
+ <sort_order>1</sort_order>
499
+ <show_in_default>1</show_in_default>
500
+ <show_in_website>1</show_in_website>
501
+ <show_in_store>1</show_in_store>
502
+ </active>
503
+
504
+ <title translate="label">
505
+ <label>Title</label>
506
+ <frontend_type>text</frontend_type>
507
+ <sort_order>3</sort_order>
508
+ <show_in_default>1</show_in_default>
509
+ <show_in_website>1</show_in_website>
510
+ <show_in_store>1</show_in_store>
511
+ </title>
512
+ <card_select translate='label'>
513
+ <label>Selecte Creditcards to enable in checkout</label>
514
+ <frontend_type>multiselect</frontend_type>
515
+ <source_model>msp/config_sources_creditcards</source_model>
516
+ <sort_order>2</sort_order>
517
+ <show_in_default>1</show_in_default>
518
+ <show_in_website>1</show_in_website>
519
+ <show_in_store>1</show_in_store>
520
+ </card_select>
521
+ <allowspecific translate="label">
522
+ <label>Receive payments from applicable countries</label>
523
+ <frontend_type>allowspecific</frontend_type>
524
+ <sort_order>13</sort_order>
525
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
526
+ <show_in_default>1</show_in_default>
527
+ <show_in_website>1</show_in_website>
528
+ <show_in_store>1</show_in_store>
529
+ </allowspecific>
530
+ <allowed_currency translate="label comment">
531
+ <label>Allowed Currency</label>
532
+ <frontend_type>multiselect</frontend_type>
533
+ <source_model>msp/config_sources_order_currency</source_model>
534
+ <sort_order>14</sort_order>
535
+ <show_in_default>1</show_in_default>
536
+ <show_in_website>1</show_in_website>
537
+ <show_in_store>1</show_in_store>
538
+ </allowed_currency>
539
+ <specificcountry translate="label">
540
+ <label>Receive payments from specific countries</label>
541
+ <frontend_type>multiselect</frontend_type>
542
+ <sort_order>14</sort_order>
543
+ <source_model>adminhtml/system_config_source_country</source_model>
544
+ <show_in_default>1</show_in_default>
545
+ <show_in_website>1</show_in_website>
546
+ <show_in_store>1</show_in_store>
547
+ </specificcountry>
548
+ <sort_order translate="label">
549
+ <label>Sort order</label>
550
+ <frontend_type>text</frontend_type>
551
+ <sort_order>100</sort_order>
552
+ <show_in_default>1</show_in_default>
553
+ <show_in_website>1</show_in_website>
554
+ <show_in_store>1</show_in_store>
555
+ </sort_order>
556
+ <instructions translate="label">
557
+ <label>Instructions</label>
558
+ <frontend_type>textarea</frontend_type>
559
+ <sort_order>62</sort_order>
560
+ <show_in_default>1</show_in_default>
561
+ <show_in_website>1</show_in_website>
562
+ <show_in_store>1</show_in_store>
563
+ </instructions>
564
+ <max_order_total translate="label">
565
+ <label>Maximum Order Total</label>
566
+ <frontend_type>text</frontend_type>
567
+ <sort_order>64</sort_order>
568
+ <show_in_default>1</show_in_default>
569
+ <show_in_website>1</show_in_website>
570
+ <show_in_store>5</show_in_store>
571
+ </max_order_total>
572
+ <min_order_total translate="label">
573
+ <label>Minimum Order Total</label>
574
+ <frontend_type>text</frontend_type>
575
+ <sort_order>63</sort_order>
576
+ <show_in_default>1</show_in_default>
577
+ <show_in_website>1</show_in_website>
578
+ <show_in_store>4</show_in_store>
579
+ </min_order_total>
580
+ <fee translate="label">
581
+ <label>Enable fee (inc. Tax)</label>
582
+ <frontend_type>select</frontend_type>
583
+ <source_model>adminhtml/system_config_source_yesno</source_model>
584
+ <sort_order>70</sort_order>
585
+ <show_in_default>1</show_in_default>
586
+ <show_in_website>1</show_in_website>
587
+ <show_in_store>1</show_in_store>
588
+ </fee>
589
+ <fee_amount translate="label">
590
+ <label>Payment fee amount</label>
591
+ <frontend_type>text</frontend_type>
592
+ <comment>Payment fee add like 0:5 this means a fixed fee of 0 euro and 5%</comment>
593
+ <sort_order>80</sort_order>
594
+ <show_in_default>1</show_in_default>
595
+ <show_in_website>1</show_in_website>
596
+ <show_in_store>1</show_in_store>
597
+ </fee_amount>
598
+ <fee_tax_class>
599
+ <label>Tax class for payment fee</label>
600
+ <comment>Select which tax class should be used for the payment fee</comment>
601
+ <frontend_type>select</frontend_type>
602
+ <source_model>msp/config_sources_taxClasses</source_model>
603
+ <sort_order>90</sort_order>
604
+ <show_in_default>1</show_in_default>
605
+ <show_in_website>1</show_in_website>
606
+ <show_in_store>1</show_in_store>
607
+ </fee_tax_class>
608
+ <fee_incexc translate="label">
609
+ <label>Show payment fee incl. tax during checkout</label>
610
+ <frontend_type>select</frontend_type>
611
+ <source_model>adminhtml/system_config_source_yesno</source_model>
612
+ <sort_order>81</sort_order>
613
+ <show_in_default>1</show_in_default>
614
+ <show_in_website>1</show_in_website>
615
+ <show_in_store>1</show_in_store>
616
+ </fee_incexc>
617
+ <fee_description translate="label">
618
+ <label>Payment fee description, visible in order totals</label>
619
+ <frontend_type>text</frontend_type>
620
+ <sort_order>100</sort_order>
621
+ <show_in_default>1</show_in_default>
622
+ <show_in_website>1</show_in_website>
623
+ <show_in_store>1</show_in_store>
624
+ </fee_description>
625
+ <specificgroups translate="label">
626
+ <label>Payment for Specific Customer Groups</label>
627
+ <frontend_type>multiselect</frontend_type>
628
+ <sort_order>101</sort_order>
629
+ <source_model>msp/config_sources_groups</source_model>
630
+ <show_in_default>1</show_in_default>
631
+ <show_in_website>1</show_in_website>
632
+ <show_in_store>1</show_in_store>
633
+ </specificgroups>
634
+ </fields>
635
+ </msp_creditcard>
636
+
637
 
638
 
639
 
3155
  </specificgroups>
3156
  </fields>
3157
  </msp_directdebit>
3158
+ <msp_eps translate="label" module="msp">
3159
+ <label>Eps</label>
3160
+ <sort_order>700</sort_order>
3161
+ <show_in_default>1</show_in_default>
3162
+ <show_in_website>1</show_in_website>
3163
+ <show_in_store>1</show_in_store>
3164
+ <fields>
3165
+ <active translate="label">
3166
+ <label>Enabled</label>
3167
+ <frontend_type>select</frontend_type>
3168
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3169
+ <sort_order>1</sort_order>
3170
+ <show_in_default>1</show_in_default>
3171
+ <show_in_website>1</show_in_website>
3172
+ <show_in_store>1</show_in_store>
3173
+ </active>
3174
+ <title translate="label">
3175
+ <label>Title</label>
3176
+ <frontend_type>text</frontend_type>
3177
+ <sort_order>2</sort_order>
3178
+ <show_in_default>1</show_in_default>
3179
+ <show_in_website>1</show_in_website>
3180
+ <show_in_store>1</show_in_store>
3181
+ </title>
3182
+ <allowed_currency translate="label comment">
3183
+ <label>Allowed Currency</label>
3184
+ <frontend_type>multiselect</frontend_type>
3185
+ <source_model>msp/config_sources_order_currency</source_model>
3186
+ <sort_order>4</sort_order>
3187
+ <show_in_default>1</show_in_default>
3188
+ <show_in_website>1</show_in_website>
3189
+ <show_in_store>1</show_in_store>
3190
+ </allowed_currency>
3191
+ <allowspecific translate="label">
3192
+ <label>Receive payments from applicable countries</label>
3193
+ <frontend_type>allowspecific</frontend_type>
3194
+ <sort_order>13</sort_order>
3195
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
3196
+ <show_in_default>1</show_in_default>
3197
+ <show_in_website>1</show_in_website>
3198
+ <show_in_store>1</show_in_store>
3199
+ </allowspecific>
3200
+ <specificcountry translate="label">
3201
+ <label>Receive payments from specific countries</label>
3202
+
3203
+ <frontend_type>multiselect</frontend_type>
3204
+ <sort_order>14</sort_order>
3205
+ <source_model>adminhtml/system_config_source_country</source_model>
3206
+ <show_in_default>1</show_in_default>
3207
+ <show_in_website>1</show_in_website>
3208
+ <show_in_store>1</show_in_store>
3209
+ </specificcountry>
3210
+ <sort_order translate="label">
3211
+ <label>Sort order</label>
3212
+ <frontend_type>text</frontend_type>
3213
+ <sort_order>100</sort_order>
3214
+ <show_in_default>1</show_in_default>
3215
+ <show_in_website>1</show_in_website>
3216
+ <show_in_store>1</show_in_store>
3217
+ </sort_order>
3218
+ <instructions translate="label">
3219
+ <label>Instructions</label>
3220
+ <frontend_type>textarea</frontend_type>
3221
+ <sort_order>62</sort_order>
3222
+ <show_in_default>1</show_in_default>
3223
+ <show_in_website>1</show_in_website>
3224
+ <show_in_store>1</show_in_store>
3225
+ </instructions>
3226
+ <min_order_total translate="label">
3227
+ <label>Minimum Order Total</label>
3228
+ <frontend_type>text</frontend_type>
3229
+ <sort_order>63</sort_order>
3230
+ <show_in_default>1</show_in_default>
3231
+ <show_in_website>1</show_in_website>
3232
+ <show_in_store>4</show_in_store>
3233
+ </min_order_total>
3234
+ <max_order_total translate="label">
3235
+ <label>Maximum Order Total</label>
3236
+ <frontend_type>text</frontend_type>
3237
+ <sort_order>63</sort_order>
3238
+ <show_in_default>1</show_in_default>
3239
+ <show_in_website>1</show_in_website>
3240
+ <show_in_store>5</show_in_store>
3241
+ </max_order_total>
3242
+ <fee translate="label">
3243
+ <label>Enable fee (inc. Tax)</label>
3244
+ <frontend_type>select</frontend_type>
3245
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3246
+ <sort_order>70</sort_order>
3247
+ <show_in_default>1</show_in_default>
3248
+ <show_in_website>1</show_in_website>
3249
+ <show_in_store>1</show_in_store>
3250
+ </fee>
3251
+ <fee_amount translate="label">
3252
+ <label>Payment fee amount</label>
3253
+ <frontend_type>text</frontend_type>
3254
+ <comment>Payment fee add like 0:5 this means a fixed fee of 0 euro and 5%</comment>
3255
+ <sort_order>80</sort_order>
3256
+ <show_in_default>1</show_in_default>
3257
+ <show_in_website>1</show_in_website>
3258
+ <show_in_store>1</show_in_store>
3259
+ </fee_amount>
3260
+ <fee_tax_class>
3261
+ <label>Tax class for payment fee</label>
3262
+ <comment>Select which tax class should be used for the payment fee</comment>
3263
+ <frontend_type>select</frontend_type>
3264
+ <source_model>msp/config_sources_taxClasses</source_model>
3265
+ <sort_order>90</sort_order>
3266
+ <show_in_default>1</show_in_default>
3267
+ <show_in_website>1</show_in_website>
3268
+ <show_in_store>1</show_in_store>
3269
+ </fee_tax_class>
3270
+ <fee_incexc translate="label">
3271
+ <label>Show payment fee incl. tax during checkout</label>
3272
+ <frontend_type>select</frontend_type>
3273
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3274
+ <sort_order>81</sort_order>
3275
+ <show_in_default>1</show_in_default>
3276
+ <show_in_website>1</show_in_website>
3277
+ <show_in_store>1</show_in_store>
3278
+ </fee_incexc>
3279
+ <fee_description translate="label">
3280
+ <label>Payment fee description, visible in order totals</label>
3281
+ <frontend_type>text</frontend_type>
3282
+ <sort_order>100</sort_order>
3283
+ <show_in_default>1</show_in_default>
3284
+ <show_in_website>1</show_in_website>
3285
+ <show_in_store>1</show_in_store>
3286
+ </fee_description>
3287
+ <specificgroups translate="label">
3288
+ <label>Payment for Specific Customer Groups</label>
3289
+ <frontend_type>multiselect</frontend_type>
3290
+ <sort_order>101</sort_order>
3291
+ <source_model>msp/config_sources_groups</source_model>
3292
+ <show_in_default>1</show_in_default>
3293
+ <show_in_website>1</show_in_website>
3294
+ <show_in_store>1</show_in_store>
3295
+ </specificgroups>
3296
+ </fields>
3297
+ </msp_eps>
3298
+ <msp_ferbuy translate="label" module="msp">
3299
+ <label>Ferbuy</label>
3300
+ <sort_order>700</sort_order>
3301
+ <show_in_default>1</show_in_default>
3302
+ <show_in_website>1</show_in_website>
3303
+ <show_in_store>1</show_in_store>
3304
+ <fields>
3305
+ <active translate="label">
3306
+ <label>Enabled</label>
3307
+ <frontend_type>select</frontend_type>
3308
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3309
+ <sort_order>1</sort_order>
3310
+ <show_in_default>1</show_in_default>
3311
+ <show_in_website>1</show_in_website>
3312
+ <show_in_store>1</show_in_store>
3313
+ </active>
3314
+ <title translate="label">
3315
+ <label>Title</label>
3316
+ <frontend_type>text</frontend_type>
3317
+ <sort_order>2</sort_order>
3318
+ <show_in_default>1</show_in_default>
3319
+ <show_in_website>1</show_in_website>
3320
+ <show_in_store>1</show_in_store>
3321
+ </title>
3322
+ <allowed_currency translate="label comment">
3323
+ <label>Allowed Currency</label>
3324
+ <frontend_type>multiselect</frontend_type>
3325
+ <source_model>msp/config_sources_order_currency</source_model>
3326
+ <sort_order>4</sort_order>
3327
+ <show_in_default>1</show_in_default>
3328
+ <show_in_website>1</show_in_website>
3329
+ <show_in_store>1</show_in_store>
3330
+ </allowed_currency>
3331
+ <allowspecific translate="label">
3332
+ <label>Receive payments from applicable countries</label>
3333
+ <frontend_type>allowspecific</frontend_type>
3334
+ <sort_order>13</sort_order>
3335
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
3336
+ <show_in_default>1</show_in_default>
3337
+ <show_in_website>1</show_in_website>
3338
+ <show_in_store>1</show_in_store>
3339
+ </allowspecific>
3340
+ <specificcountry translate="label">
3341
+ <label>Receive payments from specific countries</label>
3342
+
3343
+ <frontend_type>multiselect</frontend_type>
3344
+ <sort_order>14</sort_order>
3345
+ <source_model>adminhtml/system_config_source_country</source_model>
3346
+ <show_in_default>1</show_in_default>
3347
+ <show_in_website>1</show_in_website>
3348
+ <show_in_store>1</show_in_store>
3349
+ </specificcountry>
3350
+ <sort_order translate="label">
3351
+ <label>Sort order</label>
3352
+ <frontend_type>text</frontend_type>
3353
+ <sort_order>100</sort_order>
3354
+ <show_in_default>1</show_in_default>
3355
+ <show_in_website>1</show_in_website>
3356
+ <show_in_store>1</show_in_store>
3357
+ </sort_order>
3358
+ <instructions translate="label">
3359
+ <label>Instructions</label>
3360
+ <frontend_type>textarea</frontend_type>
3361
+ <sort_order>62</sort_order>
3362
+ <show_in_default>1</show_in_default>
3363
+ <show_in_website>1</show_in_website>
3364
+ <show_in_store>1</show_in_store>
3365
+ </instructions>
3366
+ <min_order_total translate="label">
3367
+ <label>Minimum Order Total</label>
3368
+ <frontend_type>text</frontend_type>
3369
+ <sort_order>63</sort_order>
3370
+ <show_in_default>1</show_in_default>
3371
+ <show_in_website>1</show_in_website>
3372
+ <show_in_store>4</show_in_store>
3373
+ </min_order_total>
3374
+ <max_order_total translate="label">
3375
+ <label>Maximum Order Total</label>
3376
+ <frontend_type>text</frontend_type>
3377
+ <sort_order>63</sort_order>
3378
+ <show_in_default>1</show_in_default>
3379
+ <show_in_website>1</show_in_website>
3380
+ <show_in_store>5</show_in_store>
3381
+ </max_order_total>
3382
+ <fee translate="label">
3383
+ <label>Enable fee (inc. Tax)</label>
3384
+ <frontend_type>select</frontend_type>
3385
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3386
+ <sort_order>70</sort_order>
3387
+ <show_in_default>1</show_in_default>
3388
+ <show_in_website>1</show_in_website>
3389
+ <show_in_store>1</show_in_store>
3390
+ </fee>
3391
+ <fee_amount translate="label">
3392
+ <label>Payment fee amount</label>
3393
+ <frontend_type>text</frontend_type>
3394
+ <comment>Payment fee add like 0:5 this means a fixed fee of 0 euro and 5%</comment>
3395
+ <sort_order>80</sort_order>
3396
+ <show_in_default>1</show_in_default>
3397
+ <show_in_website>1</show_in_website>
3398
+ <show_in_store>1</show_in_store>
3399
+ </fee_amount>
3400
+ <fee_tax_class>
3401
+ <label>Tax class for payment fee</label>
3402
+ <comment>Select which tax class should be used for the payment fee</comment>
3403
+ <frontend_type>select</frontend_type>
3404
+ <source_model>msp/config_sources_taxClasses</source_model>
3405
+ <sort_order>90</sort_order>
3406
+ <show_in_default>1</show_in_default>
3407
+ <show_in_website>1</show_in_website>
3408
+ <show_in_store>1</show_in_store>
3409
+ </fee_tax_class>
3410
+ <fee_incexc translate="label">
3411
+ <label>Show payment fee incl. tax during checkout</label>
3412
+ <frontend_type>select</frontend_type>
3413
+ <source_model>adminhtml/system_config_source_yesno</source_model>
3414
+ <sort_order>81</sort_order>
3415
+ <show_in_default>1</show_in_default>
3416
+ <show_in_website>1</show_in_website>
3417
+ <show_in_store>1</show_in_store>
3418
+ </fee_incexc>
3419
+ <fee_description translate="label">
3420
+ <label>Payment fee description, visible in order totals</label>
3421
+ <frontend_type>text</frontend_type>
3422
+ <sort_order>100</sort_order>
3423
+ <show_in_default>1</show_in_default>
3424
+ <show_in_website>1</show_in_website>
3425
+ <show_in_store>1</show_in_store>
3426
+ </fee_description>
3427
+ <specificgroups translate="label">
3428
+ <label>Payment for Specific Customer Groups</label>
3429
+ <frontend_type>multiselect</frontend_type>
3430
+ <sort_order>101</sort_order>
3431
+ <source_model>msp/config_sources_groups</source_model>
3432
+ <show_in_default>1</show_in_default>
3433
+ <show_in_website>1</show_in_website>
3434
+ <show_in_store>1</show_in_store>
3435
+ </specificgroups>
3436
+ </fields>
3437
+ </msp_ferbuy>
3438
  </groups>
3439
  </msp_gateways>
3440
  <msp_giftcards>
app/design/adminhtml/default/default/template/msp/creditcards.phtml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ ?>
app/design/adminhtml/default/default/template/msp/default.phtml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ *
5
+ * @category MultiSafepay
6
+ * @package MultiSafepay_Msp
7
+ */
8
+ ?>
app/design/frontend/base/default/template/msp/creditcards.phtml ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * @category MultiSafepay
5
+ * @package MultiSafepay_Msp
6
+ */
7
+ ?>
8
+ <?php /** @var $this MultiSafepay_Msp_Block_Creditcards */ ?>
9
+ <?php $_code = $this->getMethodCode() ?>
10
+ <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none">
11
+ <li>
12
+ <?php $instructions = Mage::getStoreConfig('msp_gateways/' . $this->getMethodCode() . '/instructions', Mage::app()->getStore()->getId()); ?>
13
+
14
+ <?php
15
+ if ($instructions != '') {
16
+ echo $instructions;
17
+ echo '<br /><br/>';
18
+ }
19
+ ?>
20
+ <?php $_cards = $this->getCreditcards();
21
+ $_labels = $this->getCreditcardLabels();
22
+
23
+ $cards= explode(',', $_cards);
24
+
25
+
26
+ ?>
27
+ <label style="padding:0;" class="required">Selecteer uw Creditcard: <em>*</em></label>
28
+ <br/><br />
29
+ <?php foreach ($cards as $key => $value) { ?>
30
+
31
+
32
+ <span>
33
+
34
+
35
+
36
+
37
+ <?php
38
+ $fileWithPath = 'msp' . DS . 'creditcards' . DS . $value . '.' . 'png';
39
+ $iconFileDir = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $fileWithPath;
40
+ if (file_exists($iconFileDir)) {
41
+ $iconFileUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . $fileWithPath;
42
+ ?>
43
+ <input type="radio" name="payment[<?php echo $_code ?>_cc]" class="validate-one-required-by-name" value="<?php echo $value; ?>">
44
+ <span style="display:inline-block;"><img src="<?php echo $iconFileUrl;?>" ></span>&nbsp;<?php echo $_labels[$value] ?>
45
+ <?php }else{
46
+ ?>
47
+ <input type="radio" name="payment[<?php echo $_code ?>_cc]" class="validate-one-required-by-name" value="<?php echo $value; ?>">
48
+ <?php echo $_labels[$value] ?>
49
+
50
+ <?php
51
+
52
+ }
53
+ ?>
54
+ </span><br/ >
55
+
56
+
57
+ <?php } ?>
58
+
59
+
60
+
61
+
62
+ </li>
63
+
64
+ </ul>
app/design/frontend/base/default/template/msp/idealissuers.phtml CHANGED
@@ -22,28 +22,27 @@
22
 
23
  ?>
24
  <label style="padding:0;" class="required">Selecteer uw bank: <em>*</em></label>
25
- <br/>
26
  <?php foreach ($_banks as $bank) { ?>
27
- <label>
28
-
29
  <?php
30
  $fileWithPath = 'msp' . DS . 'ideallogos' . DS . $bank['code']['VALUE'] . '.' . 'gif';
31
  $iconFileDir = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $fileWithPath;
32
  if (file_exists($iconFileDir)) {
33
  $iconFileUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . $fileWithPath;
34
  ?>
35
- <input type="radio" name="payment[<?php echo $_code ?>_bank]" value="<?php echo $bank['code']['VALUE']; ?>">
36
- <span style="display:block;float:left;width:45px;"><img src="<?php echo $iconFileUrl;?>" style="width:20px;"></span>&nbsp;<?php echo $bank['description']['VALUE']; ?>
37
  <?php }else{
38
  ?>
39
- <input type="radio" name="payment[<?php echo $_code ?>_bank]" value="<?php echo $bank['code']['VALUE']; ?>">
40
  <?php echo $bank['description']['VALUE']; ?>
41
  <?php
42
 
43
  }
44
  ?>
45
- </label>
46
- <br/>
47
  <?php } ?>
48
 
49
  </li>
22
 
23
  ?>
24
  <label style="padding:0;" class="required">Selecteer uw bank: <em>*</em></label>
25
+ <br/><br />
26
  <?php foreach ($_banks as $bank) { ?>
27
+
28
+ <span>
29
  <?php
30
  $fileWithPath = 'msp' . DS . 'ideallogos' . DS . $bank['code']['VALUE'] . '.' . 'gif';
31
  $iconFileDir = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $fileWithPath;
32
  if (file_exists($iconFileDir)) {
33
  $iconFileUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . $fileWithPath;
34
  ?>
35
+ <input type="radio" name="payment[<?php echo $_code ?>_bank]" class="validate-one-required-by-name" value="<?php echo $bank['code']['VALUE']; ?>">
36
+ <span style="display:inline-block;"><img src="<?php echo $iconFileUrl;?>" ></span>&nbsp;<?php echo $bank['description']['VALUE']; ?>
37
  <?php }else{
38
  ?>
39
+ <input type="radio" name="payment[<?php echo $_code ?>_bank]" class="validate-one-required-by-name" value="<?php echo $bank['code']['VALUE']; ?>">
40
  <?php echo $bank['description']['VALUE']; ?>
41
  <?php
42
 
43
  }
44
  ?>
45
+ </span><br/ >
 
46
  <?php } ?>
47
 
48
  </li>
app/design/frontend/base/default/template/msp/klarna.phtml CHANGED
@@ -1,17 +1,19 @@
1
- <fieldset class="form-list">
2
- <ul id="payment_form_<?php echo $this->getMethodCode() ?>" style="display:none">
3
- <li>
4
- <?php if ($this->getMethodCode() == 'msp_klarna') { ?>
5
- <label for="gender" style="width:200px!important;"><?php echo $this->__('Geslacht:'); ?></label>
6
- <input type="radio" name="payment[gender]" value="male"> Man
7
- <input type="radio" name="payment[gender]" value="female"> Vrouw
8
- <br/>
9
- <label for="birthday" style="width:200px!important;"><?php echo $this->__('Geboortedatum'); ?> (dd-mm-yyyy):</label>
10
- <input name='payment[birthday]' value="" id="birthday"/>
11
- <!--<br />
12
- <label for="accountnumber" style="width:200px!important;"><?php echo $this->__('Rekeningnummer'); ?>:</label>
13
- <input name='payment[accountnumber]' value="" id="accountnumber"/> -->
14
- <?php } ?>
15
- </li>
16
- </ul>
 
 
17
  </fieldset>
1
+ <fieldset class="form-list">
2
+ <ul id="payment_form_<?php echo $this->getMethodCode() ?>" style="display:none">
3
+ <li>
4
+ <?php if ($this->getMethodCode() == 'msp_klarna') { ?>
5
+
6
+ <label for="gender" style="width:200px!important;"><?php echo $this->__('Geslacht') . ':'; ?></label>
7
+ <input type="radio" name="payment[gender]" value="male"><?php echo ' '. $this->__('Man'); ?>
8
+ <input type="radio" name="payment[gender]" value="female"><?php echo ' '. $this->__('Vrouw'); ?>
9
+
10
+ <br/>
11
+ <label for="birthday" style="width:200px!important;"><?php echo $this->__('Geboortedatum'); ?> (dd-mm-yyyy):</label>
12
+ <input name='payment[birthday]' value="" id="birthday"/>
13
+ <!--<br />
14
+ <label for="accountnumber" style="width:200px!important;"><?php echo $this->__('Rekeningnummer'); ?>:</label>
15
+ <input name='payment[accountnumber]' value="" id="accountnumber"/> -->
16
+ <?php } ?>
17
+ </li>
18
+ </ul>
19
  </fieldset>
app/locale/de_DE/MultiSafepay_Msp.csv CHANGED
@@ -1,112 +1,115 @@
1
- "Dutch","Holl�ndisch";
2
- "English","Englisch";
3
- "German","Deutsch";
4
- "French","Franz�sisch";
5
- "Spanish","Spanisch";
6
- "Interface language","Interface Sprache";
7
- "New order status","Neue Bestellung";
8
- "Payment complete status","Zahlung erfolgt";
9
- "Create invoice after payment","Nach Bezahlung Rechnung erstellen";
10
- "Mail invoice to customer","Rechnung an Kunde versenden";
11
- "Gateway selection","Zahlungsportal ausw�hlen";
12
- "Auto redirect","Automatische Weiterleitung";
13
- "Bank selection","Bank ausw�hlen";
14
- "Direct Debit","Direktabbuchung";
15
- "Bank Transfer","Bank�berweisung";
16
- "Banktransfer","Bank�berweisung";
17
- "Sign up for a free test account","Anmelden zum Testkonto";
18
- "<a href=\'http://www.multisafepay.com/nl/klantenservice-zakelijk/open-een-testaccount.html\' target=\'_blank\'>Sign up for a free test account</a>","<a href=\'http://www.multisafepay.com/nl/klantenservice-zakelijk/open-een-testaccount.html\' target=\'_blank\'>Gratis Testkonto erstellen</a>";
19
- "Automatically redirects the customer back to the webshop after payment. (Skips the 'Transaction Complete' screen)","Kunde wird nach der Bezahlung automatisch an dem Webshop zur�ckgeleitet (`Transaktion vollendet` wird ausgelassen)";
20
- "- Or use -","-oder benutzen-";
21
- "New order mail","Neue Bestellung Email";
22
- "After notification","Nach Benachrichtigung";
23
- "After payment complete","Nach Bezahlung";
24
- "Force accept agreements","Allgemeine Gesch�ftsbedingungen";
25
- "If enabled the customer must accept the terms and conditions in the fast checkout process","Wenn eingeschaltet", Kunde muss Allgemeine Gesch�ftsbedingungen akzeptieren";
26
- "Alternate Agreements URL","Alternative Bedingungen URL";
27
- "Leave this empty for the standard URL for the agreements","Frei lassen um URL einzuf�gen von Allgemeine Gesch�ftsbedingungen";
28
- "Add company name field","Firmenname Feld zuf�gen";
29
- "Company name cannot be empty","Firmenname Feld muss ausgef�llt werden";
30
- "This will enable the Table Rates method configured at Shipping Methods -> Table Rates","Einblenden von Tabellenkurse die bei den Versandmethoden eingestellten wurden";
31
- "Allowed Currency","Erlaubte W�hrung";
32
- "Allow currency conversion to Euro","W�hrungwechsel zu Euro erlauben";
33
- "If store currency is not allowed by settings. Used for each gateway.","Wenn W�hrung von dem Webshop ist nicht erlaubt f�r die ausgew�hlte Zahlungsmethode", dann wird es in Euro umgerechnet";
34
- "New order mail","Neue Email Bestellung";
35
- "E-mail invoice to customer","Rechnung an Kunde versenden";
36
- "Send the order update e-mail to customer","Bestellungsupdate an Kunde versenden";
37
- "Keep the cart","Einkaufswagen behalten";
38
- "Cart remains active when the customer returns to the webshop or cancels an order.","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
39
- "Are you using the One Step Checkout Module?","One Step Checkout Module benutzen?";
40
- "<![CDATA[<a href='https://www.multisafepay.com/en/Open-a-test-account.html' target='_blank'>Sign up for a free test account</a>]]>"," "<![CDATA[<a href='https://www.multisafepay.com/en/Open-a-test-account.html' target='_blank'>Testkonto eroeffnen</a>]]>";
41
- "Automatically redirects a customer back to the webshop after a succesful payment. (Skips MultiSafepay's 'Transaction Complete' screen)","Automatische R�ckleitung von Kunden an Webshop nach Bezahlung";
42
- "Receive payments from applicable countries","Welche L�nder kann ich Zahlungen erhalten?";
43
- "Sort order","Bestellung einordnen";
44
- "New order e-mail","Neue Bestellung Email";
45
- "Receive payments from specific countries","Zahlungen erhalten von ausgew�hlten L�ndern";
46
- "After order confirmation","Best�tigung der Bestellung";
47
- "After notification", including cancelled order","Nach Status update"","Stornierte Transaktionen inkl.";
48
- "After notification", excluding cancelled order","Nach Status update"","Ohne stornierte Transaktionen";
49
- "If store currency is not allowed by settings. Used for each gateways.","Wenn W�hrung von dem Webshop ist nicht erlaubt f�r die ausgew�hlte Zahlungsmethode", dann wird es in Euro umgerechnet";
50
- "Cart remains active when the customer returns to the webshop or cancels an order.","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
51
- "Show the gateway image if it exists","Logo des Zahlungsportals anzeigen wenn vorhanden";
52
- "Show the gateway image if it exists in front of the title","Logo des Zahlungsportals f�r den Titel anzeigen";
53
- "Show iDEAL banklist in checkout","Liste von iDEAL Banken im Checkout anzeigen";
54
- "Account ID (for Test Accounts)","Konto ID (f�r Testkonten)";
55
- "Site ID (for Test Accounts)","Site ID (f�r Testkonten)";
56
- "Site Code (for Test Accounts)","Site Kode (f�r Testkonten)";
57
- "Days active before requests expires?","Tage bevor Anfrage abl�uft?";
58
- "Enable the invoice e-mail for this payment method?","Rechnung per Email versenden freischalten f�r diese Zahlungsmethode?";
59
- "Payment fee description", visible in order totals","Angaben der Geb�hren von den Zahlungsmethoden""," zichtbaar bij de order totalen.";
60
- "Enable IP validation","IP G�ltigkeitskontrolle aktivieren?";
61
- "Only visible for the following IP address","Zahlungsmethoden sind sichtbar nur f�r diese IP Adresse";
62
- "You can add multiple addresses seperated by ; ","Mehrere Zahlungsmethoden angeben", eine Zahlungsmethode ausw�hlen";
63
- "Only visible for the following IP address (for Test Account)","Sichtbar nur f�r die folgende IP Adressen (f�r Testkonten)";
64
- "Enable Test Account for these IP(s) when enabled Live Account","Testeinstellungen f�r diese IP Adressen aktivieren wenn das Live-Konto aktiv ist";
65
- "You can add multiple addresses separated by ; . Feature enabled only when \'Type account\' set \'Live account\'","Sie k�nnen erschiedene IP Adressen zuf�gen", eine Adresse ausw�hlen";
66
- "Send request after complete order","Anfrage versenden nach Bestellung";
67
- "Request will be send after update statuse to Complete for PAD only","Anfrage wird versendet nachdem Bestellungstatus 'Vollendet' anzeigt"","Nur bei Bezahlungen per Nachnahme";
68
- "Use for refund?"," "Refunds toestaan bij het aanmaken van een creditmemo?";
69
- "Enable direct banktransfer (no MultiSafepay page)"", Activeer de directe bankoverschrijving"," de consument zien geen MultiSafepay pagina";
70
- "Send new account email","Neue Emailkonto versenden";
71
- "Send the new account email when a customer account is created after using Fast Checkout","Email versenden wenn ein Konto im Magento durch Fast Checkout erstellt wurde";
72
- "Automatic login","Kunde automatisch einloggen?";
73
- "Login the customer after returning from Fast Checkout ","Kunde einloggen nach dem R�ckkehr via Fast Checkout?";
74
- "Let the customer redirect to their account page","Kunde an Kontoseite zur�ckleiten nach der Transaktion";
75
- "Company name","Fimenname";
76
- "Birthday","Geburtstdatum";
77
- "Chamber of Commerce (CoC/KvK)","Handelskammmer";
78
- "VAT number","UID Nummer";
79
- "Passport number","Nummer des Reisepasses";
80
- "Drivers license","Nummer des F�hrerscheines";
81
- "Sex","Geschlecht";
82
- "Cart remains active when the customer returns to the webshop or cancels an order","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
83
- "Fee in EURO. Example 2.95 (2.95 is the maximum)","Geb�hren in Euro. Beispiel 2.95 (Max. 2.95)";
84
- "Enable fee (inc. Tax)","Geb�hren zugeben (inkl. MwSt.)";
85
- "Payment fee amount","Summe der Geb�hren";
86
- "Show payment fee incl. tax during checkout","Summe der Geb�hren zeigen inkl. MwSt.";
87
- "Tax class for payment fee","MwSt. Klasse f�r Bezahlung";
88
- "Select which tax class should be used for the payment fee","Richtige MwSt. Klasse f�r die Bezahlung ausw�hlen";
89
- "Title", "Titel"
90
- "Enabled", "Aktiviert"
91
- "Instructions", "Anleitung"
92
- "Maximum Order Total", "Maximalbestellung"
93
- "Payment fee description, visible in order totals", "Angaben zu Zahlungsgeb�hren, siehe auch in Gesamtbestellung"
94
- "Sort order", "Bestellungsortierung �ndern"
95
- "API Key", "API Schl�ssel"
96
- "One Step Checkout", "One Step Checkout"
97
- "Account type", "Kontotyp"
98
- "Minimum Order Total", "Minimalbestellung"
99
- "Send shipped status after complete order", "Versendet Status aktivieren nach vollendeter Bestellung"
100
- "Enable", "Aktivieren"
101
- "Account", "Konto"
102
- "Newsletter", "Newsletter"
103
- "Comment", "Kommentar"
104
- "Type account", "Kontotyp"
105
- "@"," Bei "
106
- "Order", "Bestellung Nr"
107
- "You are not allowed to request the product feed!", "You are not allowed to request the product feed!"
108
- "Please retry placing your order and select a different payment method.", "U kunt uw order nog steeds afronden door te kiezen voor een andere betaalmethode."
109
- "We are sorry to inform you that your request for payment after delivery has been denied by Multifactor.<BR /> If you have questions about this rejection, you can checkout the FAQ on the website of Multifactor", "Het spijt ons u te moeten informeren dat u Betaal na Ontvangst verzoek niet is geaccepteerd door Multifactor.<BR /> Mocht u vragen hebben over uw afwijzing, dan kunt u de FAQ op de website van Multifactor"
110
- "You can also contact Multifactor by calling 020-8500533 (at least 2 hours after this rejection) or by sending an email to "," raadplegen. U kunt tevens contact opnemen met Multifactor via telefoonnummer 020-8500533 (Minimaal 2 uur na de afwijzing) of door het sturen van een e-mail naar: "
111
- "Rekeningnummer","Kontonummer"
112
- "Geboortedatum","Geburtsdatum"
 
 
 
1
+ "Dutch","Holl�ndisch";
2
+ "English","Englisch";
3
+ "German","Deutsch";
4
+ "French","Franz�sisch";
5
+ "Spanish","Spanisch";
6
+ "Interface language","Interface Sprache";
7
+ "New order status","Neue Bestellung";
8
+ "Payment complete status","Zahlung erfolgt";
9
+ "Create invoice after payment","Nach Bezahlung Rechnung erstellen";
10
+ "Mail invoice to customer","Rechnung an Kunde versenden";
11
+ "Gateway selection","Zahlungsportal ausw�hlen";
12
+ "Auto redirect","Automatische Weiterleitung";
13
+ "Bank selection","Bank ausw�hlen";
14
+ "Direct Debit","Direktabbuchung";
15
+ "Bank Transfer","Bank�berweisung";
16
+ "Banktransfer","Bank�berweisung";
17
+ "Sign up for a free test account","Anmelden zum Testkonto";
18
+ "<a href=\'http://www.multisafepay.com/nl/klantenservice-zakelijk/open-een-testaccount.html\' target=\'_blank\'>Sign up for a free test account</a>","<a href=\'http://www.multisafepay.com/nl/klantenservice-zakelijk/open-een-testaccount.html\' target=\'_blank\'>Gratis Testkonto erstellen</a>";
19
+ "Automatically redirects the customer back to the webshop after payment. (Skips the 'Transaction Complete' screen)","Kunde wird nach der Bezahlung automatisch an dem Webshop zur�ckgeleitet (`Transaktion vollendet` wird ausgelassen)";
20
+ "- Or use -","-oder benutzen-";
21
+ "New order mail","Neue Bestellung Email";
22
+ "After notification","Nach Benachrichtigung";
23
+ "After payment complete","Nach Bezahlung";
24
+ "Force accept agreements","Allgemeine Gesch�ftsbedingungen";
25
+ "If enabled the customer must accept the terms and conditions in the fast checkout process","Wenn eingeschaltet", Kunde muss Allgemeine Gesch�ftsbedingungen akzeptieren";
26
+ "Alternate Agreements URL","Alternative Bedingungen URL";
27
+ "Leave this empty for the standard URL for the agreements","Frei lassen um URL einzuf�gen von Allgemeine Gesch�ftsbedingungen";
28
+ "Add company name field","Firmenname Feld zuf�gen";
29
+ "Company name cannot be empty","Firmenname Feld muss ausgef�llt werden";
30
+ "This will enable the Table Rates method configured at Shipping Methods -> Table Rates","Einblenden von Tabellenkurse die bei den Versandmethoden eingestellten wurden";
31
+ "Allowed Currency","Erlaubte W�hrung";
32
+ "Allow currency conversion to Euro","W�hrungwechsel zu Euro erlauben";
33
+ "If store currency is not allowed by settings. Used for each gateway.","Wenn W�hrung von dem Webshop ist nicht erlaubt f�r die ausgew�hlte Zahlungsmethode", dann wird es in Euro umgerechnet";
34
+ "New order mail","Neue Email Bestellung";
35
+ "E-mail invoice to customer","Rechnung an Kunde versenden";
36
+ "Send the order update e-mail to customer","Bestellungsupdate an Kunde versenden";
37
+ "Keep the cart","Einkaufswagen behalten";
38
+ "Cart remains active when the customer returns to the webshop or cancels an order.","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
39
+ "Are you using the One Step Checkout Module?","One Step Checkout Module benutzen?";
40
+ "<![CDATA[<a href='https://www.multisafepay.com/en/Open-a-test-account.html' target='_blank'>Sign up for a free test account</a>]]>"," "<![CDATA[<a href='https://www.multisafepay.com/en/Open-a-test-account.html' target='_blank'>Testkonto eroeffnen</a>]]>";
41
+ "Automatically redirects a customer back to the webshop after a succesful payment. (Skips MultiSafepay's 'Transaction Complete' screen)","Automatische R�ckleitung von Kunden an Webshop nach Bezahlung";
42
+ "Receive payments from applicable countries","Welche L�nder kann ich Zahlungen erhalten?";
43
+ "Sort order","Bestellung einordnen";
44
+ "New order e-mail","Neue Bestellung Email";
45
+ "Receive payments from specific countries","Zahlungen erhalten von ausgew�hlten L�ndern";
46
+ "After order confirmation","Best�tigung der Bestellung";
47
+ "After notification", including cancelled order","Nach Status update"","Stornierte Transaktionen inkl.";
48
+ "After notification", excluding cancelled order","Nach Status update"","Ohne stornierte Transaktionen";
49
+ "If store currency is not allowed by settings. Used for each gateways.","Wenn W�hrung von dem Webshop ist nicht erlaubt f�r die ausgew�hlte Zahlungsmethode", dann wird es in Euro umgerechnet";
50
+ "Cart remains active when the customer returns to the webshop or cancels an order.","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
51
+ "Show the gateway image if it exists","Logo des Zahlungsportals anzeigen wenn vorhanden";
52
+ "Show the gateway image if it exists in front of the title","Logo des Zahlungsportals f�r den Titel anzeigen";
53
+ "Show iDEAL banklist in checkout","Liste von iDEAL Banken im Checkout anzeigen";
54
+ "Account ID (for Test Accounts)","Konto ID (f�r Testkonten)";
55
+ "Site ID (for Test Accounts)","Site ID (f�r Testkonten)";
56
+ "Site Code (for Test Accounts)","Site Kode (f�r Testkonten)";
57
+ "Days active before requests expires?","Tage bevor Anfrage abl�uft?";
58
+ "Enable the invoice e-mail for this payment method?","Rechnung per Email versenden freischalten f�r diese Zahlungsmethode?";
59
+ "Payment fee description", visible in order totals","Angaben der Geb�hren von den Zahlungsmethoden""," zichtbaar bij de order totalen.";
60
+ "Enable IP validation","IP G�ltigkeitskontrolle aktivieren?";
61
+ "Only visible for the following IP address","Zahlungsmethoden sind sichtbar nur f�r diese IP Adresse";
62
+ "You can add multiple addresses seperated by ; ","Mehrere Zahlungsmethoden angeben", eine Zahlungsmethode ausw�hlen";
63
+ "Only visible for the following IP address (for Test Account)","Sichtbar nur f�r die folgende IP Adressen (f�r Testkonten)";
64
+ "Enable Test Account for these IP(s) when enabled Live Account","Testeinstellungen f�r diese IP Adressen aktivieren wenn das Live-Konto aktiv ist";
65
+ "You can add multiple addresses separated by ; . Feature enabled only when \'Type account\' set \'Live account\'","Sie k�nnen erschiedene IP Adressen zuf�gen", eine Adresse ausw�hlen";
66
+ "Send request after complete order","Anfrage versenden nach Bestellung";
67
+ "Request will be send after update statuse to Complete for PAD only","Anfrage wird versendet nachdem Bestellungstatus 'Vollendet' anzeigt"","Nur bei Bezahlungen per Nachnahme";
68
+ "Use for refund?"," "Refunds toestaan bij het aanmaken van een creditmemo?";
69
+ "Enable direct banktransfer (no MultiSafepay page)"", Activeer de directe bankoverschrijving"," de consument zien geen MultiSafepay pagina";
70
+ "Send new account email","Neue Emailkonto versenden";
71
+ "Send the new account email when a customer account is created after using Fast Checkout","Email versenden wenn ein Konto im Magento durch Fast Checkout erstellt wurde";
72
+ "Automatic login","Kunde automatisch einloggen?";
73
+ "Login the customer after returning from Fast Checkout ","Kunde einloggen nach dem R�ckkehr via Fast Checkout?";
74
+ "Let the customer redirect to their account page","Kunde an Kontoseite zur�ckleiten nach der Transaktion";
75
+ "Company name","Fimenname";
76
+ "Birthday","Geburtstdatum";
77
+ "Chamber of Commerce (CoC/KvK)","Handelskammmer";
78
+ "VAT number","UID Nummer";
79
+ "Passport number","Nummer des Reisepasses";
80
+ "Drivers license","Nummer des F�hrerscheines";
81
+ "Sex","Geschlecht";
82
+ "Cart remains active when the customer returns to the webshop or cancels an order","Einkaufswagen bleibt erhalten auch wenn der Kunde an dem Webshop zur�ckkehrt oder eine Bestellung annulliert";
83
+ "Fee in EURO. Example 2.95 (2.95 is the maximum)","Geb�hren in Euro. Beispiel 2.95 (Max. 2.95)";
84
+ "Enable fee (inc. Tax)","Geb�hren zugeben (inkl. MwSt.)";
85
+ "Payment fee amount","Summe der Geb�hren";
86
+ "Show payment fee incl. tax during checkout","Summe der Geb�hren zeigen inkl. MwSt.";
87
+ "Tax class for payment fee","MwSt. Klasse f�r Bezahlung";
88
+ "Select which tax class should be used for the payment fee","Richtige MwSt. Klasse f�r die Bezahlung ausw�hlen";
89
+ "Title", "Titel"
90
+ "Enabled", "Aktiviert"
91
+ "Instructions", "Anleitung"
92
+ "Maximum Order Total", "Maximalbestellung"
93
+ "Payment fee description, visible in order totals", "Angaben zu Zahlungsgeb�hren, siehe auch in Gesamtbestellung"
94
+ "Sort order", "Bestellungsortierung �ndern"
95
+ "API Key", "API Schl�ssel"
96
+ "One Step Checkout", "One Step Checkout"
97
+ "Account type", "Kontotyp"
98
+ "Minimum Order Total", "Minimalbestellung"
99
+ "Send shipped status after complete order", "Versendet Status aktivieren nach vollendeter Bestellung"
100
+ "Enable", "Aktivieren"
101
+ "Account", "Konto"
102
+ "Newsletter", "Newsletter"
103
+ "Comment", "Kommentar"
104
+ "Type account", "Kontotyp"
105
+ "@"," Bei "
106
+ "Order", "Bestellung Nr"
107
+ "You are not allowed to request the product feed!", "You are not allowed to request the product feed!"
108
+ "Please retry placing your order and select a different payment method.", "U kunt uw order nog steeds afronden door te kiezen voor een andere betaalmethode."
109
+ "We are sorry to inform you that your request for payment after delivery has been denied by Multifactor.<BR /> If you have questions about this rejection, you can checkout the FAQ on the website of Multifactor", "Het spijt ons u te moeten informeren dat u Betaal na Ontvangst verzoek niet is geaccepteerd door Multifactor.<BR /> Mocht u vragen hebben over uw afwijzing, dan kunt u de FAQ op de website van Multifactor"
110
+ "You can also contact Multifactor by calling 020-8500533 (at least 2 hours after this rejection) or by sending an email to "," raadplegen. U kunt tevens contact opnemen met Multifactor via telefoonnummer 020-8500533 (Minimaal 2 uur na de afwijzing) of door het sturen van een e-mail naar: "
111
+ "Rekeningnummer","Kontonummer"
112
+ "Geboortedatum","Geburtsdatum"
113
+ "Geslacht","Geschlecht"
114
+ "Man","Mann"
115
+ "Vrouw","Frau"
app/locale/nl_NL/MultiSafepay_Msp.csv CHANGED
@@ -29,7 +29,7 @@
29
  "Company name cannot be empty","Maak bedrijfsnaam veld verplicht"
30
  "This will enable the Table Rates method configured at Shipping Methods -> Table Rates","Dit schakeld de Table Rates verzendmethode in zoals ingesteld bij Verzendmethoden -> Table rates"
31
  "Allowed Currency", "Toegestane valuta"
32
- "Allow currency conversion to Euro", "Sta valuta converie naar Euro toe"
33
  "If store currency is not allowed by settings. Used for each gateway.", "Wanneer de winkel valuta niet is toegestaan voor de gekozen betaalmethoden dan vindt er een conversie plaats naar Euro"
34
  "New order mail", "Nieuwe order email"
35
  "E-mail invoice to customer", "Email de factuur naar de consument"
29
  "Company name cannot be empty","Maak bedrijfsnaam veld verplicht"
30
  "This will enable the Table Rates method configured at Shipping Methods -> Table Rates","Dit schakeld de Table Rates verzendmethode in zoals ingesteld bij Verzendmethoden -> Table rates"
31
  "Allowed Currency", "Toegestane valuta"
32
+ "Allow currency conversion to Euro", "Sta valuta conversie naar Euro toe"
33
  "If store currency is not allowed by settings. Used for each gateway.", "Wanneer de winkel valuta niet is toegestaan voor de gekozen betaalmethoden dan vindt er een conversie plaats naar Euro"
34
  "New order mail", "Nieuwe order email"
35
  "E-mail invoice to customer", "Email de factuur naar de consument"
media/msp/creditcards/AMEX.png ADDED
Binary file
media/msp/creditcards/MAESTRO.png ADDED
Binary file
media/msp/creditcards/MASTERCARD.png ADDED
Binary file
media/msp/creditcards/VISA.png ADDED
Binary file
media/msp/de/msp_amex.png CHANGED
Binary file
media/msp/de/msp_babygiftcard.png CHANGED
Binary file
media/msp/de/msp_banktransfer.png CHANGED
Binary file
media/msp/de/msp_beautyandwellness.png CHANGED
Binary file
media/msp/de/msp_boekenbon.png CHANGED
Binary file
media/msp/de/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/de/msp_directdebit.png CHANGED
Binary file
media/msp/de/msp_directebanking.png CHANGED
Binary file
media/msp/de/msp_dotpay.png CHANGED
Binary file
media/msp/de/msp_ebon.png CHANGED
Binary file
media/msp/de/msp_einvoice.png CHANGED
Binary file
media/msp/de/msp_eps.png ADDED
Binary file
media/msp/de/msp_erotiekbon.png CHANGED
Binary file
media/msp/de/msp_fashioncheque.png CHANGED
Binary file
media/msp/de/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/de/msp_ferbuy.png ADDED
Binary file
media/msp/de/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/de/msp_giropay.png CHANGED
Binary file
media/msp/de/msp_giveacard.png CHANGED
Binary file
media/msp/de/msp_ideal.png CHANGED
Binary file
media/msp/de/msp_klarna.png CHANGED
Binary file
media/msp/de/msp_maestro.png CHANGED
Binary file
media/msp/de/msp_mastercard.png CHANGED
Binary file
media/msp/de/msp_mistercash.png CHANGED
Binary file
media/msp/de/msp_multisafepay.png CHANGED
Binary file
media/msp/de/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/de/msp_parfumnl.png CHANGED
Binary file
media/msp/de/msp_payafter.png CHANGED
Binary file
media/msp/de/msp_paypal.png CHANGED
Binary file
media/msp/de/msp_podium.png CHANGED
Binary file
media/msp/de/msp_sportenfit.png CHANGED
Binary file
media/msp/de/msp_visa.png CHANGED
Binary file
media/msp/de/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/de/msp_webgift.png CHANGED
Binary file
media/msp/de/msp_wijncadeau.png CHANGED
Binary file
media/msp/de/msp_yourgift.png CHANGED
Binary file
media/msp/en/msp_amex.png CHANGED
Binary file
media/msp/en/msp_babygiftcard.png CHANGED
Binary file
media/msp/en/msp_banktransfer.png CHANGED
Binary file
media/msp/en/msp_beautyandwellness.png CHANGED
Binary file
media/msp/en/msp_boekenbon.png CHANGED
Binary file
media/msp/en/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/en/msp_directdebit.png CHANGED
Binary file
media/msp/en/msp_directebanking.png CHANGED
Binary file
media/msp/en/msp_dotpay.png CHANGED
Binary file
media/msp/en/msp_ebon.png CHANGED
Binary file
media/msp/en/msp_einvoice.png CHANGED
Binary file
media/msp/en/msp_eps.png ADDED
Binary file
media/msp/en/msp_erotiekbon.png CHANGED
Binary file
media/msp/en/msp_fashioncheque.png CHANGED
Binary file
media/msp/en/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/en/msp_ferbuy.png ADDED
Binary file
media/msp/en/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/en/msp_giropay.png CHANGED
Binary file
media/msp/en/msp_giveacard.png CHANGED
Binary file
media/msp/en/msp_ideal.png CHANGED
Binary file
media/msp/en/msp_klarna.png CHANGED
Binary file
media/msp/en/msp_maestro.png CHANGED
Binary file
media/msp/en/msp_mastercard.png CHANGED
Binary file
media/msp/en/msp_mistercash.png CHANGED
Binary file
media/msp/en/msp_multisafepay.png CHANGED
Binary file
media/msp/en/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/en/msp_parfumnl.png CHANGED
Binary file
media/msp/en/msp_payafter.png CHANGED
Binary file
media/msp/en/msp_paypal.png CHANGED
Binary file
media/msp/en/msp_podium.png CHANGED
Binary file
media/msp/en/msp_sportenfit.png CHANGED
Binary file
media/msp/en/msp_visa.png CHANGED
Binary file
media/msp/en/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/en/msp_webgift.png CHANGED
Binary file
media/msp/en/msp_wijncadeau.png CHANGED
Binary file
media/msp/en/msp_yourgift.png CHANGED
Binary file
media/msp/es/msp_amex.png CHANGED
Binary file
media/msp/es/msp_babygiftcard.png CHANGED
Binary file
media/msp/es/msp_banktransfer.png CHANGED
Binary file
media/msp/es/msp_beautyandwellness.png CHANGED
Binary file
media/msp/es/msp_boekenbon.png CHANGED
Binary file
media/msp/es/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/es/msp_directdebit.png CHANGED
Binary file
media/msp/es/msp_directebanking.png CHANGED
Binary file
media/msp/es/msp_dotpay.png CHANGED
Binary file
media/msp/es/msp_ebon.png CHANGED
Binary file
media/msp/es/msp_einvoice.png CHANGED
Binary file
media/msp/es/msp_eps.png ADDED
Binary file
media/msp/es/msp_erotiekbon.png CHANGED
Binary file
media/msp/es/msp_fashioncheque.png CHANGED
Binary file
media/msp/es/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/es/msp_ferbuy.png ADDED
Binary file
media/msp/es/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/es/msp_giropay.png CHANGED
Binary file
media/msp/es/msp_giveacard.png CHANGED
Binary file
media/msp/es/msp_ideal.png CHANGED
Binary file
media/msp/es/msp_klarna.png CHANGED
Binary file
media/msp/es/msp_maestro.png CHANGED
Binary file
media/msp/es/msp_mastercard.png CHANGED
Binary file
media/msp/es/msp_mistercash.png CHANGED
Binary file
media/msp/es/msp_multisafepay.png CHANGED
Binary file
media/msp/es/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/es/msp_parfumnl.png CHANGED
Binary file
media/msp/es/msp_payafter.png CHANGED
Binary file
media/msp/es/msp_paypal.png CHANGED
Binary file
media/msp/es/msp_podium.png CHANGED
Binary file
media/msp/es/msp_sportenfit.png CHANGED
Binary file
media/msp/es/msp_visa.png CHANGED
Binary file
media/msp/es/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/es/msp_webgift.png CHANGED
Binary file
media/msp/es/msp_wijncadeau.png CHANGED
Binary file
media/msp/es/msp_yourgift.png CHANGED
Binary file
media/msp/fr/msp_amex.png CHANGED
Binary file
media/msp/fr/msp_babygiftcard.png CHANGED
Binary file
media/msp/fr/msp_banktransfer.png CHANGED
Binary file
media/msp/fr/msp_beautyandwellness.png CHANGED
Binary file
media/msp/fr/msp_boekenbon.png CHANGED
Binary file
media/msp/fr/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/fr/msp_directdebit.png CHANGED
Binary file
media/msp/fr/msp_directebanking.png CHANGED
Binary file
media/msp/fr/msp_dotpay.png CHANGED
Binary file
media/msp/fr/msp_ebon.png CHANGED
Binary file
media/msp/fr/msp_einvoice.png CHANGED
Binary file
media/msp/fr/msp_eps.png ADDED
Binary file
media/msp/fr/msp_erotiekbon.png CHANGED
Binary file
media/msp/fr/msp_fashioncheque.png CHANGED
Binary file
media/msp/fr/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/fr/msp_ferbuy.png ADDED
Binary file
media/msp/fr/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/fr/msp_giropay.png CHANGED
Binary file
media/msp/fr/msp_giveacard.png CHANGED
Binary file
media/msp/fr/msp_ideal.png CHANGED
Binary file
media/msp/fr/msp_klarna.png CHANGED
Binary file
media/msp/fr/msp_maestro.png CHANGED
Binary file
media/msp/fr/msp_mastercard.png CHANGED
Binary file
media/msp/fr/msp_mistercash.png CHANGED
Binary file
media/msp/fr/msp_multisafepay.png CHANGED
Binary file
media/msp/fr/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/fr/msp_parfumnl.png CHANGED
Binary file
media/msp/fr/msp_payafter.png CHANGED
Binary file
media/msp/fr/msp_paypal.png CHANGED
Binary file
media/msp/fr/msp_podium.png CHANGED
Binary file
media/msp/fr/msp_sportenfit.png CHANGED
Binary file
media/msp/fr/msp_visa.png CHANGED
Binary file
media/msp/fr/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/fr/msp_webgift.png CHANGED
Binary file
media/msp/fr/msp_wijncadeau.png CHANGED
Binary file
media/msp/fr/msp_yourgift.png CHANGED
Binary file
media/msp/ideallogos/3151.gif CHANGED
Binary file
media/msp/it/msp_amex.png CHANGED
Binary file
media/msp/it/msp_babygiftcard.png CHANGED
Binary file
media/msp/it/msp_banktransfer.png CHANGED
Binary file
media/msp/it/msp_beautyandwellness.png CHANGED
Binary file
media/msp/it/msp_boekenbon.png CHANGED
Binary file
media/msp/it/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/it/msp_directdebit.png CHANGED
Binary file
media/msp/it/msp_directebanking.png CHANGED
Binary file
media/msp/it/msp_dotpay.png CHANGED
Binary file
media/msp/it/msp_ebon.png CHANGED
Binary file
media/msp/it/msp_einvoice.png CHANGED
Binary file
media/msp/it/msp_eps.png ADDED
Binary file
media/msp/it/msp_erotiekbon.png CHANGED
Binary file
media/msp/it/msp_fashioncheque.png CHANGED
Binary file
media/msp/it/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/it/msp_ferbuy.png ADDED
Binary file
media/msp/it/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/it/msp_giropay.png CHANGED
Binary file
media/msp/it/msp_giveacard.png CHANGED
Binary file
media/msp/it/msp_ideal.png CHANGED
Binary file
media/msp/it/msp_klarna.png CHANGED
Binary file
media/msp/it/msp_maestro.png CHANGED
Binary file
media/msp/it/msp_mastercard.png CHANGED
Binary file
media/msp/it/msp_mistercash.png CHANGED
Binary file
media/msp/it/msp_multisafepay.png CHANGED
Binary file
media/msp/it/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/it/msp_parfumnl.png CHANGED
Binary file
media/msp/it/msp_payafter.png CHANGED
Binary file
media/msp/it/msp_paypal.png CHANGED
Binary file
media/msp/it/msp_podium.png CHANGED
Binary file
media/msp/it/msp_sportenfit.png CHANGED
Binary file
media/msp/it/msp_visa.png CHANGED
Binary file
media/msp/it/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/it/msp_webgift.png CHANGED
Binary file
media/msp/it/msp_wijncadeau.png CHANGED
Binary file
media/msp/it/msp_yourgift.png CHANGED
Binary file
media/msp/nl/msp_amex.png CHANGED
Binary file
media/msp/nl/msp_babygiftcard.png CHANGED
Binary file
media/msp/nl/msp_banktransfer.png CHANGED
Binary file
media/msp/nl/msp_beautyandwellness.png CHANGED
Binary file
media/msp/nl/msp_boekenbon.png CHANGED
Binary file
media/msp/nl/msp_degrotespeelgoedwinkel.png CHANGED
Binary file
media/msp/nl/msp_directdebit.png CHANGED
Binary file
media/msp/nl/msp_directebanking.png CHANGED
Binary file
media/msp/nl/msp_dotpay.png CHANGED
Binary file
media/msp/nl/msp_ebon.png CHANGED
Binary file
media/msp/nl/msp_einvoice.png CHANGED
Binary file
media/msp/nl/msp_eps.png ADDED
Binary file
media/msp/nl/msp_erotiekbon.png CHANGED
Binary file
media/msp/nl/msp_fashioncheque.png CHANGED
Binary file
media/msp/nl/msp_fashiongiftcard.png CHANGED
Binary file
media/msp/nl/msp_ferbuy.png ADDED
Binary file
media/msp/nl/msp_gezondheidsbon.png CHANGED
Binary file
media/msp/nl/msp_giropay.png CHANGED
Binary file
media/msp/nl/msp_giveacard.png CHANGED
Binary file
media/msp/nl/msp_ideal.png CHANGED
Binary file
media/msp/nl/msp_klarna.png CHANGED
Binary file
media/msp/nl/msp_maestro.png CHANGED
Binary file
media/msp/nl/msp_mastercard.png CHANGED
Binary file
media/msp/nl/msp_mistercash.png CHANGED
Binary file
media/msp/nl/msp_multisafepay.png CHANGED
Binary file
media/msp/nl/msp_parfumcadeaukaart.png CHANGED
Binary file
media/msp/nl/msp_parfumnl.png CHANGED
Binary file
media/msp/nl/msp_payafter.png CHANGED
Binary file
media/msp/nl/msp_paypal.png CHANGED
Binary file
media/msp/nl/msp_podium.png CHANGED
Binary file
media/msp/nl/msp_sportenfit.png CHANGED
Binary file
media/msp/nl/msp_visa.png CHANGED
Binary file
media/msp/nl/msp_vvvgiftcard.png CHANGED
Binary file
media/msp/nl/msp_webgift.png CHANGED
Binary file
media/msp/nl/msp_wijncadeau.png CHANGED
Binary file
media/msp/nl/msp_yourgift.png CHANGED
Binary file
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MultiSafepay_Msp</name>
4
- <version>2.2.9</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/afl-3.0.php">AFL 3.0</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>With this module you can use all payment methods offered by MultiSafepay</description>
11
  <notes>Tested by MultiSafepay</notes>
12
  <authors><author><name>MultiSafepay</name><user>MultiSafepayDev</user><email>Info@multisafepay.com</email></author></authors>
13
- <date>2016-08-10</date>
14
- <time>08:49:31</time>
15
- <contents><target name="magecommunity"><dir name="MultiSafepay"><dir name="Msp"><dir name="Block"><dir name="Adminhtml"><dir name="Servicecost"><dir name="Totals"><file name="Creditmemo.php" hash="e403b6a33c2543395aa25016cc52626c"/><file name="Invoice.php" hash="822a1696e6827e183b96cefa1d2582ce"/><file name="Order.php" hash="a445ecb050e7ce19bf67208bf3e23131"/></dir></dir></dir><file name="Bno.php" hash="b2dd61062c2c27ee4406a3f3ed8ec8b7"/><dir name="Checkout"><dir name="Onepage"><dir name="Payment"><file name="Methods.php" hash="3f68146a2f124b51ba1b866c1816c1e1"/></dir></dir></dir><file name="Default.php" hash="196e02bdf9df0195c19bcd965b70e4e3"/><file name="Einvoice.php" hash="1ab39d03c145f2d8c877963a4b8b3ff3"/><file name="IdealIssuers.php" hash="733db7b86ba5507e4502176fe1803efd"/><file name="Klarna.php" hash="2199e9a10121ca0553d9cf125d7e6e49"/><file name="Link.php" hash="f9fd1820a8431d93139686b1b7292250"/><dir name="Servicecost"><dir name="Order"><file name="Total.php" hash="0e1efe7403334adce5cea4a2cab5349b"/><file name="Totals.php" hash="89dc0bee3dcbdf8291d85a0db968e93b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="874982e75f9df72955edb51377eea3fc"/></dir><dir name="Model"><file name="Abstract.php" hash="ba8079cb854ab74d5276bfe253a8cac0"/><dir name="Api"><file name="Paylink.php" hash="c96b7a9ff64b343d92eecac8f7a649d1"/><file name="Shipment.php" hash="eaff3fffdea7bed6c733325088b665fd"/></dir><file name="Base.php" hash="384c2042ea008b5151800e5a94c0ff28"/><file name="Checkout.php" hash="26ff638915df4773f9dce24683163ccc"/><dir name="Config"><dir name="Sources"><file name="Accounts.php" hash="8e1228aa67d459dbc598ecb801b7a451"/><file name="Fields.php" hash="2b2338147178664a4d29423b0bc9ab2d"/><file name="Groups.php" hash="44d2e865c1a88870c93ecb10455543c1"/><file name="Languages.php" hash="af19ca8647d353481fad4319dfdc8d09"/><dir name="Order"><file name="Currency.php" hash="b647513ac08f53ac81d09d8926f2f886"/><file name="Email.php" hash="cc6da2a79d873ed67086f23a70b096cf"/></dir><file name="TaxClasses.php" hash="56d52f22239542fc965fc0bbd34bcff8"/></dir></dir><dir name="Gateway"><file name="Abstract.php" hash="62c746420b823b5fd5cc931a0980762f"/><file name="Amex.php" hash="6b6baed7457c8c3043c61a46b46d932a"/><file name="Babygiftcard.php" hash="023eb1c0da2cf3c3e77d87ea429ec070"/><file name="Banktransfer.php" hash="9218c21628d646c37907e3ffeba8e7c6"/><file name="Beautyandwellness.php" hash="28ed51984587be1519fe0188d4a775c8"/><file name="Boekenbon.php" hash="cf1aef4f6007fcf488cbfdc6564398e2"/><file name="Default.php" hash="76e4d2306b681ac8f76c57eba3ee56fb"/><file name="Degrotespeelgoedwinkel.php" hash="c4e47624c833c4b18659e294ddcf85a9"/><file name="DirectDebit.php" hash="321a1ae72502d2885e04cd1c1ca43d89"/><file name="DirectEbanking.php" hash="3d90e75d9cacf8fe9344afc553104d6d"/><file name="Dotpay.php" hash="14af496acc40e56577e6eb5869e0d6b0"/><file name="Ebon.php" hash="1ae6cc3469bfc18e92ffa69099642d89"/><file name="Einvoice.php" hash="82776bb882bc7bdacabafcd105859e66"/><file name="Erotiekbon.php" hash="99661e6caff7e49c492d0aeac6d5c2a4"/><file name="Fashioncheque.php" hash="4ec0609a04738df2efb1adf5b4e690de"/><file name="Fashiongiftcard.php" hash="a770817e3c840535b85abdcd4ecf8180"/><file name="Fastcheckout.php" hash="e370882bfa34a2ead9d2a4323f4962e3"/><file name="Gezondheidsbon.php" hash="800ef8a5628b39f42c0cb952346ee5a3"/><file name="GiroPay.php" hash="dff685719e4a0748e7c316e8c4783b51"/><file name="Giveacard.php" hash="889b0269387eace387777cecedc7b5ee"/><file name="Ideal.php" hash="dd7bfe92ccc39c7ee90b623cc35425d3"/><file name="Klarna.php" hash="9fa8e0a45d3cb6fd6f80ce1eb101e260"/><file name="Lief.php" hash="c57189c1ab312d3ffff41c47c49b1d91"/><file name="Maestro.php" hash="a4da2619b078db9745e336be28f72f53"/><file name="Mastercard.php" hash="91a4aa8408fa87b29d8516dc70be5ece"/><file name="Mistercash.php" hash="2ffe2f02e631ba2a4b5efa584dfc1e47"/><file name="MultiSafepay.php" hash="39754875012e1bb404340f81f574dde3"/><file name="Parfumcadeaukaart.php" hash="8a04202d50a60a9a1ff0f805b5ae75c5"/><file name="Parfumnl.php" hash="9c807bbc577d0ca335bc0d74d20807ce"/><file name="Payafter.php" hash="b8d2815c722fa02c706d0f6b00d39c0f"/><file name="Paypal.php" hash="45607135c9717d4422ae4a2b6e39cead"/><file name="Podium.php" hash="e757417d6498dd34c9b63ae13ec5ce2e"/><file name="Sportenfit.php" hash="16d9efe4aac86e424202403342f9974a"/><file name="Standard.php" hash="43ea744c95f898f4a9ef5fe3a80bb078"/><file name="Visa.php" hash="72e0c693dca5c94aeede4d7b2c7ed432"/><file name="Vvvgiftcard.php" hash="430b679914548f26eb54464ad94aa744"/><file name="Webgift.php" hash="80c03b3609ce0860a43ea7c709044cee"/><file name="Wijncadeau.php" hash="2613b3fd6212b562588c753b403f91f9"/><file name="Yourgift.php" hash="c6b9b7d909857d5917e06b7507f8ad8c"/></dir><dir name="Observer"><file name="Abstract.php" hash="f69ae090d64e8f30b96d22b58066247c"/><file name="Order.php" hash="a90a7e96897399fe58cee1593982a156"/><file name="Shipment.php" hash="50c7480da2ea0b13cf62147d4d5d7064"/></dir><file name="Payment.php" hash="a67262ad10b9ea6ea2a5a1ee8f1c9407"/><dir name="Service"><file name="Quote.php" hash="c724f31b72c66249555fe7021fa87cb9"/></dir><dir name="Servicecost"><dir name="Creditmemo"><file name="Total.php" hash="1096e0e8ac1bbfb91272658332b37a76"/></dir><dir name="Invoice"><file name="Totals.php" hash="d59b1a4ca34c91a383f08be0fa09a19a"/></dir><file name="Observer.php" hash="60bbe048424c1581630c3365e7abd5ba"/><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Servicecost.php" hash="097aab822be131ab11673d4289b15cfc"/></dir></dir></dir></dir><file name="Setup.php" hash="bfa4d921685eeb25724f40c7fec0f625"/></dir><dir name="controllers"><file name="CheckoutController.php" hash="b5f6be156be78445369da1b02a4819b3"/><file name="MspPaymentController.php" hash="d2add60c93cb99ef9f2630466fbcbfdc"/><file name="StandardController.php" hash="a9ec343ece78f27faa9292fcea161d94"/></dir><dir name="etc"><file name="adminhtml.xml" hash="2481c2eb37cff4e04652b6e034a292dd"/><file name="config.xml" hash="700d82687229bd0dc50bf1221ece6dda"/><file name="system.xml" hash="254476de74ba7f30d37e4b41806e56bb"/></dir><dir name="sql"><dir name="msp_setup"><file name="mysql4-upgrade-1.3.3-2.2.1.php" hash="f04337e65e800249b33de24709ada8e8"/></dir></dir></dir></dir></target><target name="magemedia"><dir name="msp"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><dir name="de"><file name="Thumbs.db" hash="23c6d2fa586f60e64acf307d398dfeb2"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="5993fd5deb6e184765d690c85ae7d740"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="38dc09ac7c4d8e32dade12ef7b24ba75"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir><dir name="en"><file name="Thumbs.db" hash="8631718a27c51f2a091e6e954af7f434"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="5993fd5deb6e184765d690c85ae7d740"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="177fe504ef710cf5eaf42cc9592c2215"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir><dir name="es"><file name="Thumbs.db" hash="c67f35358ffef6d7986bb93f1e65eae6"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="0ba666cf841114b892667331c8aaad4e"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="3ffde6c7a1eec68da96ea11518dfde55"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir><dir name="fr"><file name="Thumbs.db" hash="163c29258e74e6c5809b93399db36904"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="87bb8916f81ed310cf5cb3aed814fb9d"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="f0b641efb330c71dbdbf9eb71617605f"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir><dir name="ideallogos"><file name="0021.gif" hash="8df417edaf2410ff574d9d1ed453c0bc"/><file name="0031.gif" hash="eb6d7cd949e6fbf671c43cb83c7c3e17"/><file name="0161.gif" hash="f68ceb355661c41779d716a6ef8dfdf3"/><file name="0511.gif" hash="f3dd4d744232ddf4c1700068a6b3a531"/><file name="0721.gif" hash="e56fa35285496c73565bfdf82d6967fa"/><file name="0751.gif" hash="78462566d91b21feca3930ccf203e1f4"/><file name="0761.gif" hash="0fbd9493e65ab774cc6859da47c3c8cc"/><file name="0771.gif" hash="78462566d91b21feca3930ccf203e1f4"/><file name="0801.gif" hash="146e995dbede4e2798c278d6da26b9d2"/><file name="3151.gif" hash="b2131523869214184357e8a556d3bb08"/><file name="4371.gif" hash="51f25ac346802160b29ae38ea91858d6"/></dir><dir name="it"><file name="Thumbs.db" hash="06947336d2daae296c3aa6e0d0666a3e"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="eaf1b22dbe6ad0ad3e8c7108552359ad"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="dfb3d359a9b48c88dc71ef65af9ea356"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir><dir name="nl"><file name="Thumbs.db" hash="1b02d4a7ea1014a099e3abc3fffc4902"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="404edf4cd1e16a79e2c72db944f00ae6"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="df54e38016cda0b1dbd537b4784278f7"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="e6ebeb240ec6344fb317920973064e9e"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="5bb219f7e45e3b9cd6f4a6c51a5ea875"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="msp"><file name="agreements.phtml" hash="93ceba499bbad259c94b566add5924d9"/><file name="bno.phtml" hash="2e20726326a3ceee335bf6b57b6b831a"/><file name="default.phtml" hash="6e0e2e897bf5fff338e69f834d9a7b1a"/><file name="einvoice.phtml" hash="b691a94a88acce1527e7bf44e106ea3d"/><file name="idealissuers.phtml" hash="88bcafebb3b3288b8a6a7861a9302ae3"/><file name="klarna.phtml" hash="57e7c3b019d4b637e6dbe46c39ff31af"/><file name="link.phtml" hash="278f910fb3f4cb820d3111066e85f067"/><file name="linkText.phtml" hash="d94fba14433870541603c1b3943d6ae8"/></dir></dir><dir name="layout"><file name="msp.xml" hash="cf698709a65bb5b471b992149f210ace"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="msp.xml" hash="f5959e41c7e4ddb30198093b708df511"/></dir><dir name="template"><dir name="msp"><file name="gateways.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="idealissuers.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="klarna.phtml" hash="24ab559d8d59ee0fcad070d071bb5708"/><dir name="servicecost"><dir name="order"><dir name="creditmemo"><dir name="create"><dir name="totals"><file name="adjustments.phtml" hash="e0009f26cd510641159d0321b0e08b1e"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="multisafepay"><file name="MultiSafepay.combined.php" hash="585c7ebad57e33122698ba0662d66d9d"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MultiSafepay_Msp.xml" hash="e6899e0295b157d6ad3a37334f2330ae"/></dir></target><target name="magelocale"><dir name="nl_NL"><file name="MultiSafepay_Msp.csv" hash="4b4736b69b17e654a7f0531acb6e887a"/></dir><dir name="de_DE"><file name="MultiSafepay_Msp.csv" hash="cbf33fe7b3be78b7c12f1e86e16a2a01"/></dir><dir name="en_EN"><file name="MultiSafepay_Msp.csv" hash="ed854aac72b11e698c578218b6f4906e"/></dir><dir name="es_ES"><file name="MultiSafepay_Msp.csv" hash="f6c76aa1273e1a4e897b0e6c5aac780c"/></dir><dir name="fr_FR"><file name="MultiSafepay_Msp.csv" hash="ff58587f6c892f4de9074282a2a997f0"/></dir><dir name="it_IT"><file name="MultiSafepay_Msp.csv" hash="0332fffa252445398724d76ecb4232e0"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><dir name="MultiSafepay"><file name="config.js" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir><dir name="images"><dir name="msp"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><dir name="nl"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="404edf4cd1e16a79e2c72db944f00ae6"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="df54e38016cda0b1dbd537b4784278f7"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="f2363b7e5fde1f4717d803f45e29a622"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="c429297b30437960315df5d9b36b0118"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="1618cabf2b2842ee26f9e81aa6977eef"/></dir></dir></dir><dir name="css"><dir name="MultiSafepay"><file name="config.css" hash="db08ddd5a22d456d213a7179399c830b"/></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>7.0.1</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MultiSafepay_Msp</name>
4
+ <version>2.3.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/afl-3.0.php">AFL 3.0</license>
7
  <channel>community</channel>
10
  <description>With this module you can use all payment methods offered by MultiSafepay</description>
11
  <notes>Tested by MultiSafepay</notes>
12
  <authors><author><name>MultiSafepay</name><user>MultiSafepayDev</user><email>Info@multisafepay.com</email></author></authors>
13
+ <date>2016-11-04</date>
14
+ <time>09:23:32</time>
15
+ <contents><target name="magecommunity"><dir name="MultiSafepay"><dir name="Msp"><dir name="Block"><dir name="Adminhtml"><dir name="Servicecost"><dir name="Totals"><file name="Creditmemo.php" hash="e403b6a33c2543395aa25016cc52626c"/><file name="Invoice.php" hash="822a1696e6827e183b96cefa1d2582ce"/><file name="Order.php" hash="a445ecb050e7ce19bf67208bf3e23131"/></dir></dir></dir><file name="Bno.php" hash="b2dd61062c2c27ee4406a3f3ed8ec8b7"/><dir name="Checkout"><dir name="Onepage"><dir name="Payment"><file name="Methods.php" hash="3f68146a2f124b51ba1b866c1816c1e1"/></dir></dir></dir><file name="Creditcards.php" hash="978aa317b7abd53c25c4c4d157fa1580"/><file name="Default.php" hash="196e02bdf9df0195c19bcd965b70e4e3"/><file name="Einvoice.php" hash="1ab39d03c145f2d8c877963a4b8b3ff3"/><file name="IdealIssuers.php" hash="733db7b86ba5507e4502176fe1803efd"/><file name="Klarna.php" hash="2199e9a10121ca0553d9cf125d7e6e49"/><file name="Link.php" hash="f9fd1820a8431d93139686b1b7292250"/><dir name="Servicecost"><dir name="Order"><file name="Total.php" hash="0e1efe7403334adce5cea4a2cab5349b"/><file name="Totals.php" hash="89dc0bee3dcbdf8291d85a0db968e93b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="874982e75f9df72955edb51377eea3fc"/></dir><dir name="Model"><file name="Abstract.php" hash="ba8079cb854ab74d5276bfe253a8cac0"/><dir name="Api"><file name="Autoloader.php" hash="fca2821f678e2ce48d45e72e393cf37b"/><file name="Client.php" hash="fc4ba6f5117b5c35a56e55870bc8c752"/><dir name="Object"><file name="Affiliates.php" hash="0b44dbfc0d8710565cbd13951735d33d"/><file name="Core.php" hash="d215fb7f25019f7daad749e81c107f14"/><file name="Gateways.php" hash="6f8f5fd070cf3e24ba131e0477890ef8"/><file name="Issuers.php" hash="a61760ba32813f7740cc67090788132f"/><file name="Orders.php" hash="09699f59b047ab272462390ebce67e39"/></dir><file name="Paylink.php" hash="7303ec00c02f72975b5eed04282105fe"/><file name="Shipment.php" hash="eaff3fffdea7bed6c733325088b665fd"/></dir><file name="Base.php" hash="8bb8c076c6bcbf113b199bc3c8d9ae49"/><file name="Checkout.php" hash="26ff638915df4773f9dce24683163ccc"/><dir name="Config"><dir name="Sources"><file name="Accounts.php" hash="8e1228aa67d459dbc598ecb801b7a451"/><file name="Creditcards.php" hash="3d632af450fde93dca7d3998cda94bb6"/><file name="Fields.php" hash="2b2338147178664a4d29423b0bc9ab2d"/><file name="Groups.php" hash="44d2e865c1a88870c93ecb10455543c1"/><file name="Languages.php" hash="af19ca8647d353481fad4319dfdc8d09"/><dir name="Order"><file name="Currency.php" hash="b647513ac08f53ac81d09d8926f2f886"/><file name="Email.php" hash="cc6da2a79d873ed67086f23a70b096cf"/></dir><file name="TaxClasses.php" hash="56d52f22239542fc965fc0bbd34bcff8"/></dir></dir><dir name="Gateway"><file name="Abstract.php" hash="2dd33c9f541bbe1af94c62590068dfb4"/><file name="Amex.php" hash="6b6baed7457c8c3043c61a46b46d932a"/><file name="Babygiftcard.php" hash="023eb1c0da2cf3c3e77d87ea429ec070"/><file name="Banktransfer.php" hash="9218c21628d646c37907e3ffeba8e7c6"/><file name="Beautyandwellness.php" hash="28ed51984587be1519fe0188d4a775c8"/><file name="Boekenbon.php" hash="cf1aef4f6007fcf488cbfdc6564398e2"/><file name="Creditcard.php" hash="f2ff790eb2d7dc6d36e386a551085ef5"/><file name="Default.php" hash="76e4d2306b681ac8f76c57eba3ee56fb"/><file name="Degrotespeelgoedwinkel.php" hash="c4e47624c833c4b18659e294ddcf85a9"/><file name="DirectDebit.php" hash="321a1ae72502d2885e04cd1c1ca43d89"/><file name="DirectEbanking.php" hash="3d90e75d9cacf8fe9344afc553104d6d"/><file name="Dotpay.php" hash="14af496acc40e56577e6eb5869e0d6b0"/><file name="Ebon.php" hash="1ae6cc3469bfc18e92ffa69099642d89"/><file name="Einvoice.php" hash="ada913cdb2dbfad88cc4e629c2227a96"/><file name="Eps.php" hash="5f8a35d94e58fd8695dfecfcfbca1b16"/><file name="Erotiekbon.php" hash="99661e6caff7e49c492d0aeac6d5c2a4"/><file name="Fashioncheque.php" hash="4ec0609a04738df2efb1adf5b4e690de"/><file name="Fashiongiftcard.php" hash="a770817e3c840535b85abdcd4ecf8180"/><file name="Fastcheckout.php" hash="e370882bfa34a2ead9d2a4323f4962e3"/><file name="Ferbuy.php" hash="4ec9ca811408cbfdb5dc3f7a9daf279a"/><file name="Gezondheidsbon.php" hash="800ef8a5628b39f42c0cb952346ee5a3"/><file name="GiroPay.php" hash="dff685719e4a0748e7c316e8c4783b51"/><file name="Giveacard.php" hash="889b0269387eace387777cecedc7b5ee"/><file name="Ideal.php" hash="dd7bfe92ccc39c7ee90b623cc35425d3"/><file name="Klarna.php" hash="e72a9108b78986071fb7094e18c9a240"/><file name="Lief.php" hash="c57189c1ab312d3ffff41c47c49b1d91"/><file name="Maestro.php" hash="a4da2619b078db9745e336be28f72f53"/><file name="Mastercard.php" hash="91a4aa8408fa87b29d8516dc70be5ece"/><file name="Mistercash.php" hash="2ffe2f02e631ba2a4b5efa584dfc1e47"/><file name="MultiSafepay.php" hash="39754875012e1bb404340f81f574dde3"/><file name="Parfumcadeaukaart.php" hash="8a04202d50a60a9a1ff0f805b5ae75c5"/><file name="Parfumnl.php" hash="9c807bbc577d0ca335bc0d74d20807ce"/><file name="Payafter.php" hash="cd4fa33eca47f2572e10f275cd5ed742"/><file name="Paypal.php" hash="45607135c9717d4422ae4a2b6e39cead"/><file name="Podium.php" hash="e757417d6498dd34c9b63ae13ec5ce2e"/><file name="Sportenfit.php" hash="16d9efe4aac86e424202403342f9974a"/><file name="Standard.php" hash="43ea744c95f898f4a9ef5fe3a80bb078"/><file name="Visa.php" hash="72e0c693dca5c94aeede4d7b2c7ed432"/><file name="Vvvgiftcard.php" hash="d234a0a97c82cc22005a6b1d038f8573"/><file name="Webgift.php" hash="80c03b3609ce0860a43ea7c709044cee"/><file name="Wijncadeau.php" hash="2613b3fd6212b562588c753b403f91f9"/><file name="Yourgift.php" hash="c6b9b7d909857d5917e06b7507f8ad8c"/></dir><dir name="Observer"><file name="Abstract.php" hash="f69ae090d64e8f30b96d22b58066247c"/><file name="Order.php" hash="7c0243be15993a58587817628634dc07"/><file name="Shipment.php" hash="50c7480da2ea0b13cf62147d4d5d7064"/></dir><file name="Payment.php" hash="594eedd75f2de46aab80ddfe19a54baa"/><dir name="Service"><file name="Quote.php" hash="b3625ca238c58e141e2258756199bf4e"/></dir><dir name="Servicecost"><dir name="Creditmemo"><file name="Total.php" hash="1096e0e8ac1bbfb91272658332b37a76"/></dir><dir name="Invoice"><file name="Totals.php" hash="d59b1a4ca34c91a383f08be0fa09a19a"/></dir><file name="Observer.php" hash="60bbe048424c1581630c3365e7abd5ba"/><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Servicecost.php" hash="6416fb7ab856bf5d3d2889b0f0d96cef"/></dir></dir></dir></dir><file name="Setup.php" hash="bfa4d921685eeb25724f40c7fec0f625"/><dir name="controllers"><file name="CheckoutController.php" hash="b5f6be156be78445369da1b02a4819b3"/><file name="MspPaymentController.php" hash="d2add60c93cb99ef9f2630466fbcbfdc"/><file name="StandardController.php" hash="4c192056199c7a366dcf798dd9ed17fd"/></dir></dir><dir name="controllers"><file name="CheckoutController.php" hash="b5f6be156be78445369da1b02a4819b3"/><file name="MspPaymentController.php" hash="d2add60c93cb99ef9f2630466fbcbfdc"/><file name="StandardController.php" hash="e4cb90c1849158f6b756369b5c040862"/></dir><dir name="etc"><file name="adminhtml.xml" hash="2481c2eb37cff4e04652b6e034a292dd"/><file name="config.xml" hash="841b48b2d009af7896d096b2b0164a39"/><file name="system.xml" hash="94f537dc0094d29de072669dcc52ab9e"/></dir><dir name="sql"><dir name="msp_setup"><file name="mysql4-upgrade-1.3.3-2.2.1.php" hash="f04337e65e800249b33de24709ada8e8"/></dir></dir></dir></dir></target><target name="magemedia"><dir name="msp"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><dir name="creditcards"><file name="AMEX.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="MAESTRO.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="MASTERCARD.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="VISA.png" hash="a1142e19b751fa4a4925bb030170cdbb"/></dir><dir name="de"><file name="Thumbs.db" hash="23c6d2fa586f60e64acf307d398dfeb2"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="3e440fff945bbcee34eb1b291a6d0db8"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="27162076f20d15888cd4d7198becbea2"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir><dir name="en"><file name="Thumbs.db" hash="8631718a27c51f2a091e6e954af7f434"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="7de8894a60d58865e44e91cf0c4fe2e7"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="320046922f917d1b400c908383d3781c"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir><dir name="es"><file name="Thumbs.db" hash="c67f35358ffef6d7986bb93f1e65eae6"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="3e440fff945bbcee34eb1b291a6d0db8"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="7be2534c428267279219a9b8ee001ccc"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir><dir name="fr"><file name="Thumbs.db" hash="163c29258e74e6c5809b93399db36904"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="3e440fff945bbcee34eb1b291a6d0db8"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="e45e381187bf9c69278b74ed03d78534"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir><dir name="ideallogos"><file name="0021.gif" hash="8df417edaf2410ff574d9d1ed453c0bc"/><file name="0031.gif" hash="eb6d7cd949e6fbf671c43cb83c7c3e17"/><file name="0161.gif" hash="f68ceb355661c41779d716a6ef8dfdf3"/><file name="0511.gif" hash="f3dd4d744232ddf4c1700068a6b3a531"/><file name="0721.gif" hash="e56fa35285496c73565bfdf82d6967fa"/><file name="0751.gif" hash="78462566d91b21feca3930ccf203e1f4"/><file name="0761.gif" hash="0fbd9493e65ab774cc6859da47c3c8cc"/><file name="0771.gif" hash="78462566d91b21feca3930ccf203e1f4"/><file name="0801.gif" hash="146e995dbede4e2798c278d6da26b9d2"/><file name="3151.gif" hash="e39d49dfb14d2ea896be4e52a3eed17a"/><file name="4371.gif" hash="51f25ac346802160b29ae38ea91858d6"/></dir><dir name="it"><file name="Thumbs.db" hash="06947336d2daae296c3aa6e0d0666a3e"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="3e440fff945bbcee34eb1b291a6d0db8"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="84de0a08291cb1f8c30842687223df08"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir><dir name="nl"><file name="Thumbs.db" hash="1b02d4a7ea1014a099e3abc3fffc4902"/><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="7551e6f5a1edce55868884d3c0c35d3f"/><file name="msp_babygiftcard.png" hash="3e440fff945bbcee34eb1b291a6d0db8"/><file name="msp_banktransfer.png" hash="777d005316af9cc2a9ab6aa81c2b3b12"/><file name="msp_beautyandwellness.png" hash="7f2aacc83de6c4dfa8c7e647db127ba4"/><file name="msp_boekenbon.png" hash="6ddb5ab62d51db8a572152ad8e0d4b93"/><file name="msp_degrotespeelgoedwinkel.png" hash="41846a8b2161416974dc928b3b4b0404"/><file name="msp_directdebit.png" hash="ebe00e96c9a1fe611b284c531b326d79"/><file name="msp_directebanking.png" hash="779b3348fe8a1b6d74617f8befb3379d"/><file name="msp_dotpay.png" hash="77a9af341463e7f44985de06e02f9f2c"/><file name="msp_ebon.png" hash="6e0815d5ea8acb37f96b974c1a300241"/><file name="msp_einvoice.png" hash="efe2613dda6c8bcb644b5a5bd9d39fa6"/><file name="msp_eps.png" hash="9c6b78e373c8e75362035b0404746520"/><file name="msp_erotiekbon.png" hash="15a7f2a2e11f31ff293d43695a2b2a7c"/><file name="msp_fashioncheque.png" hash="2b1cd5386365f9c67edb851824fa0be4"/><file name="msp_fashiongiftcard.png" hash="6727dfc5fc41b0d84c048b96472a4068"/><file name="msp_ferbuy.png" hash="9dc66dd0af70e0f0543744f83a61ce72"/><file name="msp_gezondheidsbon.png" hash="3c747dc2a2b6e6ebff11f380713c4858"/><file name="msp_giropay.png" hash="7775e2152bd20d0192cb5820e90e92b9"/><file name="msp_giveacard.png" hash="757d2181e7008dacf80a9bc6dbef0a3d"/><file name="msp_ideal.png" hash="cfe5725cbde138bcebebbc7c4969d8b8"/><file name="msp_klarna.png" hash="1c3542f35bd28fe7d5c629d4b32fbd82"/><file name="msp_maestro.png" hash="d2760caa8b8ead4b5a1a0820b48bcd53"/><file name="msp_mastercard.png" hash="80d624158e441228a628ba6e4a3eef1f"/><file name="msp_mistercash.png" hash="bdc5f4dc4882e47db527e5ac99d6d4f8"/><file name="msp_multisafepay.png" hash="7f3c2fd0bc133883e06eaf9f5d386be8"/><file name="msp_parfumcadeaukaart.png" hash="69adbc8be5be46d18112d759f73aa1f9"/><file name="msp_parfumnl.png" hash="633e48b1c755e393e8c217d8f37d3f9f"/><file name="msp_payafter.png" hash="2fb0b05120a6d4e46cd57f7015e7d56c"/><file name="msp_paypal.png" hash="a46c883090638eac14e406197da46341"/><file name="msp_podium.png" hash="8b50fd7865d65503b9b6cc3ee33b354b"/><file name="msp_sportenfit.png" hash="12df0ee1260d48df672f118cb53eba44"/><file name="msp_visa.png" hash="a1142e19b751fa4a4925bb030170cdbb"/><file name="msp_vvvgiftcard.png" hash="01bd0c080f47d8faa7989f745874902b"/><file name="msp_webgift.png" hash="797244afa3996ff2f1df8a133e82c361"/><file name="msp_wijncadeau.png" hash="c84bcca005833bf297e03659a3fa9a9a"/><file name="msp_yourgift.png" hash="22599e84e7b8e46d6676a45deea32192"/></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="msp"><file name="agreements.phtml" hash="93ceba499bbad259c94b566add5924d9"/><file name="bno.phtml" hash="2e20726326a3ceee335bf6b57b6b831a"/><file name="creditcards.phtml" hash="f93c73fec6a572f314e1289bad9776ed"/><file name="default.phtml" hash="6e0e2e897bf5fff338e69f834d9a7b1a"/><file name="einvoice.phtml" hash="b691a94a88acce1527e7bf44e106ea3d"/><file name="idealissuers.phtml" hash="e1c3e19b413302ad60a8b6e855d6979f"/><file name="klarna.phtml" hash="ab582b3c5e356644575580f8aac565e4"/><file name="link.phtml" hash="278f910fb3f4cb820d3111066e85f067"/><file name="linkText.phtml" hash="d94fba14433870541603c1b3943d6ae8"/></dir></dir><dir name="layout"><file name="msp.xml" hash="cf698709a65bb5b471b992149f210ace"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="msp.xml" hash="f5959e41c7e4ddb30198093b708df511"/></dir><dir name="template"><dir name="msp"><file name="creditcards.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="default.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="gateways.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="idealissuers.phtml" hash="ed4cf6ffc3e0dba9ec5fc7d5c80b8ee1"/><file name="klarna.phtml" hash="24ab559d8d59ee0fcad070d071bb5708"/><dir name="servicecost"><dir name="order"><dir name="creditmemo"><dir name="create"><dir name="totals"><file name="adjustments.phtml" hash="e0009f26cd510641159d0321b0e08b1e"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="multisafepay"><file name="MultiSafepay.combined.php" hash="585c7ebad57e33122698ba0662d66d9d"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MultiSafepay_Msp.xml" hash="e6899e0295b157d6ad3a37334f2330ae"/></dir></target><target name="magelocale"><dir name="nl_NL"><file name="MultiSafepay_Msp.csv" hash="d644229ec3b89f94c7d2feeeb257d726"/></dir><dir name="de_DE"><file name="MultiSafepay_Msp.csv" hash="8b78be7c023780b4ffea55f60939fd51"/></dir><dir name="en_EN"><file name="MultiSafepay_Msp.csv" hash="ed854aac72b11e698c578218b6f4906e"/></dir><dir name="es_ES"><file name="MultiSafepay_Msp.csv" hash="f6c76aa1273e1a4e897b0e6c5aac780c"/></dir><dir name="fr_FR"><file name="MultiSafepay_Msp.csv" hash="ff58587f6c892f4de9074282a2a997f0"/></dir><dir name="it_IT"><file name="MultiSafepay_Msp.csv" hash="0332fffa252445398724d76ecb4232e0"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><dir name="MultiSafepay"><file name="config.js" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir><dir name="images"><dir name="msp"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><dir name="nl"><file name="button.png" hash="3f109b9ccbf7e26c3600d9b445bfab4f"/><file name="msp_amex.png" hash="a5e66b6516f80a7d8add7d59d6bf0e9d"/><file name="msp_babygiftcard.png" hash="85cb17a943036d86402bb439938cf616"/><file name="msp_banktransfer.png" hash="404edf4cd1e16a79e2c72db944f00ae6"/><file name="msp_beautyandwellness.png" hash="e8503146ce5bc90abc7f65e58b19313c"/><file name="msp_boekenbon.png" hash="c69a112af5220771b4d281978cd184ba"/><file name="msp_degrotespeelgoedwinkel.png" hash="e9193002f24d2ba35afb759b5c268be5"/><file name="msp_directdebit.png" hash="df54e38016cda0b1dbd537b4784278f7"/><file name="msp_directebanking.png" hash="a3e72c2e0053b8fab500bd171e516877"/><file name="msp_dotpay.png" hash="f2363b7e5fde1f4717d803f45e29a622"/><file name="msp_ebon.png" hash="e98f08cc1108106951e01f9b186a5cdb"/><file name="msp_einvoice.png" hash="965e8a7d9885ef3e370a1960390a9c2c"/><file name="msp_eps.png" hash="08b42eebdda8e8f263891fb0a2ff9b07"/><file name="msp_erotiekbon.png" hash="b3d5a2793aabcf2f9761454c0bc95ad1"/><file name="msp_fashioncheque.png" hash="b11a52ef39ae97225def18778a4be4c2"/><file name="msp_fashiongiftcard.png" hash="9bd88e96ac9fc8803ff864e3ba438f93"/><file name="msp_ferbuy.png" hash="5e561c5bb2a514f28bb4457e48457cf4"/><file name="msp_gezondheidsbon.png" hash="162e54d8242699871c202e8ca8307b87"/><file name="msp_giropay.png" hash="da6c83afbcf21821ef3d88e5c955fabb"/><file name="msp_giveacard.png" hash="6ee46cd39e01b9b82dca3e5b96da40d8"/><file name="msp_ideal.png" hash="975bc03d136c0e5a37f8d5f5a710b6c7"/><file name="msp_klarna.png" hash="ade80ce9f634bbc3c60976b37db0c4b6"/><file name="msp_maestro.png" hash="94cfd9498ab1c4293099b0778c899b7b"/><file name="msp_mastercard.png" hash="dedc112da93c9aafe992b68cbe4a6051"/><file name="msp_mistercash.png" hash="c429297b30437960315df5d9b36b0118"/><file name="msp_multisafepay.png" hash="4f7ad00d5eea0113a8b52fa4ece7bf8a"/><file name="msp_parfumcadeaukaart.png" hash="270bb5bfc45a036d9b761431b540e1ad"/><file name="msp_parfumnl.png" hash="a3e69d28d44938db2fbb5a2407c76c7f"/><file name="msp_payafter.png" hash="31eab2a6944a9dc181eed046ee8ec238"/><file name="msp_paypal.png" hash="6d072cdf9a82a9f3c419ad13dbc78846"/><file name="msp_podium.png" hash="657f853f4b26ec2b3b8c4e9ebde05f79"/><file name="msp_sportenfit.png" hash="b0c817c34276ef53f6807c9007b0c660"/><file name="msp_visa.png" hash="88d54fe482cd1e2f8d5857829866cc18"/><file name="msp_vvvgiftcard.png" hash="1674320d998603cf40591fc39bd5cfcf"/><file name="msp_webgift.png" hash="cbea18654cf36cc6a743316d359a6b87"/><file name="msp_wijncadeau.png" hash="7bd0b913ad0769ae2089c3827a47182c"/><file name="msp_yourgift.png" hash="434772f364fc074716febdfb71fc215f"/></dir></dir></dir><dir name="css"><dir name="MultiSafepay"><file name="config.css" hash="c12bfd9751bdac5a1f88d30257172ec6"/></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>7.0.1</max></php></required></dependencies>
18
  </package>
skin/adminhtml/default/default/css/MultiSafepay/config.css CHANGED
@@ -7,6 +7,15 @@
7
  padding-top: 12px;
8
  }
9
 
 
 
 
 
 
 
 
 
 
10
  #msp_gateways_msp_dotpay-head{
11
  background-image: url("../../images/msp/nl/msp_dotpay.png");
12
  background-position-x: 0px;
@@ -69,6 +78,22 @@
69
  min-height: 30px;
70
  padding-top: 12px;
71
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
 
73
  #msp_gateways_msp_mastercard-head{
74
  background-image: url("../../images/msp/nl/msp_mastercard.png");
7
  padding-top: 12px;
8
  }
9
 
10
+ #msp_gateways_msp_creditcard-head{
11
+ background-image: url("../../images/msp/nl/msp_creditcard.png");
12
+ background-position-x: 0px;
13
+ background-repeat: no-repeat;
14
+ padding-left: 60px;
15
+ min-height: 30px;
16
+ padding-top: 12px;
17
+ }
18
+
19
  #msp_gateways_msp_dotpay-head{
20
  background-image: url("../../images/msp/nl/msp_dotpay.png");
21
  background-position-x: 0px;
78
  min-height: 30px;
79
  padding-top: 12px;
80
  }
81
+ #msp_gateways_msp_eps-head{
82
+ background-image: url("../../images/msp/nl/msp_eps.png");
83
+ background-position-x: 0px;
84
+ background-repeat: no-repeat;
85
+ padding-left: 60px;
86
+ min-height: 30px;
87
+ padding-top: 12px;
88
+ }
89
+ #msp_gateways_msp_ferbuy-head{
90
+ background-image: url("../../images/msp/nl/msp_ferbuy.png");
91
+ background-position-x: 0px;
92
+ background-repeat: no-repeat;
93
+ padding-left: 60px;
94
+ min-height: 30px;
95
+ padding-top: 12px;
96
+ }
97
 
98
  #msp_gateways_msp_mastercard-head{
99
  background-image: url("../../images/msp/nl/msp_mastercard.png");
skin/adminhtml/default/default/images/msp/nl/msp_eps.png ADDED
Binary file
skin/adminhtml/default/default/images/msp/nl/msp_ferbuy.png ADDED
Binary file
skin/adminhtml/default/default/images/msp/nl/msp_yourgift.png CHANGED
Binary file