ZooZ_payment - Version 2.0.1

Version Notes

Zooz checkout

Download this release

Release Info

Developer ZooZ Payments
Extension ZooZ_payment
Version 2.0.1
Comparing to
See all releases


Code changes from version 1.9.1 to 2.0.1

Files changed (28) hide show
  1. app/code/community/ZooZ/.DS_Store +0 -0
  2. app/code/community/ZooZ/ZoozPayment/.DS_Store +0 -0
  3. app/code/community/ZooZ/ZoozPayment/Block/Abstract.php +70 -0
  4. app/code/community/ZooZ/ZoozPayment/Block/Estimate.php +95 -0
  5. app/code/community/ZooZ/ZoozPayment/Block/Estimate/Abstract.php +69 -0
  6. app/code/community/ZooZ/ZoozPayment/Block/Estimate/Result.php +95 -0
  7. app/code/community/ZooZ/ZoozPayment/Model/Estimate.php +238 -0
  8. app/code/community/ZooZ/ZoozPayment/Model/Order.php +10 -11
  9. app/code/community/ZooZ/ZoozPayment/Model/Session.php +30 -0
  10. app/code/community/ZooZ/ZoozPayment/Model/Standard.php +21 -16
  11. app/code/community/ZooZ/ZoozPayment/controllers/EstimateController.php +98 -0
  12. app/code/community/ZooZ/ZoozPayment/etc/config.xml +6 -0
  13. app/code/community/ZooZ/ZoozPayment/etc/system.xml +18 -2
  14. app/design/frontend/default/default/layout/zoozpayment.xml +53 -38
  15. app/design/frontend/default/default/template/zoozpayment/.DS_Store +0 -0
  16. app/design/frontend/default/default/template/zoozpayment/index.phtml +1 -0
  17. app/design/frontend/default/default/template/zoozpayment/result.phtml +18 -0
  18. app/design/frontend/default/default/template/zoozpayment/shortcut-checkout.phtml +12 -44
  19. app/design/frontend/default/default/template/zoozpayment/shortcut.phtml +14 -44
  20. app/design/frontend/default/default/template/zoozpayment/sidebar.phtml +15 -45
  21. app/etc/modules/ZooZ_ZoozPayment.xml +1 -1
  22. lib/zooz/transaction.details.php +4 -1
  23. lib/zooz/zooz.extended.server.api.php +13 -10
  24. package.xml +6 -6
  25. skin/frontend/base/default/zooz/.DS_Store +0 -0
  26. skin/frontend/base/default/zooz/images/.DS_Store +0 -0
  27. skin/frontend/base/default/zooz/js/zooz-ext-web-ajax.js +0 -389
  28. skin/frontend/base/default/zooz/js/zooz-magento.js +31 -0
app/code/community/ZooZ/.DS_Store DELETED
Binary file
app/code/community/ZooZ/ZoozPayment/.DS_Store DELETED
Binary file
app/code/community/ZooZ/ZoozPayment/Block/Abstract.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Abstract block for estimate module
6
+ *
7
+ */
8
+ abstract class ZooZ_ZoozPayment_Block_Abstract extends Mage_Catalog_Block_Product_Abstract
9
+ {
10
+
11
+ protected $_estimate = null;
12
+
13
+
14
+
15
+ protected $_config = null;
16
+
17
+
18
+ protected $_session = null;
19
+
20
+
21
+ protected $_carriers = null;
22
+
23
+ public function getEstimate()
24
+ {
25
+ if ($this->_estimate === null) {
26
+ $this->_estimate = Mage::getSingleton('zoozpayment/estimate');
27
+ }
28
+
29
+ return $this->_estimate;
30
+ }
31
+
32
+ /**
33
+ * Retrieve configuration model for module
34
+ *
35
+ * @return Lotus_Getshipping_Model_Config
36
+ */
37
+ public function getConfig()
38
+ {
39
+ if ($this->_config === null) {
40
+ $this->_config = Mage::getSingleton('zoozpayment/config');
41
+ }
42
+
43
+ return $this->_config;
44
+ }
45
+
46
+ /**
47
+ * Retrieve session model object
48
+ *
49
+ * @return Lotus_Getshipping_Model_Session
50
+ */
51
+ public function getSession()
52
+ {
53
+
54
+ if ($this->_session === null) {
55
+ $this->_session = Mage::getSingleton('zoozpayment/session');
56
+ }
57
+
58
+ return $this->_session;
59
+ }
60
+
61
+ /**
62
+ * Check is enabled functionality
63
+ *
64
+ * @return boolean
65
+ */
66
+ public function isEnabled()
67
+ {
68
+ return $this->getConfig()->isEnabled() && !$this->getProduct()->isVirtual();
69
+ }
70
+ }
app/code/community/ZooZ/ZoozPayment/Block/Estimate.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @category EcomDev
13
+ * @package Lotus_Getshipping
14
+ * @copyright Copyright (c) 2010 Ecommerce Developer Blog (http://www.ecomdev.org)
15
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
+ */
17
+
18
+ /**
19
+ * Estiamtion results block
20
+ *
21
+ *
22
+ */
23
+ class ZooZ_ZoozPayment_Block_Estimate extends ZooZ_ZoozPayment_Block_Abstract
24
+ {
25
+
26
+ /**
27
+ * Retrieves result from estimate model
28
+ *
29
+ * @return array|null
30
+ */
31
+ public function getResult()
32
+ {
33
+ return $this->getEstimate()->getResult();
34
+ }
35
+
36
+ /**
37
+ * Check result existance
38
+ *
39
+ * @return boolean
40
+ */
41
+ public function hasResult()
42
+ {
43
+ return $this->getResult() !== null;
44
+ }
45
+
46
+ /**
47
+ * Retrieve carrier name for shipping rate group
48
+ *
49
+ * @param string $code
50
+ * @return string|null
51
+ */
52
+ public function getCarrierName($code)
53
+ {
54
+ $carrier = Mage::getSingleton('shipping/config')->getCarrierInstance($code);
55
+ if ($carrier) {
56
+ return $carrier->getConfigData('title');
57
+ }
58
+
59
+ return null;
60
+ }
61
+
62
+ /**
63
+ * Retrieve shipping price for current address and rate
64
+ *
65
+ * @param decimal $price
66
+ * @param boolean $flag show include tax price flag
67
+ * @return string
68
+ */
69
+ public function getShippingPrice($price, $flag)
70
+ {
71
+ return $this->formatPrice(
72
+ $this->helper('tax')->getShippingPrice(
73
+ $price,
74
+ $flag,
75
+ $this->getEstimate()
76
+ ->getQuote()
77
+ ->getShippingAddress()
78
+ )
79
+ );
80
+ }
81
+
82
+ /**
83
+ * Format price value depends on store settings
84
+ *
85
+ * @param decimal $price
86
+ * @return string
87
+ */
88
+ public function formatPrice($price)
89
+ {
90
+ return $this->getEstimate()
91
+ ->getQuote()
92
+ ->getStore()
93
+ ->convertPrice($price, true);
94
+ }
95
+ }
app/code/community/ZooZ/ZoozPayment/Block/Estimate/Abstract.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Abstract block for estimate module
6
+ *
7
+ */
8
+ abstract class ZooZ_ZoozPayment_Block_Estimate_Abstract extends Mage_Catalog_Block_Product_Abstract
9
+ {
10
+
11
+ protected $_estimate = null;
12
+
13
+
14
+
15
+ protected $_config = null;
16
+
17
+
18
+ protected $_session = null;
19
+
20
+
21
+ protected $_carriers = null;
22
+
23
+ public function getEstimate()
24
+ {
25
+ if ($this->_estimate === null) {
26
+ $this->_estimate = Mage::getSingleton('zoozpayment/estimate');
27
+ }
28
+
29
+ return $this->_estimate;
30
+ }
31
+
32
+ /**
33
+ * Retrieve configuration model for module
34
+ *
35
+ * @return Lotus_Getshipping_Model_Config
36
+ */
37
+ public function getConfig()
38
+ {
39
+ if ($this->_config === null) {
40
+ $this->_config = Mage::getSingleton('zoozpayment/config');
41
+ }
42
+
43
+ return $this->_config;
44
+ }
45
+
46
+ /**
47
+ * Retrieve session model object
48
+ *
49
+ * @return Lotus_Getshipping_Model_Session
50
+ */
51
+ public function getSession()
52
+ {
53
+ if ($this->_session === null) {
54
+ $this->_session = Mage::getSingleton('zoozpayment/session');
55
+ }
56
+
57
+ return $this->_session;
58
+ }
59
+
60
+ /**
61
+ * Check is enabled functionality
62
+ *
63
+ * @return boolean
64
+ */
65
+ public function isEnabled()
66
+ {
67
+ return $this->getConfig()->isEnabled() && !$this->getProduct()->isVirtual();
68
+ }
69
+ }
app/code/community/ZooZ/ZoozPayment/Block/Estimate/Result.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @category EcomDev
13
+ * @package Lotus_Getshipping
14
+ * @copyright Copyright (c) 2010 Ecommerce Developer Blog (http://www.ecomdev.org)
15
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
+ */
17
+
18
+ /**
19
+ * Estiamtion results block
20
+ *
21
+ *
22
+ */
23
+ class ZooZ_ZoozPayment_Block_Estimate_Result extends ZooZ_ZoozPayment_Block_Estimate_Abstract
24
+ {
25
+
26
+ /**
27
+ * Retrieves result from estimate model
28
+ *
29
+ * @return array|null
30
+ */
31
+ public function getResult()
32
+ {
33
+ return $this->getEstimate()->getResult();
34
+ }
35
+
36
+ /**
37
+ * Check result existance
38
+ *
39
+ * @return boolean
40
+ */
41
+ public function hasResult()
42
+ {
43
+ return $this->getResult() !== null;
44
+ }
45
+
46
+ /**
47
+ * Retrieve carrier name for shipping rate group
48
+ *
49
+ * @param string $code
50
+ * @return string|null
51
+ */
52
+ public function getCarrierName($code)
53
+ {
54
+ $carrier = Mage::getSingleton('shipping/config')->getCarrierInstance($code);
55
+ if ($carrier) {
56
+ return $carrier->getConfigData('title');
57
+ }
58
+
59
+ return null;
60
+ }
61
+
62
+ /**
63
+ * Retrieve shipping price for current address and rate
64
+ *
65
+ * @param decimal $price
66
+ * @param boolean $flag show include tax price flag
67
+ * @return string
68
+ */
69
+ public function getShippingPrice($price, $flag)
70
+ {
71
+ return $this->formatPrice(
72
+ $this->helper('tax')->getShippingPrice(
73
+ $price,
74
+ $flag,
75
+ $this->getEstimate()
76
+ ->getQuote()
77
+ ->getShippingAddress()
78
+ )
79
+ );
80
+ }
81
+
82
+ /**
83
+ * Format price value depends on store settings
84
+ *
85
+ * @param decimal $price
86
+ * @return string
87
+ */
88
+ public function formatPrice($price)
89
+ {
90
+ return $this->getEstimate()
91
+ ->getQuote()
92
+ ->getStore()
93
+ ->convertPrice($price, true);
94
+ }
95
+ }
app/code/community/ZooZ/ZoozPayment/Model/Estimate.php ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ *
13
+ * @category EcomDev
14
+ * @package Lotus_Getshipping
15
+ * @copyright Copyright (c) 2010 Ecommerce Developer Blog (http://www.ecomdev.org)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Estimate model
21
+ *
22
+ */
23
+ class ZooZ_ZoozPayment_Model_Estimate {
24
+
25
+ /**
26
+ * Customer object,
27
+ * if customer isn't logged in it quals to false
28
+ *
29
+ * @var Mage_Customer_Model_Customer|boolean
30
+ */
31
+ protected $_customer = null;
32
+
33
+ /**
34
+ * Sales quote object to add products for shipping estimation
35
+ *
36
+ * @var Mage_Sales_Model_Quote
37
+ */
38
+ protected $_quote = null;
39
+
40
+ /**
41
+ * Product model
42
+ *
43
+ * @var Mage_Catalog_Model_Product
44
+ */
45
+ protected $_product = array();
46
+
47
+ /**
48
+ * Estimation result
49
+ *
50
+ * @var array
51
+ */
52
+ protected $_result = array();
53
+
54
+ /**
55
+ * Delivery address information
56
+ *
57
+ * @var array
58
+ */
59
+ protected $_addressInfo = null;
60
+
61
+ /**
62
+ * Set address info for estimation
63
+ *
64
+ * @param array $info
65
+ * @return Lotus_Getshipping_Model_Estimate
66
+ */
67
+ public function setAddressInfo($info) {
68
+ $this->_addressInfo = $info;
69
+ return $this;
70
+ }
71
+
72
+ /**
73
+ * Retrieve address information
74
+ *
75
+ * @return boolean
76
+ */
77
+ public function getAddressInfo() {
78
+ return $this->_addressInfo;
79
+ }
80
+
81
+ /**
82
+ * Set a product for the estimation
83
+ *
84
+ * @param Mage_Catalog_Model_Product $product
85
+ * @return Lotus_Getshipping_Model_Estimate
86
+ */
87
+ public function setProduct($product) {
88
+ $this->_product[] = $product;
89
+ return $this;
90
+ }
91
+
92
+ /**
93
+ * Retrieve product for the estimation
94
+ */
95
+ public function getProduct() {
96
+ return $this->_product;
97
+ }
98
+
99
+ /**
100
+ * Retrieve shipping rate result
101
+ *
102
+ * @return array|null
103
+ */
104
+ public function getResult() {
105
+
106
+ return $this->_result;
107
+ }
108
+
109
+ /**
110
+ * Retrieve list of shipping rates
111
+ *
112
+ * @param Mage_Catalog_Model_Product $product
113
+ * @param array $info
114
+ * @param array $address
115
+ * @return Lotus_Getshipping_Model_Estimate
116
+ */
117
+ public function estimate() {
118
+ $products = $this->getProduct();
119
+ foreach ($products as $product) {
120
+ $addToCartInfo = (array) $product->getAddToCartInfo();
121
+ $addressInfo = (array) $this->getAddressInfo();
122
+ if (!($product instanceof Mage_Catalog_Model_Product) || !$product->getId()) {
123
+ Mage::throwException(
124
+ Mage::helper('zoozpayment')->__('Please specify a valid product')
125
+ );
126
+ }
127
+
128
+ if (!isset($addressInfo['country_id'])) {
129
+ Mage::throwException(
130
+ Mage::helper('zoozpayment')->__('Please specify a country')
131
+ );
132
+ }
133
+
134
+ if (empty($addressInfo['cart'])) {
135
+ $this->resetQuote();
136
+ }
137
+ $shippingAddress = $this->getQuote()->getShippingAddress();
138
+
139
+ $shippingAddress->setCountryId($addressInfo['country_id']);
140
+
141
+ if (isset($addressInfo['region_id'])) {
142
+ $shippingAddress->setRegionId($addressInfo['region_id']);
143
+ }
144
+
145
+ if (isset($addressInfo['postcode'])) {
146
+ $shippingAddress->setPostcode($addressInfo['postcode']);
147
+ }
148
+
149
+ if (isset($addressInfo['region'])) {
150
+ $shippingAddress->setRegion($addressInfo['region']);
151
+ }
152
+
153
+ if (isset($addressInfo['city'])) {
154
+ $shippingAddress->setCity($addressInfo['city']);
155
+ }
156
+
157
+ $shippingAddress->setCollectShippingRates(true);
158
+
159
+ if (isset($addressInfo['coupon_code'])) {
160
+ $this->getQuote()->setCouponCode($addressInfo['coupon_code']);
161
+ }
162
+
163
+ $request = new Varien_Object($addToCartInfo);
164
+
165
+ if ($product->getStockItem()) {
166
+ $minimumQty = $product->getStockItem()->getMinSaleQty();
167
+ if ($minimumQty > 0 && $request->getQty() < $minimumQty) {
168
+ $request->setQty($minimumQty);
169
+ }
170
+ }
171
+
172
+ $result = $this->getQuote()->addProduct($product, $request);
173
+ }
174
+ if (is_string($result)) {
175
+ Mage::throwException($result);
176
+ }
177
+
178
+ Mage::dispatchEvent('checkout_cart_product_add_after', array('quote_item' => $result, 'product' => $product));
179
+
180
+ $this->getQuote()->collectTotals();
181
+ $this->_result = $shippingAddress->getGroupedAllShippingRates();
182
+ return $this;
183
+ }
184
+
185
+ /**
186
+ * Retrieve sales quote object
187
+ *
188
+ * @return Mage_Sales_Model_Quote
189
+ */
190
+ public function getQuote() {
191
+ if ($this->_quote === null) {
192
+ $addressInfo = $this->getAddressInfo();
193
+ if (!empty($addressInfo['cart'])) {
194
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
195
+ } else {
196
+ $quote = Mage::getModel('sales/quote');
197
+ }
198
+
199
+ $this->_quote = $quote;
200
+ }
201
+
202
+ return $this->_quote;
203
+ }
204
+
205
+ /**
206
+ * Reset quote object
207
+ *
208
+ * @return Lotus_Getshipping_Model_Estimate
209
+ */
210
+ public function resetQuote() {
211
+ $this->getQuote()->removeAllAddresses();
212
+
213
+ if ($this->getCustomer()) {
214
+ $this->getQuote()->setCustomer($this->getCustomer());
215
+ }
216
+
217
+ return $this;
218
+ }
219
+
220
+ /**
221
+ * Retrieve currently logged in customer,
222
+ * if customer isn't logged it returns false
223
+ *
224
+ * @return Mage_Customer_Model_Customer|boolean
225
+ */
226
+ public function getCustomer() {
227
+ if ($this->_customer === null) {
228
+ $customerSession = Mage::getSingleton('customer/session');
229
+ if ($customerSession->isLoggedIn()) {
230
+ $this->_customer = $customerSession->getCustomer();
231
+ } else {
232
+ $this->_customer = false;
233
+ }
234
+ }
235
+ return $this->_customer;
236
+ }
237
+
238
+ }
app/code/community/ZooZ/ZoozPayment/Model/Order.php CHANGED
@@ -35,6 +35,7 @@ class ZooZ_ZoozPayment_Model_Order extends Mage_Core_Model_Abstract {
35
  // if return gift message
36
  // get value from $info
37
  $return_gift = true;
 
38
  if ($return_gift) {
39
  $gift_customer = 0;
40
  if ($customer->getId()) {
@@ -82,11 +83,7 @@ class ZooZ_ZoozPayment_Model_Order extends Mage_Core_Model_Abstract {
82
 
83
  $shippingAddress = Mage::getModel('sales/order_address');
84
  $shipp_address = $info->shippingAddress;
85
- //$country_id = Mage::getModel('directory/country')->load($info->country)->getCountryId();
86
- //Mage::log($country_id);
87
- //Mage::log($shipp_address->countryCode);
88
- // Mage::log("country " . $shipp_address->country);
89
- // Mage::log("country " . $shipp_address->countryCode);
90
  $shippingAddress->setStoreId($storeId)
91
  ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
92
  ->setCustomerId($customer->getId())
@@ -94,7 +91,7 @@ class ZooZ_ZoozPayment_Model_Order extends Mage_Core_Model_Abstract {
94
  ->setLastname($shipp_address->lastName)
95
  ->setStreet($shipp_address->street)
96
  ->setCity($shipp_address->city)
97
- ->setCountry_id($shipp_address->countryCode)
98
  ->setRegion($shipp_address->state)
99
  ->setPostcode($shipp_address->zipCode)
100
  ->setTelephone($user->phoneNumber);
@@ -249,12 +246,14 @@ class ZooZ_ZoozPayment_Model_Order extends Mage_Core_Model_Abstract {
249
 
250
 
251
 
252
- $shipping_price = $info->shippingAmount;
253
  $shipping_name = $info->shippingMethod;
 
 
254
  $order->setSubtotal($subTotal)
255
- ->setShipping_method('fixed')
256
- ->setShippingDescription($shipping_name)
257
- ->setBaseShippingAmount($shipping_name)
258
  ->setShippingAmount($shipping_price)
259
  ->setBaseSubtotal($baseSubTotal + $shipping_price)
260
  ->setBaseTotalDue($subTotal + $shipping_price)
@@ -314,4 +313,4 @@ class ZooZ_ZoozPayment_Model_Order extends Mage_Core_Model_Abstract {
314
  return $tempAddress;
315
  }
316
 
317
- }
35
  // if return gift message
36
  // get value from $info
37
  $return_gift = true;
38
+ #Mage::log($info);
39
  if ($return_gift) {
40
  $gift_customer = 0;
41
  if ($customer->getId()) {
83
 
84
  $shippingAddress = Mage::getModel('sales/order_address');
85
  $shipp_address = $info->shippingAddress;
86
+ // $country_id = Mage::getModel('directory/country')->load($info->country)->getCountryId();
 
 
 
 
87
  $shippingAddress->setStoreId($storeId)
88
  ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
89
  ->setCustomerId($customer->getId())
91
  ->setLastname($shipp_address->lastName)
92
  ->setStreet($shipp_address->street)
93
  ->setCity($shipp_address->city)
94
+ ->setCountry_id($shipp_address->country)
95
  ->setRegion($shipp_address->state)
96
  ->setPostcode($shipp_address->zipCode)
97
  ->setTelephone($user->phoneNumber);
246
 
247
 
248
 
249
+ $shipping_price = $info->shippingAmount;
250
  $shipping_name = $info->shippingMethod;
251
+ $shipping_carrier_name = $info->shippingCarrierName;
252
+ $shipping_carrier_code = $info->shippingCarrierCode;
253
  $order->setSubtotal($subTotal)
254
+ ->setShippingMethod($shipping_carrier_code)
255
+ ->setShippingDescription($shipping_name . " (" . $shipping_carrier_name .")")
256
+ ->setBaseShippingAmount($shipping_price)
257
  ->setShippingAmount($shipping_price)
258
  ->setBaseSubtotal($baseSubTotal + $shipping_price)
259
  ->setBaseTotalDue($subTotal + $shipping_price)
313
  return $tempAddress;
314
  }
315
 
316
+ }
app/code/community/ZooZ/ZoozPayment/Model/Session.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @category EcomDev
13
+ * @package EcomDev_ProductPageShipping
14
+ * @copyright Copyright (c) 2010 Ecommerce Developer Blog (http://www.ecomdev.org)
15
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
+ */
17
+
18
+ /**
19
+ * Session model
20
+ *
21
+ * Using for saving the form data between estimations
22
+ *
23
+ */
24
+ class ZooZ_ZoozPayment_Model_Session extends Mage_Core_Model_Session_Abstract
25
+ {
26
+ public function __construct()
27
+ {
28
+ $this->init('zoozpayment');
29
+ }
30
+ }
app/code/community/ZooZ/ZoozPayment/Model/Standard.php CHANGED
@@ -8,7 +8,7 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
8
  protected $_isInitializeNeeded = true;
9
  protected $_canUseInternal = false;
10
  protected $_canUseForMultishipping = false;
11
-
12
  /**
13
  * Return Order place redirect url
14
  *
@@ -31,6 +31,14 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
31
  return $config = Mage::getStoreConfig('payment/zoozpayment/sandbox_flag');
32
  }
33
 
 
 
 
 
 
 
 
 
34
  /**
35
  * Instantiate state and set it to state object
36
  * @param string $paymentAction
@@ -62,11 +70,11 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
62
 
63
  if ($isSandbox == true) {
64
 
65
- $zoozServer = 'https://sandbox.zooz.co';
66
  $url = $zoozServer . "/mobile/SecuredWebServlet";
67
  } else {
68
 
69
- $zoozServer = "https://app.zooz.com";
70
  $url = $zoozServer . "/mobile/SecuredWebServlet";
71
  }
72
 
@@ -164,11 +172,12 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
164
 
165
 
166
  if ($postFields != '') {
 
 
167
  if (Mage::getStoreConfig('sales/gift_options/allow_order', null)) {
168
- $postFields.="&featureProvider=102";
169
- $postFields.="&providerSupportedFeatures=[100]";
170
  } else {
171
- $postFields.="&providerSupportedFeatures=";
172
  }
173
 
174
  // Mage::log($postFields);
@@ -186,11 +195,11 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
186
 
187
  if ($isSandbox == true) {
188
 
189
- $zoozServer = 'https://sandbox.zooz.co';
190
  $url = $zoozServer . "/mobile/SecuredWebServlet";
191
  } else {
192
 
193
- $zoozServer = "https://app.zooz.com";
194
  $url = $zoozServer . "/mobile/SecuredWebServlet";
195
  }
196
 
@@ -238,7 +247,7 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
238
 
239
  parse_str($result);
240
 
241
-
242
 
243
  if ($statusCode == 0) {
244
  // Get token from ZooZ server
@@ -495,11 +504,11 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
495
 
496
  if ($isSandbox == true) {
497
 
498
- $zoozServer = 'https://sandbox.zooz.co';
499
  $url = $zoozServer . "/mobile/SecuredWebServlet";
500
  } else {
501
 
502
- $zoozServer = "https://app.zooz.com";
503
  $url = $zoozServer . "/mobile/SecuredWebServlet";
504
  }
505
  // is cURL installed yet?
@@ -567,11 +576,7 @@ class ZooZ_ZoozPayment_Model_Standard extends Mage_Payment_Model_Method_Abstract
567
 
568
  //Get Gift information from Params
569
  $giftInfo = $params['gift'];
570
- //print_r($giftInfo);
571
- //die();
572
-
573
-
574
- //Mage::log($info);
575
  //
576
  Mage::getModel('zoozpayment/order')->saveOrder($info,$giftInfo);
577
  // create order with billding return
8
  protected $_isInitializeNeeded = true;
9
  protected $_canUseInternal = false;
10
  protected $_canUseForMultishipping = false;
11
+
12
  /**
13
  * Return Order place redirect url
14
  *
31
  return $config = Mage::getStoreConfig('payment/zoozpayment/sandbox_flag');
32
  }
33
 
34
+ public function getSandboxUrl(){
35
+ return $config = Mage::getStoreConfig('payment/zoozpayment/zooz_sandbox_url');
36
+ }
37
+
38
+ public function getProductionUrl(){
39
+ return $config = Mage::getStoreConfig('payment/zoozpayment/zooz_production_url');
40
+ }
41
+
42
  /**
43
  * Instantiate state and set it to state object
44
  * @param string $paymentAction
70
 
71
  if ($isSandbox == true) {
72
 
73
+ $zoozServer = $this->getSandboxUrl();
74
  $url = $zoozServer . "/mobile/SecuredWebServlet";
75
  } else {
76
 
77
+ $zoozServer = $this->getProductionUrl();
78
  $url = $zoozServer . "/mobile/SecuredWebServlet";
79
  }
80
 
172
 
173
 
174
  if ($postFields != '') {
175
+ $postFields.="&featureProvider=102";
176
+ $postFields.="&dynamicShippingUrl=" . Mage::getUrl('zoozpayment/estimate/index');
177
  if (Mage::getStoreConfig('sales/gift_options/allow_order', null)) {
178
+ $postFields.="&providerSupportedFeatures=[100,104]";
 
179
  } else {
180
+ $postFields.="&providerSupportedFeatures=[104]";
181
  }
182
 
183
  // Mage::log($postFields);
195
 
196
  if ($isSandbox == true) {
197
 
198
+ $zoozServer = $this->getSandboxUrl();
199
  $url = $zoozServer . "/mobile/SecuredWebServlet";
200
  } else {
201
 
202
+ $zoozServer = $this->getProductionUrl();
203
  $url = $zoozServer . "/mobile/SecuredWebServlet";
204
  }
205
 
247
 
248
  parse_str($result);
249
 
250
+ // Mage::log($result);
251
 
252
  if ($statusCode == 0) {
253
  // Get token from ZooZ server
504
 
505
  if ($isSandbox == true) {
506
 
507
+ $zoozServer = $this->getSandboxUrl();
508
  $url = $zoozServer . "/mobile/SecuredWebServlet";
509
  } else {
510
 
511
+ $zoozServer = $this->getProductionUrl();
512
  $url = $zoozServer . "/mobile/SecuredWebServlet";
513
  }
514
  // is cURL installed yet?
576
 
577
  //Get Gift information from Params
578
  $giftInfo = $params['gift'];
579
+
 
 
 
 
580
  //
581
  Mage::getModel('zoozpayment/order')->saveOrder($info,$giftInfo);
582
  // create order with billding return
app/code/community/ZooZ/ZoozPayment/controllers/EstimateController.php ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ *
13
+ * @category EcomDev
14
+ * @package EcomDev_ProductPageShipping
15
+ * @copyright Copyright (c) 2010 Ecommerce Developer Blog (http://www.ecomdev.org)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+ require_once 'app/code/core/Mage/Catalog/controllers/ProductController.php';
19
+
20
+ /**
21
+ * Estimate shiping controller, passes the request to estimate model
22
+ * Extended from product controller for supporting of full product initialization
23
+ *
24
+ */
25
+ class ZooZ_ZoozPayment_EstimateController extends Mage_Catalog_ProductController {
26
+
27
+ /**
28
+ * Estimate action
29
+ *
30
+ * Initializes the product and passes data to estimate model in block
31
+ */
32
+ public function addProduct() {
33
+ return $this->_initProduct('');
34
+ }
35
+
36
+ protected function _initProduct($productId) {
37
+ $params = new Varien_Object();
38
+ return Mage::helper('catalog/product')->initProduct($productId, $this, $params);
39
+ }
40
+
41
+ public function indexAction() {
42
+ // $pro = $this->addProduct();
43
+
44
+ // $data_json = $this->getRequest()->getPost('data');
45
+ // $data_json = $this->getRequest()->getContent();
46
+ $data_json = file_get_contents('php://input');
47
+ Mage::log($data_json);
48
+ $variable_post = json_decode($data_json);
49
+ $arr_addressinfo = get_object_vars($variable_post->estimate);
50
+ $arr_cart = $variable_post->cart;
51
+ $this->getResponse()->setHeader('Content-type', 'application/json');
52
+ $this->loadLayout(false);
53
+ $block = $this->getLayout()->getBlock('shipping.estimate.result');
54
+
55
+ if ($block) {
56
+
57
+ $estimate = $block->getEstimate();
58
+ foreach ($arr_cart as $pro) {
59
+ $product = $this->_initProduct($pro->invoiceItemId);
60
+ if ($pro->options) {
61
+
62
+ $params = get_object_vars($pro->options);
63
+ $pro_cart = array('product' => $pro->invoiceItemId, 'qty' => $pro->qty, 'options' => $params);
64
+
65
+ } else {
66
+
67
+ $pro_cart = array('product' => $pro->invoiceItemId, 'qty' => $pro->qty);
68
+
69
+ }
70
+
71
+ $product->setAddToCartInfo($pro_cart);
72
+ $estimate->setProduct($product);
73
+ Mage::unregister('current_category');
74
+ Mage::unregister('current_product');
75
+ Mage::unregister('product');
76
+ }
77
+ ///$addressInfo = $arr_addressinfo;
78
+
79
+ $addressConvert = array("city"=> $arr_addressinfo["city"],"region_id"=>$arr_addressinfo["stateName"],"postcode"=>$arr_addressinfo["zipCode"],"country_id"=>$arr_addressinfo["countryCode"]);
80
+
81
+ $estimate->setAddressInfo((array) $addressConvert);
82
+ $block->getSession()->setFormValues($addressConvert);
83
+ try {
84
+ $estimate->estimate();
85
+ } catch (Mage_Core_Exception $e) {
86
+ Mage::getSingleton('catalog/session')->addError($e->getMessage());
87
+ } catch (Exception $e) {
88
+ Mage::logException($e);
89
+ Mage::getSingleton('catalog/session')->addError(
90
+ Mage::helper('zoozpayment')->__('There was an error during processing your shipping request')
91
+ );
92
+ }
93
+ }
94
+ $this->_initLayoutMessages('catalog/session');
95
+ $this->renderLayout();
96
+ }
97
+
98
+ }
app/code/community/ZooZ/ZoozPayment/etc/config.xml CHANGED
@@ -38,6 +38,12 @@
38
  <payment_action>sale</payment_action>
39
  <allowspecific>0</allowspecific>
40
  <sort_order>1</sort_order>
 
 
 
 
 
 
41
  </zoozpayment>
42
  </payment>
43
  </default>
38
  <payment_action>sale</payment_action>
39
  <allowspecific>0</allowspecific>
40
  <sort_order>1</sort_order>
41
+ <zooz_sandbox_url>https://sandbox.zooz.co</zooz_sandbox_url>
42
+ <zooz_production_url>https://app.zooz.com</zooz_production_url>
43
+ <app_key>6fe2b3eb-3017-4d84-a5df-c14d675008ae</app_key>
44
+ <app_unique_id>com.yourcompany.DemoZooZSDK.magento</app_unique_id>
45
+ <zooz_serverkey>FMJM7QYXIOO2Y55FXBK7GTHUWE</zooz_serverkey>
46
+ <zooz_useremail>ronen@tactusmobile.com</zooz_useremail>
47
  </zoozpayment>
48
  </payment>
49
  </default>
app/code/community/ZooZ/ZoozPayment/etc/system.xml CHANGED
@@ -79,7 +79,23 @@
79
  <show_in_website>1</show_in_website>
80
  <show_in_store>0</show_in_store>
81
  </app_unique_id>
82
- <sort_order translate="label">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  <label>Sort Order</label>
84
  <frontend_type>text</frontend_type>
85
  </sort_order>
@@ -92,4 +108,4 @@
92
  </groups>
93
  </payment>
94
  </sections>
95
- </config>
79
  <show_in_website>1</show_in_website>
80
  <show_in_store>0</show_in_store>
81
  </app_unique_id>
82
+ <zooz_sandbox_url>
83
+ <label>Zooz sandbox URL</label>
84
+ <frontend_type>text</frontend_type>
85
+ <sort_order>130</sort_order>
86
+ <show_in_default>0</show_in_default>
87
+ <show_in_website>0</show_in_website>
88
+ <show_in_store>0</show_in_store>
89
+ </zooz_sandbox_url>
90
+ <zooz_production_url>
91
+ <label>Zooz production URL</label>
92
+ <frontend_type>text</frontend_type>
93
+ <sort_order>131</sort_order>
94
+ <show_in_default>0</show_in_default>
95
+ <show_in_website>0</show_in_website>
96
+ <show_in_store>0</show_in_store>
97
+ </zooz_production_url>
98
+ <sort_order translate="label">
99
  <label>Sort Order</label>
100
  <frontend_type>text</frontend_type>
101
  </sort_order>
108
  </groups>
109
  </payment>
110
  </sections>
111
+ </config>
app/design/frontend/default/default/layout/zoozpayment.xml CHANGED
@@ -3,58 +3,73 @@
3
  <layout version="0.1.0">
4
 
5
  <default>
6
- <reference name="head">
7
- <action method="addItem">
8
- <type>skin_js</type>
9
- <name>zooz/js/jquery-1.9.0.min.js</name>
10
- </action>
11
- <block type="core/text" name="google.cdn.jquery">
12
- <action method="setText">
13
- <text>
 
 
 
 
 
 
14
  <![CDATA[<script type="text/javascript">jQuery.noConflict();</script>]]>
15
- </text>
16
- </action>
17
- </block>
18
- </reference>
19
- <reference name="top.links">
20
- <remove name="checkout_cart_link"/>
21
- </reference>
22
- <reference name="top.links">
23
  <block type="checkout/links" name="checkout_cart_link_zooz">
24
  <action method="addCartLink" ></action>
25
  </block>
26
- </reference>
27
  <reference name="right">
28
  <reference name="cart_sidebar">
29
- <action method="setTemplate"><template>zoozpayment/sidebar.phtml</template></action>
 
 
30
  </reference>
31
  </reference>
32
  </default>
33
- <zoozpayment_index_index>
34
- <reference name="root">
35
- <action method="setTemplate"><template>page/empty.phtml</template></action>
36
- </reference>
37
- <reference name="content">
38
- <block type="zoozpayment/index" name="zoozpayment_index" template="zoozpayment/index.phtml"/>
39
- </reference>
40
- </zoozpayment_index_index>
41
- <catalog_product_view>
42
- <reference name="product.info.addtocart">
43
- <block type="page/html_wrapper" name="product.info.addtocart.zooz.wrapper" translate="label">
44
- <label>Zooz Payment Checkout Shortcut Wrapper</label>
45
- <block type="core/template" name="product.info.addtocart.zooz" template="zoozpayment/shortcut.phtml"/>
46
- </block>
47
- </reference>
48
- </catalog_product_view>
 
 
 
49
  <checkout_cart_index>
50
- <reference name="checkout.cart.top_methods">
51
- <remove name="checkout.cart.methods.onepage"/>
52
  </reference>
53
  <reference name="checkout.cart.methods">
54
- <remove name="checkout.cart.methods.onepage"/>
55
  <remove name="checkout.cart.methods.multishipping"/>
56
  <block type="core/template" name="checkout.cart.methods.zooz.bottom" after="checkout.cart.methods.onepage" template="zoozpayment/shortcut-checkout.phtml" />
57
  </reference>
58
  </checkout_cart_index>
 
 
 
 
59
  </layout>
60
-
3
  <layout version="0.1.0">
4
 
5
  <default>
6
+ <reference name="head">
7
+ <action method="addItem">
8
+ <type>skin_js</type>
9
+ <name>zooz/js/jquery-1.9.0.min.js</name>
10
+ </action>
11
+
12
+ <action method="addItem">
13
+ <type>skin_js</type>
14
+ <name>zooz/js/zooz-magento.js</name>
15
+ </action>
16
+ <block type="core/text" name="zooz-ext.js"><action method="setText"><text><![CDATA[<script type="text/javascript" src="https://app.zooz.com/mobile/js/zooz-ext-web-ajax.js"></script>]]></text></action></block>
17
+ <block type="core/text" name="google.cdn.jquery">
18
+ <action method="setText">
19
+ <text>
20
  <![CDATA[<script type="text/javascript">jQuery.noConflict();</script>]]>
21
+ </text>
22
+ </action>
23
+ </block>
24
+ </reference>
25
+ <reference name="top.links">
26
+ <remove name="checkout_cart_link"/>
27
+ </reference>
28
+ <reference name="top.links">
29
  <block type="checkout/links" name="checkout_cart_link_zooz">
30
  <action method="addCartLink" ></action>
31
  </block>
32
+ </reference>
33
  <reference name="right">
34
  <reference name="cart_sidebar">
35
+ <action method="setTemplate">
36
+ <template>zoozpayment/sidebar.phtml</template>
37
+ </action>
38
  </reference>
39
  </reference>
40
  </default>
41
+ <zoozpayment_index_index>
42
+ <reference name="root">
43
+ <action method="setTemplate">
44
+ <template>page/empty.phtml</template>
45
+ </action>
46
+ </reference>
47
+ <reference name="content">
48
+ <block type="zoozpayment/index" name="zoozpayment_index" template="zoozpayment/index.phtml"/>
49
+ </reference>
50
+ </zoozpayment_index_index>
51
+
52
+ <catalog_product_view>
53
+ <reference name="product.info.addtocart">
54
+ <block type="page/html_wrapper" name="product.info.addtocart.zooz.wrapper" translate="label">
55
+ <label>Zooz Payment Checkout Shortcut Wrapper</label>
56
+ <block type="core/template" name="product.info.addtocart.zooz" template="zoozpayment/shortcut.phtml"/>
57
+ </block>
58
+ </reference>
59
+ </catalog_product_view>
60
  <checkout_cart_index>
61
+ <reference name="checkout.cart.top_methods">
62
+ <remove name="checkout.cart.methods.onepage"/>
63
  </reference>
64
  <reference name="checkout.cart.methods">
65
+ <remove name="checkout.cart.methods.onepage"/>
66
  <remove name="checkout.cart.methods.multishipping"/>
67
  <block type="core/template" name="checkout.cart.methods.zooz.bottom" after="checkout.cart.methods.onepage" template="zoozpayment/shortcut-checkout.phtml" />
68
  </reference>
69
  </checkout_cart_index>
70
+ <zoozpayment_estimate_index>
71
+ <block type="zoozpayment/estimate" name="shipping.estimate.result" template="zoozpayment/result.phtml" output="toHtml" />
72
+ </zoozpayment_estimate_index>
73
+
74
  </layout>
75
+
app/design/frontend/default/default/template/zoozpayment/.DS_Store DELETED
Binary file
app/design/frontend/default/default/template/zoozpayment/index.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  $token = Mage::app()->getRequest()->getParam('token');
3
  if($token != ''):
4
  ?>
1
  <?php
2
+ die('dev');
3
  $token = Mage::app()->getRequest()->getParam('token');
4
  if($token != ''):
5
  ?>
app/design/frontend/default/default/template/zoozpayment/result.phtml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ($this->getResult()) {
4
+ $response = array();
5
+ foreach ($this->getResult() as $code => $_rates) {
6
+
7
+ $arr = array();
8
+ foreach ($_rates as $_rate) {
9
+ if (!$_rate->getErrorMessage()) {
10
+ $rate_name = $_rate->getMethodTitle();
11
+ $arr[] = array('name' => $rate_name, 'price' => $_rate->getPrice());
12
+ }
13
+ }
14
+ $response[] = array('carrierName' => $this->getCarrierName($code),'carrierCode' => $code, 'rates' => $arr);
15
+ }
16
+ echo json_encode($response);
17
+ }
18
+ ?>
app/design/frontend/default/default/template/zoozpayment/shortcut-checkout.phtml CHANGED
@@ -1,51 +1,19 @@
1
- <?php
2
-
3
- if (Mage::getStoreConfig('payment/zoozpayment/sandbox_flag')) {
4
- $js = "https://sandbox.zooz.co/mobile/js/zooz-ext-web-ajax.js";
5
- }else{
6
- $js = "https://app.zooz.com/mobile/js/zooz-ext-web-ajax.js";
7
- }
8
- ?>
9
- <script src="<?php echo $js; ?>"></script>
10
- <a id="zooz-payment-link" href="<?php echo $this->getUrl('zoozpayment/standard/ajaxstart');?>">
11
- <img src="<?php echo $this->getSkinUrl('zooz/images/fastcheckout.png');?>" alt="ZooZ Payment" title="ZooZ Payment" />
12
  </a>
13
  <img id="zooz-payment-loading" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif');?>" alt="loading" title="loading" />
14
  <style>
15
  .cart .title-buttons .checkout-types li { float: none; }
16
  </style>
17
- <script type="text/javascript">
18
-
19
- jQuery(document).ready(function($){
20
- jQuery('#zooz-payment-link').click(function($){
21
- var frm = jQuery('#product_addtocart_form');
22
- var url = jQuery(this).attr('href');
23
- <?php if(Mage::getModel('zoozpayment/standard')->getIsSandBox()): ?>
24
- var sandbox = true;
25
- <?php else: ?>
26
- var sandbox = false;
27
- <?php endif; ?>
28
- jQuery('#zooz-payment-loading').show();
29
- jQuery.ajax({
30
- type: frm.attr('method'),
31
- url: url,
32
- data: frm.serialize(),
33
- success: function (response) {
34
- jQuery('#zooz-payment-loading').hide();
35
- eval(response);
36
- zoozStartCheckout({
37
- token : data.token,
38
- uniqueId : "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>",
39
- isSandbox : sandbox,
40
- returnUrl : "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>",
41
- cancelUrl : "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>"
42
-
43
- });
44
- }
45
- });
46
  return false;
47
- });
48
- });
49
-
50
  </script>
51
-
1
+ <a id="zooz-payment-link" style="background-color: #679100; padding: 10px; color: white; font-size: small;" href="<?php echo $this->getUrl('zoozpayment/standard/ajaxstart');?>" onclick='return localDoZooz(this);' >Checkout
 
 
 
 
 
 
 
 
 
 
2
  </a>
3
  <img id="zooz-payment-loading" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif');?>" alt="loading" title="loading" />
4
  <style>
5
  .cart .title-buttons .checkout-types li { float: none; }
6
  </style>
7
+ <script type="text/javascript">
8
+ function localDoZooz(ref){
9
+ var isSandbox = <?php echo Mage::getModel('zoozpayment/standard')->getIsSandBox(); ?>;
10
+ var formObject = jQuery('#product_addtocart_form');
11
+ var url = jQuery(ref).attr('href');
12
+ var uniqueId = "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>";
13
+ var returnUrl = "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>";
14
+ var cancelUrl = "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>";
15
+ startZooz(isSandbox, formObject, url, uniqueId, returnUrl, cancelUrl);
16
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  return false;
18
+ }
 
 
19
  </script>
 
app/design/frontend/default/default/template/zoozpayment/shortcut.phtml CHANGED
@@ -1,52 +1,22 @@
1
- <?php
2
 
3
- if (Mage::getStoreConfig('payment/zoozpayment/sandbox_flag')) {
4
- $js = "https://sandbox.zooz.co/mobile/js/zooz-ext-web-ajax.js";
5
- }else{
6
- $js = "https://app.zooz.com/mobile/js/zooz-ext-web-ajax.js";
7
- }
8
- ?>
9
- <script src="<?php echo $js; ?>"></script>
10
-
11
-
12
  <br/>
13
  <br/>
14
- <a id="zooz-payment-link" href="<?php echo $this->getUrl('zoozpayment/cart/add');?>">
15
- <img src="<?php echo $this->getSkinUrl('zooz/images/fastcheckout.png');?>" alt="ZooZ Payment" title="ZooZ Payment" />
16
  </a>
17
- <img id="zooz-payment-loading" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif');?>" alt="loading" title="loading" />
18
  <script type="text/javascript">
19
 
20
- jQuery(document).ready(function($){
21
- jQuery('#zooz-payment-link').click(function($){
22
- var frm = jQuery('#product_addtocart_form');
23
- var url = jQuery(this).attr('href');
24
- <?php if(Mage::getModel('zoozpayment/standard')->getIsSandBox()): ?>
25
- var sandbox = true;
26
- <?php else: ?>
27
- var sandbox = false;
28
- <?php endif; ?>
29
- jQuery('#zooz-payment-loading').show();
30
- jQuery.ajax({
31
- type: frm.attr('method'),
32
- url: url,
33
- data: frm.serialize(),
34
- success: function (response) {
35
- jQuery('#zooz-payment-loading').hide();
36
- eval(response);
37
- zoozStartCheckout({
38
- token : data.token,
39
- uniqueId : "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>",
40
- isSandbox : sandbox,
41
- returnUrl : "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>",
42
- cancelUrl : "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>"
43
-
44
- });
45
- }
46
- });
47
- return false;
48
- });
49
- });
50
 
 
 
 
 
 
 
 
 
 
 
 
51
  </script>
52
-
 
1
 
 
 
 
 
 
 
 
 
 
2
  <br/>
3
  <br/>
4
+ <a id="zooz-payment-link" style="float: right; background-color: #679100; padding: 10px; color: white; font-size: small;" href="<?php echo $this->getUrl('zoozpayment/cart/add'); ?>" onclick="return localDoZooz(this);">
5
+ Quick Checkout
6
  </a>
7
+ <img id="zooz-payment-loading" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif'); ?>" alt="loading" title="loading" />
8
  <script type="text/javascript">
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
+ function localDoZooz(ref){
12
+ var isSandbox = <?php echo Mage::getModel('zoozpayment/standard')->getIsSandBox(); ?>;
13
+ var formObject = jQuery('#product_addtocart_form');
14
+ var url = jQuery(ref).attr('href');
15
+ var uniqueId = "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>";
16
+ var returnUrl = "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>";
17
+ var cancelUrl = "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>";
18
+ startZooz(isSandbox, formObject, url, uniqueId, returnUrl, cancelUrl);
19
+
20
+ return false;
21
+ }
22
  </script>
 
app/design/frontend/default/default/template/zoozpayment/sidebar.phtml CHANGED
@@ -59,58 +59,28 @@
59
  <?php endif ?>
60
  <?php if($_cartQty && $this->isPossibleOnepageCheckout()): ?>
61
  <div class="actions">
62
- <?php
63
-
64
- if (Mage::getStoreConfig('payment/zoozpayment/sandbox_flag')) {
65
- $js = "https://sandbox.zooz.co/mobile/js/zooz-ext-web-ajax.js";
66
- }else{
67
- $js = "https://app.zooz.com/mobile/js/zooz-ext-web-ajax.js";
68
- }
69
- ?>
70
- <script src="<?php echo $js; ?>"></script>
71
- <a id="zooz-payment-link-side-bar" href="<?php echo $this->getUrl('zoozpayment/standard/ajaxstart');?>" style="float: right">
72
- <img src="<?php echo $this->getSkinUrl('zooz/images/fastcheckout.png');?>" alt="ZooZ Payment" title="ZooZ Payment" />
73
  </a>
74
- <img id="zooz-payment-loading" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif');?>" alt="loading" title="loading" />
 
75
  <style>
76
  .cart .title-buttons .checkout-types li { float: none; }
77
  </style>
78
- <script type="text/javascript">
79
-
80
- jQuery(document).ready(function($){
81
- jQuery('#zooz-payment-link-side-bar').click(function($){
82
- var frm = jQuery('#product_addtocart_form');
83
- var url = jQuery(this).attr('href');
84
- <?php if(Mage::getModel('zoozpayment/standard')->getIsSandBox()): ?>
85
- var sandbox = true;
86
- <?php else: ?>
87
- var sandbox = false;
88
- <?php endif; ?>
89
- jQuery('#zooz-payment-loading').show();
90
- jQuery.ajax({
91
- type: frm.attr('method'),
92
- url: url,
93
- data: frm.serialize(),
94
- success: function (response) {
95
- jQuery('#zooz-payment-loading').hide();
96
- eval(response);
97
- zoozStartCheckout({
98
- token : data.token,
99
- uniqueId : "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>",
100
- isSandbox : sandbox,
101
- returnUrl : "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>",
102
- cancelUrl : "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>"
103
-
104
- });
105
- }
106
- });
107
  return false;
108
- });
109
- });
110
-
111
  </script>
112
 
113
- </div>
114
  <?php endif ?>
115
  <?php $_items = $this->getRecentItems() ?>
116
  <?php if(count($_items)): ?>
59
  <?php endif ?>
60
  <?php if($_cartQty && $this->isPossibleOnepageCheckout()): ?>
61
  <div class="actions">
62
+ <a id="zooz-payment-link-side-bar" onclick='localDoZooz(this)' href="<?php echo $this->getUrl('zoozpayment/standard/ajaxstart');?>" style="float: right; background-color: #679100; padding: 10px; color: white; font-size: small;">Quick checkout
 
 
 
 
 
 
 
 
 
 
63
  </a>
64
+ <img id="zooz-payment-loading-cart" style="display: none; margin-left: 10px;" src="<?php echo $this->getSkinUrl('zooz/images/loading.gif');?>" alt="loading" title="loading" />
65
+ </div>
66
  <style>
67
  .cart .title-buttons .checkout-types li { float: none; }
68
  </style>
69
+ <script type="text/javascript">
70
+ function localDoZooz(ref){
71
+ var isSandbox = <?php echo Mage::getModel('zoozpayment/standard')->getIsSandBox(); ?>;
72
+ var formObject = jQuery('#product_addtocart_form');
73
+ var url = jQuery(ref).attr('href');
74
+ var uniqueId = "<?php echo Mage::getModel('zoozpayment/standard')->getAppUniqueId(); ?>";
75
+ var returnUrl = "<?php echo $this->getUrl('zoozpayment/standard/successexpress');?>";
76
+ var cancelUrl = "<?php echo $this->getUrl('zoozpayment/standard/cancel');?>";
77
+ startZooz(isSandbox, formObject, url, uniqueId, returnUrl, cancelUrl);
78
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  return false;
80
+ }
 
 
81
  </script>
82
 
83
+
84
  <?php endif ?>
85
  <?php $_items = $this->getRecentItems() ?>
86
  <?php if(count($_items)): ?>
app/etc/modules/ZooZ_ZoozPayment.xml CHANGED
@@ -7,4 +7,4 @@
7
  <version>0.1.0</version>
8
  </ZooZ_ZoozPayment>
9
  </modules>
10
- </config>
7
  <version>0.1.0</version>
8
  </ZooZ_ZoozPayment>
9
  </modules>
10
+ </config>
lib/zooz/transaction.details.php CHANGED
@@ -24,6 +24,8 @@ class TransactionDetails {
24
  public $shippingAddress;
25
  public $shippingMethod;
26
  public $shippingAmount;
 
 
27
 
28
  function __construct($jsonObj) {
29
 
@@ -56,7 +58,8 @@ class TransactionDetails {
56
  }
57
  $this->shippingMethod = $jsonObj[shippingMethod];
58
  $this->shippingAmount = $jsonObj[shippingAmount];
59
-
 
60
  }
61
 
62
 
24
  public $shippingAddress;
25
  public $shippingMethod;
26
  public $shippingAmount;
27
+ public $shippingCarrierCode;
28
+ public $shippingCarrierName;
29
 
30
  function __construct($jsonObj) {
31
 
58
  }
59
  $this->shippingMethod = $jsonObj[shippingMethod];
60
  $this->shippingAmount = $jsonObj[shippingAmount];
61
+ $this->shippingCarrierCode = $jsonObj[shippingCarrierCode];
62
+ $this->shippingCarrierName = $jsonObj[shippingCarrierName];
63
  }
64
 
65
 
lib/zooz/zooz.extended.server.api.php CHANGED
@@ -10,8 +10,8 @@
10
  private $ch;
11
 
12
 
13
- const SANDBOX_URL = "https://sandbox.zooz.co";
14
- const PRODUCTION_URL = "https://app.zooz.com";
15
 
16
 
17
 
@@ -26,7 +26,6 @@
26
  * @throws ZooZException
27
  */
28
  function __construct($zoozDeveloperId, $zoozServerAPIKey, $isSandbox) {
29
-
30
  if (!function_exists('curl_init')){
31
  throw new ZooZException('Sorry cURL is not installed!');
32
  }
@@ -44,10 +43,11 @@
44
  $zoozServer;
45
 
46
  if ($isSandbox) {
47
- $zoozServer = self::SANDBOX_URL;
 
48
  curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
49
  } else {
50
- $zoozServer = self::PRODUCTION_URL;
51
  }
52
 
53
  $zoozServer .= "/mobile/ExtendedServerAPI";
@@ -203,7 +203,8 @@
203
  curl_setopt($this->ch, CURLOPT_POSTFIELDS, $data);
204
  $chResult = curl_exec($this->ch);
205
  $chResult = trim($chResult, "\n");
206
-
 
207
  $errorMsg = "Error communicating with ZooZ server, please check your network connection";
208
 
209
  $errorCode = -1;
@@ -211,10 +212,12 @@
211
  if (empty($chResult)) {
212
  throw new ZooZException($errorMsg);
213
  }
214
-
 
 
215
  $decoded = json_decode(trim($chResult), TRUE);
216
-
217
- if ($decoded[ResponseStatus] != 0) {
218
  if (!empty($decoded[ResponseObject]) && !empty($decoded[ResponseObject][errorMessage])) {
219
  $errorMsg = $decoded[ResponseObject][errorMessage];
220
  $errorCode = $decoded[ResponseStatus];
@@ -234,4 +237,4 @@
234
  }
235
 
236
  }
237
- ?>
10
  private $ch;
11
 
12
 
13
+ #const SANDBOX_URL = "http://dev.zooz.co:9090";# Mage::getModel('zoozpayment/standard')->getSandboxUrl();
14
+ #const PRODUCTION_URL = ""; #Mage::getStoreConfig('payment/zoozpayment/zooz_production_url');
15
 
16
 
17
 
26
  * @throws ZooZException
27
  */
28
  function __construct($zoozDeveloperId, $zoozServerAPIKey, $isSandbox) {
 
29
  if (!function_exists('curl_init')){
30
  throw new ZooZException('Sorry cURL is not installed!');
31
  }
43
  $zoozServer;
44
 
45
  if ($isSandbox) {
46
+ #Mage::log(Mage::getModel('zoozpayment/standard')->getSandboxUrl());
47
+ $zoozServer = Mage::getModel('zoozpayment/standard')->getSandboxUrl(); #self::SANDBOX_URL;
48
  curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
49
  } else {
50
+ $zoozServer = Mage::getModel('zoozpayment/standard')->getProductionUrl(); #self::PRODUCTION_URL;
51
  }
52
 
53
  $zoozServer .= "/mobile/ExtendedServerAPI";
203
  curl_setopt($this->ch, CURLOPT_POSTFIELDS, $data);
204
  $chResult = curl_exec($this->ch);
205
  $chResult = trim($chResult, "\n");
206
+ //Mage::log($chResult);
207
+
208
  $errorMsg = "Error communicating with ZooZ server, please check your network connection";
209
 
210
  $errorCode = -1;
212
  if (empty($chResult)) {
213
  throw new ZooZException($errorMsg);
214
  }
215
+
216
+
217
+
218
  $decoded = json_decode(trim($chResult), TRUE);
219
+ //Mage::log($decoded);
220
+ if ($decoded['ResponseStatus'] != 0) {
221
  if (!empty($decoded[ResponseObject]) && !empty($decoded[ResponseObject][errorMessage])) {
222
  $errorMsg = $decoded[ResponseObject][errorMessage];
223
  $errorCode = $decoded[ResponseStatus];
237
  }
238
 
239
  }
240
+ ?>
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ZooZ_payment</name>
4
- <version>1.9.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">GNU General Public License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Checkout module for higher conversions</summary>
10
- <description>Zooz is a complete checkout plugin replaces completely the standard UI</description>
11
- <notes>Magento connect first release</notes>
12
  <authors><author><name>ZooZ Payments</name><user>Zooz_Payments</user><email>info@zooz.com</email></author></authors>
13
- <date>2013-10-30</date>
14
- <time>13:30:46</time>
15
- <contents><target name="magecommunity"><dir name="ZooZ"><dir name="ZoozPayment"><dir name="Block"><file name="Index.php" hash="bea9161ac24756a7cf0c841ad8411da9"/></dir><dir name="Helper"><file name="Carrier.php" hash="a6482b94fcb7e419a3759171d0267df6"/><file name="Data.php" hash="392f1c937865b8bb79b13d513ac20215"/><file name="Sanbox.php" hash="9521c1d925d462d8e7d78a3318ee3ee0"/></dir><dir name="Model"><file name="Order.php" hash="f56d22eede9ffe23afe6e031e33a2e36"/><file name="Standard.php" hash="e5aa766ed613dd614e761eebf9eb8bb2"/></dir><dir name="controllers"><file name="CartController.php" hash="6c1c69df795bece32f6565acfef22f6d"/><file name="IndexController.php" hash="4d7015bb3ac7e1748cde5917bffca1cc"/><file name="StandardController.php" hash="5541c42cb7de2eb4781ace28b15ebb55"/></dir><dir name="etc"><file name="config.xml" hash="4883874c0e5b0959e0093239f1705044"/><file name="system.xml" hash="66b12963ff8f5ae251b616771f57f872"/></dir><file name=".DS_Store" hash="11bcaaef5267039678e3f18111689524"/></dir><file name=".DS_Store" hash="7b1df8975ee1b1bbda9c596756c810bb"/></dir></target><target name="mageetc"><dir name="modules"><file name="ZooZ_ZoozPayment.xml" hash="9b5ce2a8c325f210479527a1c0ebd8a9"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="zoozpayment.xml" hash="a5eaed0a9a6659d29e19fbb0c554b8fb"/></dir><dir name="template"><dir name="zoozpayment"><file name="index.phtml" hash="c5aaccadf9379fb66c2591c060f7abb5"/><file name="review.phtml" hash="162e8a7f5548d80bfd987bd6ee0877e4"/><file name="shortcut-checkout.phtml" hash="6ae1326f74723514700733891e7ef488"/><file name="shortcut.phtml" hash="33ec957458be4c07ee9b83336f560a46"/><file name="sidebar.phtml" hash="e058f07b4e0a53a591542fe83a081e2d"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="zooz"><dir name="images"><file name="fastcheckout.png" hash="8f53be05b8c4a3903aec32745e9bf263"/><file name="loading.gif" hash="9a8269421303631316be4ab5e34870e1"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="js"><file name="jquery-1.9.0.min.js" hash="6c4a706b2e324656fb77c0585c1cff55"/><file name="zooz-ext-web-ajax.js" hash="8eb9122140b810d66af47d32af7b7319"/></dir><file name=".DS_Store" hash="a727243c96b42024b36ed4f3e3159cb3"/></dir></dir></dir></dir></target><target name="magelib"><dir name="zooz"><file name="address.php" hash="40af42bf39330383e05c57bd6ba71759"/><file name="invoice.item.php" hash="37803cf953ca2dab2583cc34f80f7844"/><file name="invoice.php" hash="2e75b69bf1592243c70fd90ebaeba41a"/><file name="nvps.php" hash="cffaa4eb22d14af1ea3e69a522e21ad0"/><file name="transaction.details.php" hash="ee0e9718be7341fff0e0ea42c97e31e0"/><file name="user.details.php" hash="1e571f792f5e87187e1c85172a19c99d"/><file name="zooz.exception.php" hash="dc5a70ef56e64b1bc76f0407c2187f79"/><file name="zooz.extended.server.api.php" hash="65d156f48ba194819bee1d9e5a468e3a"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>ZooZ_payment</name>
4
+ <version>2.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">GNU General Public License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Checkout module for higher conversions</summary>
10
+ <description>Zooz is a complete checkout plugin replaces completely the standard UI and handle payment processing and shipping address.</description>
11
+ <notes>Zooz checkout</notes>
12
  <authors><author><name>ZooZ Payments</name><user>Zooz_Payments</user><email>info@zooz.com</email></author></authors>
13
+ <date>2014-01-01</date>
14
+ <time>13:25:35</time>
15
+ <contents><target name="magecommunity"><dir name="ZooZ"><dir name="ZoozPayment"><dir name="Block"><file name="Abstract.php" hash="0ac3cf5751fad5f6fd8d2240adedb197"/><dir name="Estimate"><file name="Abstract.php" hash="822638b4ec0a3d0f1f39b4d9f673de5e"/><file name="Result.php" hash="e26d7b8acaeb5424a608e43127844140"/></dir><file name="Estimate.php" hash="e16de59381c39d89633b7e3e53ee6028"/><file name="Index.php" hash="bea9161ac24756a7cf0c841ad8411da9"/></dir><dir name="Helper"><file name="Carrier.php" hash="a6482b94fcb7e419a3759171d0267df6"/><file name="Data.php" hash="392f1c937865b8bb79b13d513ac20215"/><file name="Sanbox.php" hash="9521c1d925d462d8e7d78a3318ee3ee0"/></dir><dir name="Model"><file name="Estimate.php" hash="cf4d18a7bccb4d5bedc32624a5841989"/><file name="Order.php" hash="49f8d316ef895172e59bb06a08b48771"/><file name="Session.php" hash="f2ae892657034ca2d55205f0703eedde"/><file name="Standard.php" hash="a7b496d96a63fd8e337eaefdcdb31c38"/></dir><dir name="controllers"><file name="CartController.php" hash="6c1c69df795bece32f6565acfef22f6d"/><file name="EstimateController.php" hash="d8f48c964b95ba71d78f558dc774c345"/><file name="IndexController.php" hash="4d7015bb3ac7e1748cde5917bffca1cc"/><file name="StandardController.php" hash="5541c42cb7de2eb4781ace28b15ebb55"/></dir><dir name="etc"><file name="config.xml" hash="43687ff856324ea05a00685062a20e7b"/><file name="system.xml" hash="f25b728d4924d268872b3c2d53c9dc75"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ZooZ_ZoozPayment.xml" hash="9f836c89a16d4693f96ae141906cc77d"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="zoozpayment.xml" hash="a3eaf1bf8eb27c4e20d0b30814f20d4f"/></dir><dir name="template"><dir name="zoozpayment"><file name="index.phtml" hash="2a9aeeddace7d15b22708b0421a90d5c"/><file name="result.phtml" hash="b307b3fc11f42fc375f640f06d0e1ee4"/><file name="review.phtml" hash="162e8a7f5548d80bfd987bd6ee0877e4"/><file name="shortcut-checkout.phtml" hash="a57de244881f9ebf07809bc3175a597c"/><file name="shortcut.phtml" hash="f4b7bda1ad1fe0756954991fce63295c"/><file name="sidebar.phtml" hash="45376174d8d4e21cb43fc62ced8820c3"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="zooz"><dir name="images"><file name="fastcheckout.png" hash="8f53be05b8c4a3903aec32745e9bf263"/><file name="loading.gif" hash="9a8269421303631316be4ab5e34870e1"/></dir><dir name="js"><file name="jquery-1.9.0.min.js" hash="6c4a706b2e324656fb77c0585c1cff55"/><file name="zooz-magento.js" hash="df7d456b95139fdbc4813d288c724142"/></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="zooz"><file name="address.php" hash="40af42bf39330383e05c57bd6ba71759"/><file name="invoice.item.php" hash="37803cf953ca2dab2583cc34f80f7844"/><file name="invoice.php" hash="2e75b69bf1592243c70fd90ebaeba41a"/><file name="nvps.php" hash="cffaa4eb22d14af1ea3e69a522e21ad0"/><file name="transaction.details.php" hash="9e7fea0feb69e7468922e6fb8323a489"/><file name="user.details.php" hash="1e571f792f5e87187e1c85172a19c99d"/><file name="zooz.exception.php" hash="dc5a70ef56e64b1bc76f0407c2187f79"/><file name="zooz.extended.server.api.php" hash="3dbed68e102e2082ca99db45df7fef8f"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
skin/frontend/base/default/zooz/.DS_Store DELETED
Binary file
skin/frontend/base/default/zooz/images/.DS_Store DELETED
Binary file
skin/frontend/base/default/zooz/js/zooz-ext-web-ajax.js DELETED
@@ -1,389 +0,0 @@
1
- var Zooz = Zooz || {};
2
-
3
- Zooz.zoozServerProduction = "https://app.zooz.com";
4
- Zooz.zoozServerSandbox = "https://sandbox.zooz.co";
5
-
6
- Zooz.zoozServerProduction_dev = "http://192.168.1.22:8085";
7
- Zooz.zoozServerSandbox_dev = "http://192.168.1.22:8085";
8
-
9
- Zooz.serverProduction_111 = "http://192.168.1.111:8080";
10
- Zooz.serverSandbox_111 = "http://192.168.1.111:8090";
11
-
12
- Zooz.serverProduction_dev = "http://dev.zooz.co:8585";
13
- Zooz.serverSandbox_dev = "http://dev.zooz.co:8090";
14
-
15
-
16
-
17
- Zooz.environemtProduction = Zooz.serverProduction_dev;
18
- Zooz.environemtSandbox = Zooz.serverSandbox_dev;
19
- /*
20
- * The information in this document is proprietary
21
- * to TactusMobile and the TactusMobile Product Development.
22
- * It may not be used, reproduced or disclosed without
23
- * the written approval of the General Manager of
24
- * TactusMobile Product Development.
25
- *
26
- * PRIVILEGED AND CONFIDENTIAL
27
- * TACTUS MOBILE PROPRIETARY INFORMATION
28
- * REGISTRY SENSITIVE INFORMATION
29
- *
30
- * Copyright (c) 2010 TactusMobile, Inc. All rights reserved.
31
- */
32
- //var spinner;
33
- var Zooz = Zooz || {};
34
-
35
- //Zooz.zoozServerProduction = "https://app.zooz.com";
36
- //Zooz.zoozServerSandbox = "https://sandbox.zooz.co";
37
- //
38
- //Zooz.zoozServerProduction_dev = "http://192.168.1.22:8085";
39
- //Zooz.zoozServerSandbox_dev = "http://192.168.1.22:8085";
40
- //
41
- //Zooz.serverProduction_111 = "http://192.168.1.111:8080";
42
- //Zooz.serverSandbox_111 = "http://192.168.1.111:8090";
43
- //
44
- //
45
- //
46
- //Zooz.environemtProduction = Zooz.zoozServerProduction_dev;
47
- //Zooz.environemtSandbox = Zooz.zoozServerSandbox_dev;
48
-
49
-
50
- Zooz.centerPosition = function(elem, elemWidth, elemHeight) {
51
- var e = window
52
- , a = 'inner';
53
- if (!( 'innerWidth' in window )) {
54
- a = 'client';
55
- e = document.documentElement || document.body;
56
- }
57
-
58
- var width = e[ a + 'Width' ];
59
- var height = e[ a + 'Height' ];
60
-
61
- if (width > elemWidth) {
62
- elem.style.left = 0.5 * (width - elemWidth) + "px";
63
- }
64
-
65
- if (height > elemHeight) {
66
- elem.style.top = 0.5 * (height - elemHeight) + "px";
67
- }
68
- };
69
-
70
-
71
- var zoozStartCheckout = function(zoozParams) {
72
-
73
- var zoozOverlay;
74
- var zoozIframe;
75
- var zoozCloseButton;
76
- var zoozDialogContainer;
77
- var zoozServer;
78
-
79
- var that = this;
80
-
81
- var isIE = navigator.userAgent.match(/MSIE/i);
82
-
83
- var isZoozLive = true;
84
- var pingZoozOverlay = function() {
85
- setTimeout(function() {
86
- if (isZoozLive) {
87
- isZoozLive = false;
88
- try {
89
- zoozIframe.contentWindow.postMessage('check-zooz', zoozServer);
90
- pingZoozOverlay();
91
- } catch(ex) {
92
-
93
- }
94
-
95
-
96
- } else {
97
- try {
98
- if (zoozCloseButton) {
99
- closezooz = closeWindow;
100
- }
101
-
102
- alert('zooz window is dead');
103
- } catch(ex) {
104
-
105
- }
106
-
107
- }
108
- }, 1000);
109
-
110
- }
111
-
112
- ;
113
-
114
-
115
- var listener = function(event) {
116
- if (event.origin !== Zooz.environemtProduction) {
117
- return;
118
- }
119
- if (event.data === 'zooz-alive') {
120
- isZoozLive = true;
121
-
122
- } else if (event.data === 'zooz-started') {
123
- closezooz = closeByPost;
124
- pingZoozOverlay();
125
- } else {
126
- closeWindow();
127
- }
128
-
129
- };
130
-
131
-
132
- if (window.addEventListener) {
133
-
134
- addEventListener("message", listener, false);
135
- } else {
136
- attachEvent("onmessage", listener);
137
- }
138
-
139
- var closeWindow = function() {
140
- console.log('close window');
141
- var elem = document.getElementById('zooz-overlay');
142
- if (elem) {
143
- try {
144
-
145
-
146
- document.body.removeChild(elem);
147
- window.removeEventListener('message', listener, false);
148
- // if (zoozParams.closeCallbackFunc) {
149
- // zoozParams.closeCallbackFunc();
150
- // }
151
- delete that;
152
- } catch(ex) {
153
-
154
- }
155
- }
156
- };
157
-
158
- var closeByPost = function() {
159
- console.log('close by post');
160
- zoozIframe.contentWindow.postMessage('close-zooz', zoozServer);
161
- };
162
-
163
- var showzooz = function () {
164
- document.getElementById('zooz-overlay').style.visibility = 'visible';
165
- document.getElementById('zooz-overlay').style.opacity = '1';
166
- };
167
- var hidezooz = function() {
168
- document.getElementById('zooz-overlay').style.visibility = 'hidden';
169
- document.getElementById('zooz-overlay').style.opacity = '0';
170
- };
171
- var closezooz = closeWindow;
172
- // closeByPost;
173
- // closeWindow;
174
-
175
-
176
- if (document.getElementById('zooz-overlay')) {
177
- return;
178
- }
179
-
180
- if (!zoozParams.token) {
181
- alert("Error starting ZooZ checkout: Token is empty");
182
- return;
183
- }
184
-
185
- if (!zoozParams.uniqueId) {
186
- alert("Error starting ZooZ checkout: Unique ID is empty");
187
- return;
188
- }
189
-
190
-
191
- if (zoozParams.isSandbox) {
192
- zoozServer = Zooz.environemtSandbox;
193
- } else {
194
- zoozServer = Zooz.environemtProduction;
195
- }
196
-
197
-
198
- // var pixelRatio = 1;
199
- // try {
200
- // pixelRatio = window.devicePixelRatio;
201
- // } catch (e) {
202
- // pixelRatio = 1;
203
- // }
204
-
205
- // if (pixelRatio === undefined || pixelRatio == 1) {
206
- //
207
- // try {
208
- // if (!zoozParams.useMobileSize && window.matchMedia("(min-device-width: 540px)").matches && window.matchMedia("(min-device-height: 560px)").matches) {
209
- // largeViewport = true;
210
- // }
211
- // } catch (e) {
212
- //
213
- // try {
214
- // if (window.matchMedia("(min-width: 540px)").matches && window.matchMedia("(min-height: 560px)").matches) {
215
- // largeViewport = true;
216
- // }
217
- // } catch (e) {
218
- // var isIE7 = navigator.userAgent.match(/MSIE 7.0/i);
219
- // var isIE8 = navigator.userAgent.match(/MSIE 8.0/i);
220
- // var isIE9 = navigator.userAgent.match(/MSIE 9.0/i);
221
- // var isIEMobile = navigator.userAgent.match(/IEMobile/i);
222
- // if (isIE7 || isIE8 || (isIE9 && !isIEMobile)) {
223
- // largeViewport = true;
224
- // }
225
- // }
226
- // }
227
- //
228
- //
229
- // }
230
-
231
-
232
- var isIE8 = navigator.userAgent.match(/MSIE 8.0/i);
233
-
234
-
235
- var iframeSrc = zoozServer + "/mobile/mobilewebajax/zooz-checkout.jsp?token=" + zoozParams.token + "&uniqueID=" + zoozParams.uniqueId;
236
-
237
-
238
- // spinner = document.createElement('img');
239
- // spinner.src = zoozServer + "/mobile/mobileweb/img/loader_spinner.gif";
240
- // spinner.style.position = 'absolute';
241
- // spinner.style.zIndex = "99999";
242
- // spinner.style.opacity = 0.4;
243
- // spinner.style.filter = 'alpha(opacity=40)';
244
- // showSpinner();
245
-
246
- if (zoozParams.returnUrl) {
247
- iframeSrc += "&returnUrl=" + zoozParams.returnUrl;
248
- }
249
-
250
- if (zoozParams.cancelUrl) {
251
- iframeSrc += "&cancelUrl=" + zoozParams.cancelUrl;
252
- }
253
-
254
- if (zoozParams.rememberMeDefault == false) {
255
- iframeSrc += "&uncheckRememberMe=true";
256
- }
257
-
258
- if (zoozParams.preferredLanguage) {
259
- iframeSrc += "&preferredLanguage=" + zoozParams.preferredLanguage;
260
- }
261
-
262
- if (zoozParams.customStylesheet) {
263
- iframeSrc += "&customStylesheet=" + zoozParams.customStylesheet;
264
- }
265
-
266
- // var div = document.createElement('div');
267
-
268
-
269
- if (zoozParams.completeCallBackFunc) {
270
- iframeSrc += "&callbackDomain=" + window.location.protocol + "//" + window.location.host;
271
- var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
272
- var eventer = window[eventMethod];
273
- var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
274
-
275
- // Listen to message from child window
276
- eventer(messageEvent, function(e) {
277
- if (e.origin === zoozServer) {
278
- if (zoozOverlay && zoozOverlay.parentNode) {
279
- closezooz(zoozOverlay);
280
- zoozParams.completeCallBackFunc(e.data);
281
- }
282
- // if (zoozOverlay && zoozOverlay.parentNode) {
283
- // zoozOverlay.parentNode.removeChild(zoozOverlay);
284
- // zoozParams.completeCallBackFunc(e.data);
285
- // }
286
- }
287
- }, false);
288
-
289
- }
290
-
291
- if (zoozParams.shippingMethods) {
292
- iframeSrc += "&shippingMethods="+ zoozParams.shippingMethods;
293
- // for (var shippingMethod in zoozParams.shippingMethods) {
294
- // if (zoozParams.shippingMethods.hasOwnProperty(shippingMethod)) {
295
- // iframeSrc += "&shippingMethods=" + shippingMethod + "&shippingPrices=" + zoozParams.shippingMethods[shippingMethod];
296
- // }
297
- // }
298
- }
299
-
300
- // Zooz.injectedCode.join()
301
-
302
- // html injection
303
- // div.innerHTML = Zooz.injectedCode.join("");
304
- // document.body.appendChild(div);
305
- // var zoozIframe = document.getElementById('zooz-iframe');
306
- // var zoozCloseButton = document.getElementById('zooz-close-button');
307
- //
308
- // '<div id="zooz-overlay" style="background:rgba(0,0,0,0.6);position:fixed;z-index:999999;width:100%;height:100%;top:0;bottom:0;left:0;right:0;visibility:hidden;opacity:0;transition:all 0.3s ease-out;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;">',
309
- // '<div id="zooz-dialog-container" style="width:650px;background-color:rgba(255,255,255,1);position:fixed;top:50%;left:50%;margin-left:-325px;margin-top:-350px;padding:0;line-height:0;">',
310
- // '<div id="zooz-close-button" style="position:absolute;background:url(' + zoozServer + '/mobile/mobilewebajax/img/ico-close.png) no-repeat left top;right:5px;top:8px;width:12px;height:12px;cursor:pointer;"></div>',
311
- // '<iframe id="zooz-iframe" allowtransparency="true" frameborder="0" width="650px" height="710px" marginheight="0" marginwidth="0" scrolling="no" ></iframe>',
312
- // ' </div>',
313
- // '</div>',
314
-
315
-
316
- zoozOverlay = document.createElement('div');
317
- zoozOverlay.id = "zooz-overlay";
318
- zoozOverlay.style.cssText = 'position:fixed;z-index:999999;width:100%;height:100%;top:0;bottom:0;left:0;right:0;visibility:hidden;opacity:0;transition:all 0.3s ease-out;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;';
319
- if (!isIE8) {
320
- zoozOverlay.style.cssText += 'background:rgba(0,0,0,0.6);';
321
- }
322
- document.body.appendChild(zoozOverlay);
323
- // zoozOverlay.style.background = 'rgba(0,0,0,0.6)';
324
- // zoozOverlay.style.position= 'fixed';
325
- // zoozOverlay.style.zIndex ='999999' ;
326
- // zoozOverlay.style.width='100%';
327
- // zoozOverlay.style.height = '100%';
328
- // zoozOverlay.style.top = '0';
329
- // zoozOverlay.style.bottom = '0';
330
- // zoozOverlay.style.left = '0';
331
- // zoozOverlay.style.right = '0';
332
- // zoozOverlay.style.visibility = 'hidden';
333
- // zoozOverlay.style.opacity = '0';
334
- // zoozOverlay.style.o -o-transition:all 0.3s ease-out;
335
- // zoozOverlay.style.opacity;
336
- // zoozOverlay.style.opacity;
337
- // zoozOverlay.style.opacity;
338
-
339
-
340
- zoozDialogContainer = document.createElement('div');
341
- zoozDialogContainer.id = 'zooz-dialog-container';
342
- zoozDialogContainer.style.cssText = 'width:650px;background-color:#FFFFFF;position:fixed;top:50%;left:50%;margin-left:-325px;margin-top:-350px;padding:0;line-height:0;';
343
- zoozOverlay.appendChild(zoozDialogContainer);
344
-
345
- zoozCloseButton = document.createElement('div');
346
- zoozCloseButton.id = 'zooz-close-button';
347
- zoozCloseButton.style.cssText = "position:absolute;background:url(" + zoozServer + "/mobile/mobilewebajax/img/ico-close.png) no-repeat left top;right:5px;top:8px;width:12px;height:12px;cursor:pointer;";
348
- zoozDialogContainer.appendChild(zoozCloseButton);
349
-
350
- zoozIframe = document.createElement('iframe');
351
- zoozIframe.id = 'zooz-iframe';
352
- zoozIframe.setAttribute('allowtransparency', "true");
353
- zoozIframe.setAttribute('frameborder', "0");
354
- zoozIframe.setAttribute('width', "650px");
355
- zoozIframe.setAttribute('height', "710px");
356
- zoozIframe.setAttribute('marginheight', "0");
357
- zoozIframe.setAttribute('marginwidth', "0");
358
- zoozIframe.setAttribute('scrolling', "no");
359
- zoozDialogContainer.appendChild(zoozIframe);
360
-
361
- zoozIframe.setAttribute('src', iframeSrc);
362
- zoozCloseButton.onclick = function() {
363
- closezooz(zoozOverlay)
364
- };
365
- // onMouseOver="document.getElementById(\'zooz-close-button\').style.cssText+=\'background-position:left bottom\'"
366
- zoozCloseButton.onmouseover = function() {
367
- var el = document.getElementById('zooz-close-button');
368
- if (el) {
369
- el.style.cssText += 'background-position:left bottom';
370
- }
371
- };
372
- zoozCloseButton.onmouseout = function() {
373
- var el = document.getElementById('zooz-close-button');
374
- if (el) {
375
- el.style.cssText += 'background-position:left top';
376
- }
377
- };
378
-
379
- showzooz();
380
-
381
-
382
- // if (isIE) {
383
- // zoozIframe.attachEvent("onload", onIframeLoad);
384
- // } else {
385
- // zoozIframe.onload = onIframeLoad();
386
- // }
387
-
388
-
389
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
skin/frontend/base/default/zooz/js/zooz-magento.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function startZooz(isSandbox, formObject, url, uniqueId, returnUrl, cancelUrl){
2
+ var sandbox = (isSandbox==1);
3
+ var customStyleA = "https://app.zooz.com/ZoozCustomWC3/company/base-styles-a.css";
4
+ var customStyleB = "https://app.zooz.com/ZoozCustomWC3/company/base-styles-b.css";
5
+ var customStyle = "";//customStyleB;
6
+ //DYO.chooseVariation(93);
7
+ // if(zooz_button_color == 'gold')
8
+ // customStyle = customStyleB;
9
+
10
+ jQuery('#zooz-payment-loading').show();
11
+ jQuery.ajax({
12
+ type: formObject.attr('method'),
13
+ url: url,
14
+ data: formObject.serialize(),
15
+ cache: false,
16
+ success: function (response) {
17
+ jQuery('#zooz-payment-loading').hide();
18
+ eval(response);
19
+ zoozStartCheckout({
20
+ token : data.token,
21
+ uniqueId : uniqueId,
22
+ isSandbox : sandbox,
23
+ customStylesheet: customStyle,
24
+ returnUrl : returnUrl,
25
+ cancelUrl : cancelUrl
26
+
27
+ });
28
+ }
29
+ });
30
+ return false;
31
+ }