WhiteSunrise_Bongo_International - Version 1.3.0

Version Notes

- Numerous miscellaneous bug fixes
- Added support for Magento Enterprise FPC
- Added support for Amasty FPC
- Added support for Lesti FPC
- Added support for FireCheckout
- Added support for OneStepCheckout

Download this release

Release Info

Developer Brent Wierson
Extension WhiteSunrise_Bongo_International
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.1 to 1.3.0

Files changed (35) hide show
  1. app/code/community/Bongo/International/Block/Checkout/Form.php +15 -0
  2. app/code/community/Bongo/International/Block/Checkout/Shipping/Form.php +17 -0
  3. app/code/community/Bongo/International/Block/Currency/Selector.php +4 -4
  4. app/code/community/Bongo/International/Block/Sales/Order/Totals.php +4 -4
  5. app/code/community/Bongo/International/Model/Container/Abstract.php +18 -0
  6. app/code/community/Bongo/International/Model/Container/Compatibility/Checkout/Firecheckout.php +6 -0
  7. app/code/community/Bongo/International/Model/Container/Compatibility/Checkout/Onestepcheckout.php +6 -0
  8. app/code/community/Bongo/International/Model/Container/Currency/Selector/Experimental.php +6 -0
  9. app/code/community/Bongo/International/Model/Container/Currency/Selector/Lightbox.php +6 -0
  10. app/code/community/Bongo/International/Model/Shipping/Carrier/Bongo.php +0 -7
  11. app/code/community/Bongo/International/controllers/AjaxController.php +49 -0
  12. app/code/community/Bongo/International/controllers/CallbackController.php +2 -0
  13. app/code/community/Bongo/International/etc/cache.xml +37 -0
  14. app/code/community/Bongo/International/etc/config.xml +22 -10
  15. app/code/community/Bongo/International/lib/IP2LOCATION-LITE-DB1.BIN +0 -0
  16. app/code/community/Bongo/International/sql/bongointernational_setup/mysql4-install-1.3.0.php +46 -0
  17. app/code/community/Bongo/International/sql/bongointernational_setup/mysql4-upgrade-1.2.1-1.3.0.php +5 -0
  18. app/design/frontend/base/default/layout/bongointernational.xml +1 -3
  19. app/design/frontend/base/default/template/bongointernational/checkout/form.phtml +14 -14
  20. app/design/frontend/base/default/template/bongointernational/compatibility/checkout/firecheckout.phtml +76 -10
  21. app/design/frontend/base/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml +90 -13
  22. app/design/frontend/default/default/layout/bongointernational.xml +1 -3
  23. app/design/frontend/default/default/template/bongointernational/checkout/form.phtml +14 -14
  24. app/design/frontend/default/default/template/bongointernational/compatibility/checkout/firecheckout.phtml +76 -10
  25. app/design/frontend/default/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml +90 -13
  26. app/design/frontend/enterprise/default/layout/bongointernational.xml +1 -3
  27. app/design/frontend/enterprise/default/template/bongointernational/checkout/form.phtml +14 -14
  28. app/design/frontend/enterprise/default/template/bongointernational/compatibility/checkout/firecheckout.phtml +76 -10
  29. app/design/frontend/enterprise/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml +90 -13
  30. app/design/frontend/rwd/default/layout/bongointernational.xml +1 -3
  31. app/design/frontend/rwd/default/template/bongointernational/checkout/form.phtml +14 -14
  32. app/design/frontend/rwd/default/template/bongointernational/compatibility/checkout/firecheckout.phtml +76 -10
  33. app/design/frontend/rwd/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml +90 -13
  34. package.xml +11 -6
  35. var/bongointernational/IP2LOCATION-LITE-DB1.BIN +0 -0
app/code/community/Bongo/International/Block/Checkout/Form.php CHANGED
@@ -90,6 +90,21 @@ class Bongo_International_Block_Checkout_Form extends Mage_Core_Block_Template {
90
  return $this->_getQuote ()->getAllVisibleItems ();
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  public function getCurrencyCode() {
94
  return Mage::getStoreConfig ( Mage_Directory_Model_Currency::XML_PATH_CURRENCY_DEFAULT );
95
  }
90
  return $this->_getQuote ()->getAllVisibleItems ();
91
  }
92
 
93
+ public function getItemOptions($item) {
94
+ $option_types = array ('options', 'additional_options', 'attributes_info' );
95
+ $combined_options = array ();
96
+
97
+ $options = $item->getTypeInstance ( true )->getOrderOptions ( $item );
98
+
99
+ foreach ( $option_types as $option_type ) {
100
+ if (! empty ( $options [$option_type] )) {
101
+ $combined_options = array_merge ( $combined_options, $options [$option_type] );
102
+ }
103
+ }
104
+
105
+ return $combined_options;
106
+ }
107
+
108
  public function getCurrencyCode() {
109
  return Mage::getStoreConfig ( Mage_Directory_Model_Currency::XML_PATH_CURRENCY_DEFAULT );
110
  }
app/code/community/Bongo/International/Block/Checkout/Shipping/Form.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Bongo_International_Block_Checkout_Shipping_Form extends Bongo_International_Block_Checkout_Form {
4
+ public function getIsEnabled() {
5
+ if (!Mage::getStoreConfig ( 'bongointernational_config/config/active' ) || Mage::getStoreConfig ( 'bongointernational_config/config/integration_type' ) !== "2") {
6
+ return false;
7
+ }
8
+
9
+ $allowed_countries = explode ( ',', Mage::getStoreConfig ( 'bongointernational_config/config/allow_countries' ) );
10
+
11
+ if (! in_array ( $this->getShippingCountry (), $allowed_countries )) {
12
+ return false;
13
+ }
14
+
15
+ return true;
16
+ }
17
+ }
app/code/community/Bongo/International/Block/Currency/Selector.php CHANGED
@@ -312,15 +312,15 @@ class Bongo_International_Block_Currency_Selector extends Mage_Directory_Block_C
312
  require_once (Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'geoip2.phar');
313
  eval ( 'use GeoIp2\Database\Reader;' );
314
 
315
- $reader = new Reader ( Mage::getBaseDir ( 'var' ) . DS . 'bongointernational' . DS . 'GeoLite2-Country.mmdb' );
316
  $record = $reader->country ( $remote_ip );
317
  $geo_country = $record->country->isoCode;
318
  } else {*/
319
  require_once (Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'IP2Location.php');
320
 
321
- $loc = new IP2Location ( Mage::getBaseDir ( 'var' ) . DS . 'bongointernational' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::FILE_IO );
322
- //$loc = new IP2Location(Mage::getBaseDir ( 'var' ) . DS . 'bongointernational' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::SHARED_MEMORY);
323
- //$loc = new IP2Location(Mage::getBaseDir ( 'var' ) . DS . 'bongointernational' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::MEMORY_CACHE);
324
 
325
 
326
  $geo_country = $loc->lookup ( $remote_ip, IP2Location::COUNTRY_CODE );
312
  require_once (Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'geoip2.phar');
313
  eval ( 'use GeoIp2\Database\Reader;' );
314
 
315
+ $reader = new Reader ( Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'GeoLite2-Country.mmdb' );
316
  $record = $reader->country ( $remote_ip );
317
  $geo_country = $record->country->isoCode;
318
  } else {*/
319
  require_once (Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'IP2Location.php');
320
 
321
+ $loc = new IP2Location ( Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::FILE_IO );
322
+ //$loc = new IP2Location(Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::SHARED_MEMORY);
323
+ //$loc = new IP2Location(Mage::getModuleDir ( '', 'Bongo_International' ) . DS . 'lib' . DS . 'IP2LOCATION-LITE-DB1.BIN', IP2Location::MEMORY_CACHE);
324
 
325
 
326
  $geo_country = $loc->lookup ( $remote_ip, IP2Location::COUNTRY_CODE );
app/code/community/Bongo/International/Block/Sales/Order/Totals.php CHANGED
@@ -10,12 +10,12 @@ class Bongo_International_Block_Sales_Order_Totals extends Mage_Sales_Block_Orde
10
  $this->getParentBlock ()->addTotal ( new Varien_Object ( array ('code' => 'shipping', 'value' => $shipping, 'base_value' => $shipping, 'label' => Mage::helper ( 'sales' )->__ ( 'Shipping & Handling' ) ) ), 'subtotal' );
11
  }
12
 
13
- $this->addBongoTotalsRow ( $custom_totals, Mage::getModel ( 'bongointernational/total_duty_quote' ), ( float ) $order->getBongoTotalsDuty () );
14
- $this->addBongoTotalsRow ( $custom_totals, Mage::getModel ( 'bongointernational/total_tax_quote' ), ( float ) $order->getBongoTotalsTax () );
15
- $this->addBongoTotalsRow ( $custom_totals, Mage::getModel ( 'bongointernational/total_insurance_quote' ), ( float ) $order->getBongoTotalsInsurance () );
16
  }
17
 
18
- public function addBongoTotalsRow($custom_totals, $quote_model, $total) {
19
  if ($total != 0) {
20
  $this->getParentBlock ()->addTotal ( new Varien_Object ( array ('code' => $quote_model->getCode (), 'value' => $total, 'base_value' => $total, 'label' => $quote_model->getLabel () ) ), 'shipping' );
21
  }
10
  $this->getParentBlock ()->addTotal ( new Varien_Object ( array ('code' => 'shipping', 'value' => $shipping, 'base_value' => $shipping, 'label' => Mage::helper ( 'sales' )->__ ( 'Shipping & Handling' ) ) ), 'subtotal' );
11
  }
12
 
13
+ $this->addBongoTotalsRow ( Mage::getModel ( 'bongointernational/total_duty_quote' ), ( float ) $order->getBongoTotalsDuty () );
14
+ $this->addBongoTotalsRow ( Mage::getModel ( 'bongointernational/total_tax_quote' ), ( float ) $order->getBongoTotalsTax () );
15
+ $this->addBongoTotalsRow ( Mage::getModel ( 'bongointernational/total_insurance_quote' ), ( float ) $order->getBongoTotalsInsurance () );
16
  }
17
 
18
+ public function addBongoTotalsRow($quote_model, $total) {
19
  if ($total != 0) {
20
  $this->getParentBlock ()->addTotal ( new Varien_Object ( array ('code' => $quote_model->getCode (), 'value' => $total, 'base_value' => $total, 'label' => $quote_model->getLabel () ) ), 'shipping' );
21
  }
app/code/community/Bongo/International/Model/Container/Abstract.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Bongo_International_Model_Container_Abstract extends Enterprise_PageCache_Model_Container_Abstract {
3
+ protected function _renderBlock() {
4
+ $blockClass = $this->_placeholder->getAttribute ( 'block' );
5
+ $template = $this->_placeholder->getAttribute ( 'template' );
6
+ $block = new $blockClass ();
7
+ $block->setTemplate ( $template );
8
+ return $block->toHtml ();
9
+ }
10
+
11
+ protected function _getIdentifier() {
12
+ return $this->_getCookieValue ( Enterprise_PageCache_Model_Cookie::COOKIE_CUSTOMER, '' );
13
+ }
14
+
15
+ protected function _saveCache($data, $id, $tags = array(), $lifetime = 0) {
16
+ parent::_saveCache ( $data, $id, $tags, $lifetime );
17
+ }
18
+ }
app/code/community/Bongo/International/Model/Container/Compatibility/Checkout/Firecheckout.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Bongo_International_Model_Container_Compatibility_Checkout_Firecheckout extends Bongo_International_Model_Container_Abstract {
3
+ protected function _getCacheId() {
4
+ return 'BONGOINTERNATIONAL_COMPATIBILITY_CHECKOUT_FIRECHECKOUT' . md5 ( $this->_placeholder->getAttribute ( 'cache_id' ) ) . '_' . $this->_getIdentifier ();
5
+ }
6
+ }
app/code/community/Bongo/International/Model/Container/Compatibility/Checkout/Onestepcheckout.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Bongo_International_Model_Container_Compatibility_Checkout_Onestepcheckout extends Bongo_International_Model_Container_Abstract {
3
+ protected function _getCacheId() {
4
+ return 'BONGOINTERNATIONAL_COMPATIBILITY_CHECKOUT_ONESTEPCHECKOUT' . md5 ( $this->_placeholder->getAttribute ( 'cache_id' ) ) . '_' . $this->_getIdentifier ();
5
+ }
6
+ }
app/code/community/Bongo/International/Model/Container/Currency/Selector/Experimental.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Bongo_International_Model_Container_Currency_Selector_Experimental extends Bongo_International_Model_Container_Abstract {
3
+ protected function _getCacheId() {
4
+ return 'BONGOINTERNATIONAL_CURRENCY_SELECTOR_EXPERIMENTAL' . md5 ( $this->_placeholder->getAttribute ( 'cache_id' ) ) . '_' . $this->_getIdentifier ();
5
+ }
6
+ }
app/code/community/Bongo/International/Model/Container/Currency/Selector/Lightbox.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Bongo_International_Model_Container_Currency_Selector_Lightbox extends Bongo_International_Model_Container_Abstract {
3
+ protected function _getCacheId() {
4
+ return 'BONGOINTERNATIONAL_CURRENCY_SELECTOR_LIGHTBOX' . md5 ( $this->_placeholder->getAttribute ( 'cache_id' ) ) . '_' . $this->_getIdentifier ();
5
+ }
6
+ }
app/code/community/Bongo/International/Model/Shipping/Carrier/Bongo.php CHANGED
@@ -166,12 +166,6 @@ class Bongo_International_Model_Shipping_Carrier_Bongo extends Mage_Shipping_Mod
166
  }
167
 
168
  if (empty ( $request )) {
169
- $domestic_shipping = Mage::getSingleton ( 'core/session' )->getBongoDomesticShipping ();
170
-
171
- if (( float ) $domestic_shipping > 0) {
172
- return $domestic_shipping;
173
- }
174
-
175
  $quote = Mage::getModel ( 'sales/quote' );
176
  $quote->setData ( ! empty ( $quote_data ) ? $quote_data : Mage::getSingleton ( 'checkout/session' )->getQuote ()->getData () );
177
  $address = $quote->getShippingAddress ();
@@ -240,7 +234,6 @@ class Bongo_International_Model_Shipping_Carrier_Bongo extends Mage_Shipping_Mod
240
  }
241
  }
242
 
243
- Mage::getSingleton ( 'core/session' )->setBongoDomesticShipping ( $domestic_shipping );
244
  return $domestic_shipping;
245
  }
246
 
166
  }
167
 
168
  if (empty ( $request )) {
 
 
 
 
 
 
169
  $quote = Mage::getModel ( 'sales/quote' );
170
  $quote->setData ( ! empty ( $quote_data ) ? $quote_data : Mage::getSingleton ( 'checkout/session' )->getQuote ()->getData () );
171
  $address = $quote->getShippingAddress ();
234
  }
235
  }
236
 
 
237
  return $domestic_shipping;
238
  }
239
 
app/code/community/Bongo/International/controllers/AjaxController.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Bongo_International_AjaxController extends Mage_Core_Controller_Front_Action {
4
+ public function indexAction() {
5
+ $this->loadLayout ();
6
+
7
+ $html = $this->getLayout ()->createBlock ( 'bongointernational/checkout_form' )->setTemplate ( 'bongointernational/checkout/form.phtml' )->toHtml ();
8
+
9
+ $this->getResponse ()->setHeader ( 'Content-Type', 'text/html' )->setBody ( $html );
10
+
11
+ return;
12
+ }
13
+
14
+ public function shippingCountryAction() {
15
+ $this->loadLayout ();
16
+
17
+ $shippingCountry = $this->_getShippingCountry ();
18
+
19
+ $this->getResponse ()->setHeader ( 'Content-Type', 'text/html' )->setBody ( $shippingCountry );
20
+
21
+ return;
22
+ }
23
+
24
+ protected function _getIsEnabled() {
25
+ if (Mage::getStoreConfig ( 'bongointernational_config/config/active' ) && Mage::getStoreConfig ( 'bongointernational_config/config/integration_type' ) == "2") {
26
+ return true;
27
+ } else {
28
+ return false;
29
+ }
30
+ }
31
+
32
+ protected function _getShippingAddress() {
33
+ return $this->_getQuote ()->getShippingAddress ();
34
+ }
35
+
36
+ protected function _getShippingCountry() {
37
+ $country = $this->_getShippingAddress ()->getCountryId ();
38
+
39
+ if (empty ( $country )) {
40
+ $country = Mage::getSingleton ( 'core/session' )->getBongoCustomerCountry ();
41
+ }
42
+
43
+ return $country;
44
+ }
45
+
46
+ protected function _getQuote() {
47
+ return Mage::getSingleton ( 'checkout/session' )->getQuote ();
48
+ }
49
+ }
app/code/community/Bongo/International/controllers/CallbackController.php CHANGED
@@ -139,6 +139,8 @@ class Bongo_International_CallbackController extends Mage_Core_Controller_Front_
139
  $quote->setPaymentMethod ( 'bongointernational' );
140
 
141
  $quote->setCustomerEmail ( ( string ) $order->customeremail );
 
 
142
 
143
  $quote->save ();
144
 
139
  $quote->setPaymentMethod ( 'bongointernational' );
140
 
141
  $quote->setCustomerEmail ( ( string ) $order->customeremail );
142
+ $quote->setCustomerFirstname ( ( string ) $order->customerfirstname );
143
+ $quote->setCustomerLastname ( ( string ) $order->customerlastname );
144
 
145
  $quote->save ();
146
 
app/code/community/Bongo/International/etc/cache.xml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <placeholders>
4
+ <bongointernational_currency_selector_lightbox>
5
+ <block>bongointernational/currency_selector_lightbox</block>
6
+ <name>default.bongointernational.currency.selector.lightbox</name>
7
+ <placeholder>BONGOINTERNATIONAL_CURRENCY_SELECTOR_LIGHTBOX</placeholder>
8
+ <container>Bongo_International_Model_Container_Currency_Selector_Lightbox</container>
9
+ <cache_life>0</cache_life>
10
+ <cache_lifetime>0</cache_lifetime>
11
+ </bongointernational_currency_selector_lightbox>
12
+ <bongointernational_currency_selector_experimental>
13
+ <block>bongointernational/currency_selector_experimental</block>
14
+ <name>default.bongointernational.currency.selector.experimental</name>
15
+ <placeholder>BONGOINTERNATIONAL_CURRENCY_SELECTOR_EXPERIMENTAL</placeholder>
16
+ <container>Bongo_International_Model_Container_Currency_Selector_Experimental</container>
17
+ <cache_life>0</cache_life>
18
+ <cache_lifetime>0</cache_lifetime>
19
+ </bongointernational_currency_selector_experimental>
20
+ <bongointernational_compatibility_checkout_onestepcheckout>
21
+ <block>bongointernational/compatibility_checkout_onestepcheckout</block>
22
+ <name>checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout</name>
23
+ <placeholder>BONGOINTERNATIONAL_COMPATIBILITY_CHECKOUT_ONESTEPCHECKOUT</placeholder>
24
+ <container>Bongo_International_Model_Container_Compatibility_Checkout_Firecheckout</container>
25
+ <cache_life>0</cache_life>
26
+ <cache_lifetime>0</cache_lifetime>
27
+ </bongointernational_compatibility_checkout_onestepcheckout>
28
+ <bongointernational_compatibility_checkout_firecheckout>
29
+ <block>bongointernational/compatibility_checkout_firecheckout</block>
30
+ <name>checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout</name>
31
+ <placeholder>BONGOINTERNATIONAL_COMPATIBILITY_CHECKOUT_FIRECHECKOUT</placeholder>
32
+ <container>Bongo_International_Model_Container_Compatibility_Checkout_Firecheckout</container>
33
+ <cache_life>0</cache_life>
34
+ <cache_lifetime>0</cache_lifetime>
35
+ </bongointernational_compatibility_checkout_firecheckout>
36
+ </placeholders>
37
+ </config>
app/code/community/Bongo/International/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Bongo_International>
5
- <version>1.2.1</version>
6
  </Bongo_International>
7
  </modules>
8
  <global>
@@ -104,17 +104,17 @@
104
  <totals>
105
  <bongointernational_duty>
106
  <class>bongointernational/total_duty_quote</class>
107
- <after>shipping</after>
108
  <before>grand_total</before>
109
  </bongointernational_duty>
110
  <bongointernational_tax>
111
  <class>bongointernational/total_tax_quote</class>
112
- <after>shipping</after>
113
  <before>grand_total</before>
114
  </bongointernational_tax>
115
  <bongointernational_insurance>
116
  <class>bongointernational/total_insurance_quote</class>
117
- <after>shipping</after>
118
  <before>grand_total</before>
119
  </bongointernational_insurance>
120
  </totals>
@@ -123,17 +123,17 @@
123
  <totals>
124
  <bongointernational_duty>
125
  <class>bongointernational/total_duty_invoice</class>
126
- <after>shipping</after>
127
  <before>grand_total</before>
128
  </bongointernational_duty>
129
  <bongointernational_tax>
130
  <class>bongointernational/total_tax_invoice</class>
131
- <after>shipping</after>
132
  <before>grand_total</before>
133
  </bongointernational_tax>
134
  <bongointernational_insurance>
135
  <class>bongointernational/total_insurance_invoice</class>
136
- <after>shipping</after>
137
  <before>grand_total</before>
138
  </bongointernational_insurance>
139
  </totals>
@@ -142,17 +142,17 @@
142
  <totals>
143
  <bongointernational_duty>
144
  <class>bongointernational/total_duty_creditmemo</class>
145
- <after>shipping</after>
146
  <before>grand_total</before>
147
  </bongointernational_duty>
148
  <bongointernational_tax>
149
  <class>bongointernational/total_tax_creditmemo</class>
150
- <after>shipping</after>
151
  <before>grand_total</before>
152
  </bongointernational_tax>
153
  <bongointernational_insurance>
154
  <class>bongointernational/total_insurance_creditmemo</class>
155
- <after>shipping</after>
156
  <before>grand_total</before>
157
  </bongointernational_insurance>
158
  </totals>
@@ -286,6 +286,18 @@
286
  </routers>
287
  </frontend>
288
  <default>
 
 
 
 
 
 
 
 
 
 
 
 
289
  <currency>
290
  <import>
291
  <enabled>1</enabled>
2
  <config>
3
  <modules>
4
  <Bongo_International>
5
+ <version>1.3.0</version>
6
  </Bongo_International>
7
  </modules>
8
  <global>
104
  <totals>
105
  <bongointernational_duty>
106
  <class>bongointernational/total_duty_quote</class>
107
+ <after>subtotal,discount,shipping,tax</after>
108
  <before>grand_total</before>
109
  </bongointernational_duty>
110
  <bongointernational_tax>
111
  <class>bongointernational/total_tax_quote</class>
112
+ <after>subtotal,discount,shipping,tax</after>
113
  <before>grand_total</before>
114
  </bongointernational_tax>
115
  <bongointernational_insurance>
116
  <class>bongointernational/total_insurance_quote</class>
117
+ <after>subtotal,discount,shipping,tax</after>
118
  <before>grand_total</before>
119
  </bongointernational_insurance>
120
  </totals>
123
  <totals>
124
  <bongointernational_duty>
125
  <class>bongointernational/total_duty_invoice</class>
126
+ <after>subtotal,discount,shipping,tax</after>
127
  <before>grand_total</before>
128
  </bongointernational_duty>
129
  <bongointernational_tax>
130
  <class>bongointernational/total_tax_invoice</class>
131
+ <after>subtotal,discount,shipping,tax</after>
132
  <before>grand_total</before>
133
  </bongointernational_tax>
134
  <bongointernational_insurance>
135
  <class>bongointernational/total_insurance_invoice</class>
136
+ <after>subtotal,discount,shipping,tax</after>
137
  <before>grand_total</before>
138
  </bongointernational_insurance>
139
  </totals>
142
  <totals>
143
  <bongointernational_duty>
144
  <class>bongointernational/total_duty_creditmemo</class>
145
+ <after>subtotal,discount,shipping,tax</after>
146
  <before>grand_total</before>
147
  </bongointernational_duty>
148
  <bongointernational_tax>
149
  <class>bongointernational/total_tax_creditmemo</class>
150
+ <after>subtotal,discount,shipping,tax</after>
151
  <before>grand_total</before>
152
  </bongointernational_tax>
153
  <bongointernational_insurance>
154
  <class>bongointernational/total_insurance_creditmemo</class>
155
+ <after>subtotal,discount,shipping,tax</after>
156
  <before>grand_total</before>
157
  </bongointernational_insurance>
158
  </totals>
286
  </routers>
287
  </frontend>
288
  <default>
289
+ <system>
290
+ <fpc>
291
+ <dynamic_blocks><![CDATA[messages,
292
+ global_messages,
293
+ global_notices,
294
+ right.reports.product.viewed,
295
+ default.bongointernational.currency.selector.lightbox,
296
+ default.bongointernational.currency.selector.experimental,
297
+ checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout,
298
+ checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout]]></dynamic_blocks>
299
+ </fpc>
300
+ </system>
301
  <currency>
302
  <import>
303
  <enabled>1</enabled>
app/code/community/Bongo/International/lib/IP2LOCATION-LITE-DB1.BIN ADDED
Binary file
app/code/community/Bongo/International/sql/bongointernational_setup/mysql4-install-1.3.0.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $product_installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup ( 'core_setup' );
5
+ $order_installer = new Mage_Sales_Model_Mysql4_Setup ( 'core_setup' );
6
+ $installer->startSetup ();
7
+
8
+ if ($product_installer->getAttributeId ( 'catalog_product', 'bongo_domestic_cost' ) === false)
9
+ $product_installer->addAttribute ( 'catalog_product', 'bongo_domestic_cost', array ('group' => 'Bongo International', 'input' => 'price', 'type' => 'decimal', 'label' => 'Bongo Domestic Shipping Cost', 'note' => 'If you configure Bongo\'s Domestic Shipping Calculation to be "Per-Product", this value will be combined with the Calculated Shipping Cost returned from Bongo and the resulting total will be displayed in shipping estimates.', 'backend' => '', 'visible' => 1, 'required' => 0, 'user_defined' => 0, 'searchable' => 0, 'filterable' => 0, 'comparable' => 0, 'visible_on_front' => 0, 'visible_in_advanced_search' => 0, 'is_html_allowed_on_front' => 0, 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE ) );
10
+
11
+ if ($order_installer->getAttributeId ( 'order', 'bongo_id' ) === false)
12
+ $order_installer->addAttribute ( 'order', 'bongo_id', array ('type' => 'int', 'input' => 'text', 'label' => 'Bongo Order ID', 'visible' => true, 'required' => false, 'position' => 1 ) );
13
+ if ($order_installer->getAttributeId ( 'order', 'bongo_tracking' ) === false)
14
+ $order_installer->addAttribute ( 'order', 'bongo_tracking', array ('type' => 'varchar', 'input' => 'text', 'label' => 'Bongo Tracking Link', 'visible' => true, 'required' => false, 'position' => 1 ) );
15
+ if ($order_installer->getAttributeId ( 'order', 'bongo_tracking_domestic' ) === false)
16
+ $order_installer->addAttribute ( 'order', 'bongo_tracking_domestic', array ('type' => 'varchar', 'input' => 'text', 'label' => 'Domestic Tracking Number(s)', 'visible' => true, 'required' => false, 'position' => 1 ) );
17
+ if ($order_installer->getAttributeId ( 'order', 'bongo_status_code' ) === false)
18
+ $order_installer->addAttribute ( 'order', 'bongo_status_code', array ('type' => 'varchar', 'input' => 'text', 'label' => 'Bongo Latest Status Code', 'visible' => true, 'required' => false, 'position' => 1 ) );
19
+ if ($order_installer->getAttributeId ( 'order', 'bongo_status_date' ) === false)
20
+ $order_installer->addAttribute ( 'order', 'bongo_status_date', array ('type' => 'timestamp', 'input' => 'text', 'label' => 'Bongo Latest Status Date', 'visible' => true, 'required' => false, 'position' => 1 ) );
21
+ if ($order_installer->getAttributeId ( 'order', 'bongo_landedcosttransactionid' ) === false)
22
+ $order_installer->addAttribute ( 'order', 'bongo_landedcosttransactionid', array ('type' => 'varchar', 'input' => 'text', 'label' => 'Bongo LandedCostTransactionID', 'visible' => true, 'required' => false, 'position' => 1 ) );
23
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_subtotal' ) === false)
24
+ $order_installer->addAttribute ( 'order', 'bongo_totals_subtotal', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Order Subtotal', 'visible' => true, 'required' => false, 'position' => 1 ) );
25
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_duty' ) === false)
26
+ $order_installer->addAttribute ( 'order', 'bongo_totals_duty', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Shipping Duties', 'visible' => true, 'required' => false, 'position' => 1 ) );
27
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_tax' ) === false)
28
+ $order_installer->addAttribute ( 'order', 'bongo_totals_tax', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Shipping Tax', 'visible' => true, 'required' => false, 'position' => 1 ) );
29
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_shipping' ) === false)
30
+ $order_installer->addAttribute ( 'order', 'bongo_totals_shipping', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo International Shipping', 'visible' => true, 'required' => false, 'position' => 1 ) );
31
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_domestic' ) === false)
32
+ $order_installer->addAttribute ( 'order', 'bongo_totals_domestic', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Domestic Shipping', 'visible' => true, 'required' => false, 'position' => 1 ) );
33
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_insurance' ) === false)
34
+ $order_installer->addAttribute ( 'order', 'bongo_totals_insurance', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Insurance', 'visible' => true, 'required' => false, 'position' => 1 ) );
35
+ if ($order_installer->getAttributeId ( 'order', 'bongo_totals_total' ) === false)
36
+ $order_installer->addAttribute ( 'order', 'bongo_totals_total', array ('type' => 'decimal', 'input' => 'text', 'label' => 'Bongo Order Total', 'visible' => true, 'required' => false, 'position' => 1 ) );
37
+
38
+ $table = $installer->getConnection ()->newTable ( $installer->getTable ( 'bongointernational/status' ) )->addColumn ( 'status_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array ('identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true ), 'Status ID' )->addColumn ( 'order_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array ('identity' => false, 'unsigned' => true, 'nullable' => false, 'primary' => false ), 'Order ID' )->addColumn ( 'code', Varien_Db_Ddl_Table::TYPE_VARCHAR, null, array ('nullable' => false ), 'Code' )->addColumn ( 'description', Varien_Db_Ddl_Table::TYPE_TEXT, null, array ('nullable' => false ), 'Description' )->addColumn ( 'notes', Varien_Db_Ddl_Table::TYPE_TEXT, null, array ('nullable' => false ), 'Notes' )->addColumn ( 'created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array ('nullable' => true, 'default' => null ), 'Created At' );
39
+ $installer->getConnection ()->createTable ( $table );
40
+
41
+ $core_config = Mage::getModel ( 'core/config' );
42
+ $core_config->saveConfig ( 'currency/import/enabled', '1', 'default', 0 );
43
+ $core_config->saveConfig ( 'currency/import/service', 'bongo_currency_converter', 'default', 0 );
44
+ $core_config->saveConfig ( 'currency/import/frequency', 'D', 'default', 0 );
45
+
46
+ $installer->endSetup ();
app/code/community/Bongo/International/sql/bongointernational_setup/mysql4-upgrade-1.2.1-1.3.0.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $installer->startSetup ();
5
+ $installer->endSetup ();
app/design/frontend/base/default/layout/bongointernational.xml CHANGED
@@ -29,18 +29,16 @@
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
37
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
38
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
39
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
40
  </onestepcheckout_index_index>
41
 
42
  <firecheckout_index_index>
43
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
44
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
45
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
46
  </firecheckout_index_index>
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
+ <block type="bongointernational/checkout_shipping_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
 
37
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
38
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
39
  </onestepcheckout_index_index>
40
 
41
  <firecheckout_index_index>
 
42
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
43
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
44
  </firecheckout_index_index>
app/design/frontend/base/default/template/bongointernational/checkout/form.phtml CHANGED
@@ -20,27 +20,27 @@ if ($this->getIsEnabled ()) :
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
- <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
- <?php $split_options = ''; $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); ?>
30
- <?php if (isset($options['options']) && count($options['options'])>0): ?>
31
- <?php $o=0; foreach ($options['options'] as $option): ?>
32
- <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
- <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
- <?php endforeach; ?>
35
- <?php endif; ?>
36
- <?php endforeach; ?>
37
- <?php endif; ?>
38
- <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
39
- <?php if (!empty($split_options[0])): ?>
40
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
41
- <?php endif; ?>
42
- <?php if (!empty($split_options[1])): ?>
43
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
 
 
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
+ <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
+ <?php $split_options = ''; $options = $this->getItemOptions($item->getProduct()); ?>
30
+ <?php if (!empty($options) && count($options)>0): ?>
31
+ <?php $o=0; foreach ($options as $option): ?>
32
+ <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
+ <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
+ <?php endforeach; ?>
35
+ <?php endif; ?>
36
+ <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
37
+ <?php if (!empty($split_options[0])): ?>
 
 
38
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
39
+ <?php endif; ?>
40
+ <?php if (!empty($split_options[1])): ?>
41
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
42
+ <?php endif; ?>
43
+ <?php endforeach; ?>
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
app/design/frontend/base/default/template/bongointernational/compatibility/checkout/firecheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -10,6 +11,8 @@
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int;
 
 
13
 
14
  function bongoHideCheckoutReview(direct) {
15
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
@@ -27,10 +30,31 @@ function bongoHideCheckoutReview(direct) {
27
  }
28
  }
29
 
30
- function bongoUpdateCheckout() {
31
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
 
34
  if ($('bongo_checkout_payment_method_load') != undefined) {
35
  $('bongo_checkout_payment_method_load').show();
36
  } else {
@@ -83,19 +107,61 @@ function bongoUpdateCheckout() {
83
  }
84
  }
85
 
86
- if ($('firecheckout-form') != undefined && $('bongo_form') != undefined) {
87
- $('billing:country_id').observe('change', bongoUpdateCheckout);
88
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
89
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  bongoUpdateCheckout();
 
 
92
 
93
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
94
  $$('#review-buttons-container button').first().observe('click', function() {
95
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
96
 
97
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
98
- $('bongo_form').submit();
 
 
 
 
 
 
 
 
 
99
 
100
  return false;
101
  } else {
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
11
  <script type="text/javascript">
12
  //<![CDATA[
13
  var __bongo_hide_checkout_review_int;
14
+ var __bongo_fetch_shipping_country_timeout;
15
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
16
 
17
  function bongoHideCheckoutReview(direct) {
18
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
30
  }
31
  }
32
 
33
+ function bongoUpdateShippingCountry() {
34
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
35
+
36
+ bongoUpdateCheckout();
37
+ }
38
+
39
+ function bongoFetchShippingCountry() {
40
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || $('firecheckout-spinner') != undefined) {
41
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
42
+
43
+ return false;
44
+ }
45
+
46
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
47
+ method: 'get',
48
+ onComplete: function(xhr) {
49
+ __bongo_country_id = xhr.responseText;
50
+
51
+ bongoUpdateCheckout();
52
+ }
53
+ });
54
+ }
55
 
56
+ function bongoUpdateCheckout() {
57
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
58
  if ($('bongo_checkout_payment_method_load') != undefined) {
59
  $('bongo_checkout_payment_method_load').show();
60
  } else {
107
  }
108
  }
109
 
110
+ function bongoCheckSaveStatus () {
111
+ if($('firecheckout-spinner') != undefined) {
112
+ setTimeout(bongoCheckSaveStatus, '500');
113
+ } else {
114
+ checkout.setLoadWaiting(true);
115
+ $('review-please-wait').show();
116
+
117
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
118
+ method: 'get',
119
+ onComplete: function(xhr) {
120
+ $('bongo_loading_div').update(xhr.responseText);
121
+ $('bongo_form').submit();
122
+ }
123
+ });
124
+ }
125
+ }
126
+
127
+ if ($('firecheckout-form') != undefined) {
128
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
129
+ $('shipping:country_id').observe('change', bongoUpdateShippingCountry);
130
+ $('shipping:same_as_billing').observe('change', function () {
131
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
132
+ });
133
+ $('billing-address-select').observe('change', function () {
134
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
135
+ });
136
+ $('shipping-address-select').observe('change', function () {
137
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
138
+ });
139
 
140
  bongoUpdateCheckout();
141
+
142
+ var bongo_already_placing_order = false;
143
 
144
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
145
  $$('#review-buttons-container button').first().observe('click', function() {
146
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
147
+ if (bongo_already_placing_order) {
148
+ return false;
149
+ }
150
+
151
+ // First validate the form
152
+ var form = new VarienForm('firecheckout-form');
153
 
154
+ if(!form.validator.validate()) {
155
+ return false;
156
+ }
157
+
158
+ bongo_already_placing_order = true;
159
+
160
+ checkout.update(checkout.urls.billing_address, {
161
+ review: 1
162
+ });
163
+
164
+ setTimeout(bongoCheckSaveStatus, '500');
165
 
166
  return false;
167
  } else {
app/design/frontend/base/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -9,11 +10,11 @@
9
  <script type="text/javascript">
10
  //<![CDATA[
11
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
 
 
12
 
13
  function bongoUpdateCheckout() {
14
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
-
16
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
17
  if ($('bongo_checkout_payment_method_load') != undefined) {
18
  $('bongo_checkout_payment_method_load').show();
19
  } else if ($('checkout-payment-method-load') != undefined) {
@@ -68,32 +69,108 @@ function bongoUpdateCheckout() {
68
  }
69
  }
70
 
71
- if ($('onestepcheckout-form') != undefined && $('bongo_form') != undefined) {
72
- $('billing:country_id').observe('change', bongoUpdateCheckout);
73
- $('billing:use_for_shipping_yes').observe('change', bongoUpdateCheckout);
74
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  if ($('shipping:same_as_billing') != undefined) {
77
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
78
  }
79
 
80
  bongoUpdateCheckout();
81
 
 
 
82
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
83
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
84
  $('onestepcheckout-place-order').hide();
85
  $('bongo-onestepcheckout-place-order').observe('click', function() {
86
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
89
- $('bongo_form').submit();
 
 
 
 
 
90
 
91
  return false;
92
  } else {
93
  $('onestepcheckout-place-order').triggerEvent('click');
 
 
94
  }
95
-
96
- return false;
97
  });
98
  }
99
  //]]>
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
13
+ var __bongo_fetch_shipping_country_timeout;
14
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
 
16
  function bongoUpdateCheckout() {
17
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
 
 
18
  if ($('bongo_checkout_payment_method_load') != undefined) {
19
  $('bongo_checkout_payment_method_load').show();
20
  } else if ($('checkout-payment-method-load') != undefined) {
69
  }
70
  }
71
 
72
+ function bongoUpdateShippingCountry() {
73
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
74
+
75
+ bongoUpdateCheckout();
76
+ }
77
+
78
+ function bongoFetchShippingCountry() {
79
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
80
+
81
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>')) {
82
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
83
+
84
+ return false;
85
+ }
86
+
87
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
88
+ method: 'get',
89
+ onComplete: function(xhr) {
90
+ __bongo_country_id = xhr.responseText;
91
+
92
+ bongoUpdateCheckout();
93
+ }
94
+ });
95
+ }
96
+
97
+ function bongoCheckSaveStatus () {
98
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
99
+
100
+ if (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>') {
101
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
102
+ method: 'get',
103
+ onComplete: function(xhr) {
104
+ $('bongo_loading_div').update(xhr.responseText);
105
+ $('bongo_form').submit();
106
+ }
107
+ });
108
+ } else {
109
+ setTimeout(bongoCheckSaveStatus, '500');
110
+ }
111
+ }
112
+
113
+ if ($('onestepcheckout-form') != undefined) {
114
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
115
+ $('shipping:country_id').observe('update', bongoFetchShippingCountry);
116
+ $('billing:use_for_shipping_yes').observe('change', function () {
117
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
118
+ });
119
+ $('billing-address-select').observe('change', function () {
120
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
121
+ });
122
+ $('shipping-address-select').observe('change', function () {
123
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
124
+ });
125
 
126
  if ($('shipping:same_as_billing') != undefined) {
127
+ $('shipping:same_as_billing').observe('change', function () {
128
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
129
+ });
130
  }
131
 
132
  bongoUpdateCheckout();
133
 
134
+ var bongo_already_placing_order = false;
135
+
136
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
137
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
138
  $('onestepcheckout-place-order').hide();
139
  $('bongo-onestepcheckout-place-order').observe('click', function() {
140
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
141
+ if (bongo_already_placing_order) {
142
+ return false;
143
+ }
144
+
145
+ // First validate the form
146
+ var form = new VarienForm('onestepcheckout-form');
147
+
148
+ if(!form.validator.validate()) {
149
+ return false;
150
+ }
151
+
152
+ bongo_already_placing_order = true;
153
+
154
+ var submitelement = $('bongo-onestepcheckout-place-order');
155
+
156
+ var loaderelement = new Element('div').addClassName('onestepcheckout-place-order-loading').update('Please wait, processing your order...');
157
+
158
+ submitelement.parentNode.appendChild(loaderelement);
159
 
160
+ /* Disable button to avoid multiple clicks */
161
+ submitelement.removeClassName('orange').addClassName('grey');
162
+ submitelement.disabled = true;
163
+
164
+ get_save_billing_function('/onestepcheckout/ajax/save_billing/', '/onestepcheckout/ajax/set_methods_separate/', false)();
165
+
166
+ setTimeout(bongoCheckSaveStatus, '500');
167
 
168
  return false;
169
  } else {
170
  $('onestepcheckout-place-order').triggerEvent('click');
171
+
172
+ return false;
173
  }
 
 
174
  });
175
  }
176
  //]]>
app/design/frontend/default/default/layout/bongointernational.xml CHANGED
@@ -29,18 +29,16 @@
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
37
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
38
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
39
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
40
  </onestepcheckout_index_index>
41
 
42
  <firecheckout_index_index>
43
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
44
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
45
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
46
  </firecheckout_index_index>
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
+ <block type="bongointernational/checkout_shipping_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
 
37
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
38
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
39
  </onestepcheckout_index_index>
40
 
41
  <firecheckout_index_index>
 
42
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
43
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
44
  </firecheckout_index_index>
app/design/frontend/default/default/template/bongointernational/checkout/form.phtml CHANGED
@@ -20,27 +20,27 @@ if ($this->getIsEnabled ()) :
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
- <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
- <?php $split_options = ''; $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); ?>
30
- <?php if (isset($options['options']) && count($options['options'])>0): ?>
31
- <?php $o=0; foreach ($options['options'] as $option): ?>
32
- <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
- <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
- <?php endforeach; ?>
35
- <?php endif; ?>
36
- <?php endforeach; ?>
37
- <?php endif; ?>
38
- <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
39
- <?php if (!empty($split_options[0])): ?>
40
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
41
- <?php endif; ?>
42
- <?php if (!empty($split_options[1])): ?>
43
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
 
 
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
+ <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
+ <?php $split_options = ''; $options = $this->getItemOptions($item->getProduct()); ?>
30
+ <?php if (!empty($options) && count($options)>0): ?>
31
+ <?php $o=0; foreach ($options as $option): ?>
32
+ <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
+ <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
+ <?php endforeach; ?>
35
+ <?php endif; ?>
36
+ <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
37
+ <?php if (!empty($split_options[0])): ?>
 
 
38
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
39
+ <?php endif; ?>
40
+ <?php if (!empty($split_options[1])): ?>
41
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
42
+ <?php endif; ?>
43
+ <?php endforeach; ?>
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
app/design/frontend/default/default/template/bongointernational/compatibility/checkout/firecheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -10,6 +11,8 @@
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int;
 
 
13
 
14
  function bongoHideCheckoutReview(direct) {
15
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
@@ -27,10 +30,31 @@ function bongoHideCheckoutReview(direct) {
27
  }
28
  }
29
 
30
- function bongoUpdateCheckout() {
31
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
 
34
  if ($('bongo_checkout_payment_method_load') != undefined) {
35
  $('bongo_checkout_payment_method_load').show();
36
  } else {
@@ -83,19 +107,61 @@ function bongoUpdateCheckout() {
83
  }
84
  }
85
 
86
- if ($('firecheckout-form') != undefined && $('bongo_form') != undefined) {
87
- $('billing:country_id').observe('change', bongoUpdateCheckout);
88
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
89
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  bongoUpdateCheckout();
 
 
92
 
93
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
94
  $$('#review-buttons-container button').first().observe('click', function() {
95
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
96
 
97
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
98
- $('bongo_form').submit();
 
 
 
 
 
 
 
 
 
99
 
100
  return false;
101
  } else {
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
11
  <script type="text/javascript">
12
  //<![CDATA[
13
  var __bongo_hide_checkout_review_int;
14
+ var __bongo_fetch_shipping_country_timeout;
15
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
16
 
17
  function bongoHideCheckoutReview(direct) {
18
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
30
  }
31
  }
32
 
33
+ function bongoUpdateShippingCountry() {
34
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
35
+
36
+ bongoUpdateCheckout();
37
+ }
38
+
39
+ function bongoFetchShippingCountry() {
40
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || $('firecheckout-spinner') != undefined) {
41
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
42
+
43
+ return false;
44
+ }
45
+
46
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
47
+ method: 'get',
48
+ onComplete: function(xhr) {
49
+ __bongo_country_id = xhr.responseText;
50
+
51
+ bongoUpdateCheckout();
52
+ }
53
+ });
54
+ }
55
 
56
+ function bongoUpdateCheckout() {
57
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
58
  if ($('bongo_checkout_payment_method_load') != undefined) {
59
  $('bongo_checkout_payment_method_load').show();
60
  } else {
107
  }
108
  }
109
 
110
+ function bongoCheckSaveStatus () {
111
+ if($('firecheckout-spinner') != undefined) {
112
+ setTimeout(bongoCheckSaveStatus, '500');
113
+ } else {
114
+ checkout.setLoadWaiting(true);
115
+ $('review-please-wait').show();
116
+
117
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
118
+ method: 'get',
119
+ onComplete: function(xhr) {
120
+ $('bongo_loading_div').update(xhr.responseText);
121
+ $('bongo_form').submit();
122
+ }
123
+ });
124
+ }
125
+ }
126
+
127
+ if ($('firecheckout-form') != undefined) {
128
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
129
+ $('shipping:country_id').observe('change', bongoUpdateShippingCountry);
130
+ $('shipping:same_as_billing').observe('change', function () {
131
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
132
+ });
133
+ $('billing-address-select').observe('change', function () {
134
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
135
+ });
136
+ $('shipping-address-select').observe('change', function () {
137
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
138
+ });
139
 
140
  bongoUpdateCheckout();
141
+
142
+ var bongo_already_placing_order = false;
143
 
144
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
145
  $$('#review-buttons-container button').first().observe('click', function() {
146
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
147
+ if (bongo_already_placing_order) {
148
+ return false;
149
+ }
150
+
151
+ // First validate the form
152
+ var form = new VarienForm('firecheckout-form');
153
 
154
+ if(!form.validator.validate()) {
155
+ return false;
156
+ }
157
+
158
+ bongo_already_placing_order = true;
159
+
160
+ checkout.update(checkout.urls.billing_address, {
161
+ review: 1
162
+ });
163
+
164
+ setTimeout(bongoCheckSaveStatus, '500');
165
 
166
  return false;
167
  } else {
app/design/frontend/default/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -9,11 +10,11 @@
9
  <script type="text/javascript">
10
  //<![CDATA[
11
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
 
 
12
 
13
  function bongoUpdateCheckout() {
14
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
-
16
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
17
  if ($('bongo_checkout_payment_method_load') != undefined) {
18
  $('bongo_checkout_payment_method_load').show();
19
  } else if ($('checkout-payment-method-load') != undefined) {
@@ -68,32 +69,108 @@ function bongoUpdateCheckout() {
68
  }
69
  }
70
 
71
- if ($('onestepcheckout-form') != undefined && $('bongo_form') != undefined) {
72
- $('billing:country_id').observe('change', bongoUpdateCheckout);
73
- $('billing:use_for_shipping_yes').observe('change', bongoUpdateCheckout);
74
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  if ($('shipping:same_as_billing') != undefined) {
77
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
78
  }
79
 
80
  bongoUpdateCheckout();
81
 
 
 
82
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
83
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
84
  $('onestepcheckout-place-order').hide();
85
  $('bongo-onestepcheckout-place-order').observe('click', function() {
86
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
89
- $('bongo_form').submit();
 
 
 
 
 
90
 
91
  return false;
92
  } else {
93
  $('onestepcheckout-place-order').triggerEvent('click');
 
 
94
  }
95
-
96
- return false;
97
  });
98
  }
99
  //]]>
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
13
+ var __bongo_fetch_shipping_country_timeout;
14
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
 
16
  function bongoUpdateCheckout() {
17
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
 
 
18
  if ($('bongo_checkout_payment_method_load') != undefined) {
19
  $('bongo_checkout_payment_method_load').show();
20
  } else if ($('checkout-payment-method-load') != undefined) {
69
  }
70
  }
71
 
72
+ function bongoUpdateShippingCountry() {
73
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
74
+
75
+ bongoUpdateCheckout();
76
+ }
77
+
78
+ function bongoFetchShippingCountry() {
79
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
80
+
81
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>')) {
82
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
83
+
84
+ return false;
85
+ }
86
+
87
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
88
+ method: 'get',
89
+ onComplete: function(xhr) {
90
+ __bongo_country_id = xhr.responseText;
91
+
92
+ bongoUpdateCheckout();
93
+ }
94
+ });
95
+ }
96
+
97
+ function bongoCheckSaveStatus () {
98
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
99
+
100
+ if (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>') {
101
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
102
+ method: 'get',
103
+ onComplete: function(xhr) {
104
+ $('bongo_loading_div').update(xhr.responseText);
105
+ $('bongo_form').submit();
106
+ }
107
+ });
108
+ } else {
109
+ setTimeout(bongoCheckSaveStatus, '500');
110
+ }
111
+ }
112
+
113
+ if ($('onestepcheckout-form') != undefined) {
114
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
115
+ $('shipping:country_id').observe('update', bongoFetchShippingCountry);
116
+ $('billing:use_for_shipping_yes').observe('change', function () {
117
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
118
+ });
119
+ $('billing-address-select').observe('change', function () {
120
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
121
+ });
122
+ $('shipping-address-select').observe('change', function () {
123
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
124
+ });
125
 
126
  if ($('shipping:same_as_billing') != undefined) {
127
+ $('shipping:same_as_billing').observe('change', function () {
128
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
129
+ });
130
  }
131
 
132
  bongoUpdateCheckout();
133
 
134
+ var bongo_already_placing_order = false;
135
+
136
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
137
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
138
  $('onestepcheckout-place-order').hide();
139
  $('bongo-onestepcheckout-place-order').observe('click', function() {
140
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
141
+ if (bongo_already_placing_order) {
142
+ return false;
143
+ }
144
+
145
+ // First validate the form
146
+ var form = new VarienForm('onestepcheckout-form');
147
+
148
+ if(!form.validator.validate()) {
149
+ return false;
150
+ }
151
+
152
+ bongo_already_placing_order = true;
153
+
154
+ var submitelement = $('bongo-onestepcheckout-place-order');
155
+
156
+ var loaderelement = new Element('div').addClassName('onestepcheckout-place-order-loading').update('Please wait, processing your order...');
157
+
158
+ submitelement.parentNode.appendChild(loaderelement);
159
 
160
+ /* Disable button to avoid multiple clicks */
161
+ submitelement.removeClassName('orange').addClassName('grey');
162
+ submitelement.disabled = true;
163
+
164
+ get_save_billing_function('/onestepcheckout/ajax/save_billing/', '/onestepcheckout/ajax/set_methods_separate/', false)();
165
+
166
+ setTimeout(bongoCheckSaveStatus, '500');
167
 
168
  return false;
169
  } else {
170
  $('onestepcheckout-place-order').triggerEvent('click');
171
+
172
+ return false;
173
  }
 
 
174
  });
175
  }
176
  //]]>
app/design/frontend/enterprise/default/layout/bongointernational.xml CHANGED
@@ -29,18 +29,16 @@
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
37
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
38
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
39
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
40
  </onestepcheckout_index_index>
41
 
42
  <firecheckout_index_index>
43
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
44
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
45
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
46
  </firecheckout_index_index>
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
+ <block type="bongointernational/checkout_shipping_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
 
37
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
38
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
39
  </onestepcheckout_index_index>
40
 
41
  <firecheckout_index_index>
 
42
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
43
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
44
  </firecheckout_index_index>
app/design/frontend/enterprise/default/template/bongointernational/checkout/form.phtml CHANGED
@@ -20,27 +20,27 @@ if ($this->getIsEnabled ()) :
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
- <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
- <?php $split_options = ''; $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); ?>
30
- <?php if (isset($options['options']) && count($options['options'])>0): ?>
31
- <?php $o=0; foreach ($options['options'] as $option): ?>
32
- <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
- <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
- <?php endforeach; ?>
35
- <?php endif; ?>
36
- <?php endforeach; ?>
37
- <?php endif; ?>
38
- <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
39
- <?php if (!empty($split_options[0])): ?>
40
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
41
- <?php endif; ?>
42
- <?php if (!empty($split_options[1])): ?>
43
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
 
 
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
+ <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
+ <?php $split_options = ''; $options = $this->getItemOptions($item->getProduct()); ?>
30
+ <?php if (!empty($options) && count($options)>0): ?>
31
+ <?php $o=0; foreach ($options as $option): ?>
32
+ <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
+ <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
+ <?php endforeach; ?>
35
+ <?php endif; ?>
36
+ <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
37
+ <?php if (!empty($split_options[0])): ?>
 
 
38
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
39
+ <?php endif; ?>
40
+ <?php if (!empty($split_options[1])): ?>
41
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
42
+ <?php endif; ?>
43
+ <?php endforeach; ?>
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
app/design/frontend/enterprise/default/template/bongointernational/compatibility/checkout/firecheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -10,6 +11,8 @@
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int;
 
 
13
 
14
  function bongoHideCheckoutReview(direct) {
15
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
@@ -27,10 +30,31 @@ function bongoHideCheckoutReview(direct) {
27
  }
28
  }
29
 
30
- function bongoUpdateCheckout() {
31
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
 
34
  if ($('bongo_checkout_payment_method_load') != undefined) {
35
  $('bongo_checkout_payment_method_load').show();
36
  } else {
@@ -83,19 +107,61 @@ function bongoUpdateCheckout() {
83
  }
84
  }
85
 
86
- if ($('firecheckout-form') != undefined && $('bongo_form') != undefined) {
87
- $('billing:country_id').observe('change', bongoUpdateCheckout);
88
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
89
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  bongoUpdateCheckout();
 
 
92
 
93
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
94
  $$('#review-buttons-container button').first().observe('click', function() {
95
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
96
 
97
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
98
- $('bongo_form').submit();
 
 
 
 
 
 
 
 
 
99
 
100
  return false;
101
  } else {
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
11
  <script type="text/javascript">
12
  //<![CDATA[
13
  var __bongo_hide_checkout_review_int;
14
+ var __bongo_fetch_shipping_country_timeout;
15
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
16
 
17
  function bongoHideCheckoutReview(direct) {
18
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
30
  }
31
  }
32
 
33
+ function bongoUpdateShippingCountry() {
34
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
35
+
36
+ bongoUpdateCheckout();
37
+ }
38
+
39
+ function bongoFetchShippingCountry() {
40
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || $('firecheckout-spinner') != undefined) {
41
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
42
+
43
+ return false;
44
+ }
45
+
46
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
47
+ method: 'get',
48
+ onComplete: function(xhr) {
49
+ __bongo_country_id = xhr.responseText;
50
+
51
+ bongoUpdateCheckout();
52
+ }
53
+ });
54
+ }
55
 
56
+ function bongoUpdateCheckout() {
57
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
58
  if ($('bongo_checkout_payment_method_load') != undefined) {
59
  $('bongo_checkout_payment_method_load').show();
60
  } else {
107
  }
108
  }
109
 
110
+ function bongoCheckSaveStatus () {
111
+ if($('firecheckout-spinner') != undefined) {
112
+ setTimeout(bongoCheckSaveStatus, '500');
113
+ } else {
114
+ checkout.setLoadWaiting(true);
115
+ $('review-please-wait').show();
116
+
117
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
118
+ method: 'get',
119
+ onComplete: function(xhr) {
120
+ $('bongo_loading_div').update(xhr.responseText);
121
+ $('bongo_form').submit();
122
+ }
123
+ });
124
+ }
125
+ }
126
+
127
+ if ($('firecheckout-form') != undefined) {
128
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
129
+ $('shipping:country_id').observe('change', bongoUpdateShippingCountry);
130
+ $('shipping:same_as_billing').observe('change', function () {
131
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
132
+ });
133
+ $('billing-address-select').observe('change', function () {
134
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
135
+ });
136
+ $('shipping-address-select').observe('change', function () {
137
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
138
+ });
139
 
140
  bongoUpdateCheckout();
141
+
142
+ var bongo_already_placing_order = false;
143
 
144
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
145
  $$('#review-buttons-container button').first().observe('click', function() {
146
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
147
+ if (bongo_already_placing_order) {
148
+ return false;
149
+ }
150
+
151
+ // First validate the form
152
+ var form = new VarienForm('firecheckout-form');
153
 
154
+ if(!form.validator.validate()) {
155
+ return false;
156
+ }
157
+
158
+ bongo_already_placing_order = true;
159
+
160
+ checkout.update(checkout.urls.billing_address, {
161
+ review: 1
162
+ });
163
+
164
+ setTimeout(bongoCheckSaveStatus, '500');
165
 
166
  return false;
167
  } else {
app/design/frontend/enterprise/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -9,11 +10,11 @@
9
  <script type="text/javascript">
10
  //<![CDATA[
11
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
 
 
12
 
13
  function bongoUpdateCheckout() {
14
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
-
16
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
17
  if ($('bongo_checkout_payment_method_load') != undefined) {
18
  $('bongo_checkout_payment_method_load').show();
19
  } else if ($('checkout-payment-method-load') != undefined) {
@@ -68,32 +69,108 @@ function bongoUpdateCheckout() {
68
  }
69
  }
70
 
71
- if ($('onestepcheckout-form') != undefined && $('bongo_form') != undefined) {
72
- $('billing:country_id').observe('change', bongoUpdateCheckout);
73
- $('billing:use_for_shipping_yes').observe('change', bongoUpdateCheckout);
74
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  if ($('shipping:same_as_billing') != undefined) {
77
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
78
  }
79
 
80
  bongoUpdateCheckout();
81
 
 
 
82
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
83
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
84
  $('onestepcheckout-place-order').hide();
85
  $('bongo-onestepcheckout-place-order').observe('click', function() {
86
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
89
- $('bongo_form').submit();
 
 
 
 
 
90
 
91
  return false;
92
  } else {
93
  $('onestepcheckout-place-order').triggerEvent('click');
 
 
94
  }
95
-
96
- return false;
97
  });
98
  }
99
  //]]>
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
13
+ var __bongo_fetch_shipping_country_timeout;
14
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
 
16
  function bongoUpdateCheckout() {
17
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
 
 
18
  if ($('bongo_checkout_payment_method_load') != undefined) {
19
  $('bongo_checkout_payment_method_load').show();
20
  } else if ($('checkout-payment-method-load') != undefined) {
69
  }
70
  }
71
 
72
+ function bongoUpdateShippingCountry() {
73
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
74
+
75
+ bongoUpdateCheckout();
76
+ }
77
+
78
+ function bongoFetchShippingCountry() {
79
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
80
+
81
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>')) {
82
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
83
+
84
+ return false;
85
+ }
86
+
87
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
88
+ method: 'get',
89
+ onComplete: function(xhr) {
90
+ __bongo_country_id = xhr.responseText;
91
+
92
+ bongoUpdateCheckout();
93
+ }
94
+ });
95
+ }
96
+
97
+ function bongoCheckSaveStatus () {
98
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
99
+
100
+ if (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>') {
101
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
102
+ method: 'get',
103
+ onComplete: function(xhr) {
104
+ $('bongo_loading_div').update(xhr.responseText);
105
+ $('bongo_form').submit();
106
+ }
107
+ });
108
+ } else {
109
+ setTimeout(bongoCheckSaveStatus, '500');
110
+ }
111
+ }
112
+
113
+ if ($('onestepcheckout-form') != undefined) {
114
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
115
+ $('shipping:country_id').observe('update', bongoFetchShippingCountry);
116
+ $('billing:use_for_shipping_yes').observe('change', function () {
117
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
118
+ });
119
+ $('billing-address-select').observe('change', function () {
120
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
121
+ });
122
+ $('shipping-address-select').observe('change', function () {
123
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
124
+ });
125
 
126
  if ($('shipping:same_as_billing') != undefined) {
127
+ $('shipping:same_as_billing').observe('change', function () {
128
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
129
+ });
130
  }
131
 
132
  bongoUpdateCheckout();
133
 
134
+ var bongo_already_placing_order = false;
135
+
136
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
137
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
138
  $('onestepcheckout-place-order').hide();
139
  $('bongo-onestepcheckout-place-order').observe('click', function() {
140
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
141
+ if (bongo_already_placing_order) {
142
+ return false;
143
+ }
144
+
145
+ // First validate the form
146
+ var form = new VarienForm('onestepcheckout-form');
147
+
148
+ if(!form.validator.validate()) {
149
+ return false;
150
+ }
151
+
152
+ bongo_already_placing_order = true;
153
+
154
+ var submitelement = $('bongo-onestepcheckout-place-order');
155
+
156
+ var loaderelement = new Element('div').addClassName('onestepcheckout-place-order-loading').update('Please wait, processing your order...');
157
+
158
+ submitelement.parentNode.appendChild(loaderelement);
159
 
160
+ /* Disable button to avoid multiple clicks */
161
+ submitelement.removeClassName('orange').addClassName('grey');
162
+ submitelement.disabled = true;
163
+
164
+ get_save_billing_function('/onestepcheckout/ajax/save_billing/', '/onestepcheckout/ajax/set_methods_separate/', false)();
165
+
166
+ setTimeout(bongoCheckSaveStatus, '500');
167
 
168
  return false;
169
  } else {
170
  $('onestepcheckout-place-order').triggerEvent('click');
171
+
172
+ return false;
173
  }
 
 
174
  });
175
  }
176
  //]]>
app/design/frontend/rwd/default/layout/bongointernational.xml CHANGED
@@ -29,18 +29,16 @@
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
37
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
38
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
39
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
40
  </onestepcheckout_index_index>
41
 
42
  <firecheckout_index_index>
43
- <block type="bongointernational/checkout_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
44
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
45
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
46
  </firecheckout_index_index>
29
  </checkout_cart_index>
30
 
31
  <checkout_onepage_shippingmethod>
32
+ <block type="bongointernational/checkout_shipping_form" name="checkout.onepage.shipping_method.bongointernational.checkout.form" output="toHtml" template="bongointernational/checkout/form.phtml" before="-" />
33
  <block type="bongointernational/checkout_redirect" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.redirect" output="toHtml" template="bongointernational/checkout/redirect.phtml" />
34
  </checkout_onepage_shippingmethod>
35
 
36
  <onestepcheckout_index_index>
 
37
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
38
  <block type="bongointernational/compatibility_checkout_onestepcheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.onestepcheckout" output="toHtml" template="bongointernational/compatibility/checkout/onestepcheckout.phtml" />
39
  </onestepcheckout_index_index>
40
 
41
  <firecheckout_index_index>
 
42
  <block type="bongointernational/compatibility_checkout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility" output="toHtml" template="bongointernational/compatibility/checkout.phtml" />
43
  <block type="bongointernational/compatibility_checkout_firecheckout" after="checkout.onepage.shipping_method.bongointernational.checkout.form" name="checkout.onepage.shipping_method.bongointernational.compatibility.firecheckout" output="toHtml" template="bongointernational/compatibility/checkout/firecheckout.phtml" />
44
  </firecheckout_index_index>
app/design/frontend/rwd/default/template/bongointernational/checkout/form.phtml CHANGED
@@ -20,27 +20,27 @@ if ($this->getIsEnabled ()) :
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
- <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
- <?php $split_options = ''; $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); ?>
30
- <?php if (isset($options['options']) && count($options['options'])>0): ?>
31
- <?php $o=0; foreach ($options['options'] as $option): ?>
32
- <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
- <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
- <?php endforeach; ?>
35
- <?php endif; ?>
36
- <?php endforeach; ?>
37
- <?php endif; ?>
38
- <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
39
- <?php if (!empty($split_options[0])): ?>
40
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
41
- <?php endif; ?>
42
- <?php if (!empty($split_options[1])): ?>
43
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
 
 
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
20
  <input type="hidden" name="CUSTOM_ORDER_2" value="<?php echo $this->getCustomerId(); ?>" />
21
  <input type="hidden" name="CUSTOM_ORDER_3" value="" />
22
  <?php if ($this->getItems()): ?>
23
+ <?php $i=0; foreach ($this->getItems() as $item): $i++; ?>
24
  <input type="hidden" name="PRODUCT_ID_<?php echo $i; ?>" value="<?php echo $item->getSku(); ?>" />
25
  <input type="hidden" name="PRODUCT_NAME_<?php echo $i; ?>" value="<?php echo $item->getName(); ?>" />
26
  <input type="hidden" name="PRODUCT_PRICE_<?php echo $i; ?>" value="<?php echo $item->getPrice (); ?>" />
27
  <input type="hidden" name="PRODUCT_Q_<?php echo $i; ?>" value="<?php echo $item->getQty(); ?>" />
28
  <input type="hidden" name="PRODUCT_SHIPPING_<?php echo $i; ?>" value="0.00" />
29
+ <?php $split_options = ''; $options = $this->getItemOptions($item->getProduct()); ?>
30
+ <?php if (!empty($options) && count($options)>0): ?>
31
+ <?php $o=0; foreach ($options as $option): ?>
32
+ <?php if (empty($option['label']) && empty($option['value'])) { continue; } ?>
33
+ <?php $split_options .= "{$option['label']}: {$option['value']}; "; ?>
34
+ <?php endforeach; ?>
35
+ <?php endif; ?>
36
+ <?php $split_options = !empty($split_options) ? str_split(strip_tags(substr($split_options, 0, -2)), 330) : array(); ?>
37
+ <?php if (!empty($split_options[0])): ?>
 
 
38
  <input type="hidden" name="PRODUCT_CUSTOM_1_<?php echo $i; ?>" value="<?php echo $split_options[0]; ?>" />
39
+ <?php endif; ?>
40
+ <?php if (!empty($split_options[1])): ?>
41
  <input type="hidden" name="PRODUCT_CUSTOM_2_<?php echo $i; ?>" value="<?php echo $split_options[1]; ?>" />
42
+ <?php endif; ?>
43
+ <?php endforeach; ?>
44
  <?php endif; ?>
45
  <input type="hidden" name="ORDER_CURRENCY" value="<?php echo $this->getCurrencyCode(); ?>" />
46
  <input type="hidden" name="CUST_FIRST_NAME" value="<?php echo $this->getBillingAddress()->getFirstname(); ?>" />
app/design/frontend/rwd/default/template/bongointernational/compatibility/checkout/firecheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -10,6 +11,8 @@
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int;
 
 
13
 
14
  function bongoHideCheckoutReview(direct) {
15
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
@@ -27,10 +30,31 @@ function bongoHideCheckoutReview(direct) {
27
  }
28
  }
29
 
30
- function bongoUpdateCheckout() {
31
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
 
34
  if ($('bongo_checkout_payment_method_load') != undefined) {
35
  $('bongo_checkout_payment_method_load').show();
36
  } else {
@@ -83,19 +107,61 @@ function bongoUpdateCheckout() {
83
  }
84
  }
85
 
86
- if ($('firecheckout-form') != undefined && $('bongo_form') != undefined) {
87
- $('billing:country_id').observe('change', bongoUpdateCheckout);
88
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
89
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  bongoUpdateCheckout();
 
 
92
 
93
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
94
  $$('#review-buttons-container button').first().observe('click', function() {
95
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
96
 
97
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
98
- $('bongo_form').submit();
 
 
 
 
 
 
 
 
 
99
 
100
  return false;
101
  } else {
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
11
  <script type="text/javascript">
12
  //<![CDATA[
13
  var __bongo_hide_checkout_review_int;
14
+ var __bongo_fetch_shipping_country_timeout;
15
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
16
 
17
  function bongoHideCheckoutReview(direct) {
18
  if (direct != true && checkout.loadWaiting != undefined && checkout.loadWaiting == true) {
30
  }
31
  }
32
 
33
+ function bongoUpdateShippingCountry() {
34
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && $('shipping:same_as_billing').checked != true ? $('shipping:country_id').value : $('billing:country_id').value;
35
+
36
+ bongoUpdateCheckout();
37
+ }
38
+
39
+ function bongoFetchShippingCountry() {
40
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || $('firecheckout-spinner') != undefined) {
41
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
42
+
43
+ return false;
44
+ }
45
+
46
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
47
+ method: 'get',
48
+ onComplete: function(xhr) {
49
+ __bongo_country_id = xhr.responseText;
50
+
51
+ bongoUpdateCheckout();
52
+ }
53
+ });
54
+ }
55
 
56
+ function bongoUpdateCheckout() {
57
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
58
  if ($('bongo_checkout_payment_method_load') != undefined) {
59
  $('bongo_checkout_payment_method_load').show();
60
  } else {
107
  }
108
  }
109
 
110
+ function bongoCheckSaveStatus () {
111
+ if($('firecheckout-spinner') != undefined) {
112
+ setTimeout(bongoCheckSaveStatus, '500');
113
+ } else {
114
+ checkout.setLoadWaiting(true);
115
+ $('review-please-wait').show();
116
+
117
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
118
+ method: 'get',
119
+ onComplete: function(xhr) {
120
+ $('bongo_loading_div').update(xhr.responseText);
121
+ $('bongo_form').submit();
122
+ }
123
+ });
124
+ }
125
+ }
126
+
127
+ if ($('firecheckout-form') != undefined) {
128
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
129
+ $('shipping:country_id').observe('change', bongoUpdateShippingCountry);
130
+ $('shipping:same_as_billing').observe('change', function () {
131
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
132
+ });
133
+ $('billing-address-select').observe('change', function () {
134
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
135
+ });
136
+ $('shipping-address-select').observe('change', function () {
137
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
138
+ });
139
 
140
  bongoUpdateCheckout();
141
+
142
+ var bongo_already_placing_order = false;
143
 
144
  $$('#review-buttons-container button').first().writeAttribute('onclick', null);
145
  $$('#review-buttons-container button').first().observe('click', function() {
146
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
147
+ if (bongo_already_placing_order) {
148
+ return false;
149
+ }
150
+
151
+ // First validate the form
152
+ var form = new VarienForm('firecheckout-form');
153
 
154
+ if(!form.validator.validate()) {
155
+ return false;
156
+ }
157
+
158
+ bongo_already_placing_order = true;
159
+
160
+ checkout.update(checkout.urls.billing_address, {
161
+ review: 1
162
+ });
163
+
164
+ setTimeout(bongoCheckSaveStatus, '500');
165
 
166
  return false;
167
  } else {
app/design/frontend/rwd/default/template/bongointernational/compatibility/checkout/onestepcheckout.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php if ($this->getIsEnabled ()) : ?>
 
2
  <style type="text/css">
3
  <!--
4
  #bongo_checkout_payment_method_load {
@@ -9,11 +10,11 @@
9
  <script type="text/javascript">
10
  //<![CDATA[
11
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
 
 
12
 
13
  function bongoUpdateCheckout() {
14
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
-
16
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
17
  if ($('bongo_checkout_payment_method_load') != undefined) {
18
  $('bongo_checkout_payment_method_load').show();
19
  } else if ($('checkout-payment-method-load') != undefined) {
@@ -68,32 +69,108 @@ function bongoUpdateCheckout() {
68
  }
69
  }
70
 
71
- if ($('onestepcheckout-form') != undefined && $('bongo_form') != undefined) {
72
- $('billing:country_id').observe('change', bongoUpdateCheckout);
73
- $('billing:use_for_shipping_yes').observe('change', bongoUpdateCheckout);
74
- $('shipping:country_id').observe('change', bongoUpdateCheckout);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  if ($('shipping:same_as_billing') != undefined) {
77
- $('shipping:same_as_billing').observe('change', bongoUpdateCheckout);
 
 
78
  }
79
 
80
  bongoUpdateCheckout();
81
 
 
 
82
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
83
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
84
  $('onestepcheckout-place-order').hide();
85
  $('bongo-onestepcheckout-place-order').observe('click', function() {
86
- var country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
- if (__bongo_allowed_countries.indexOf(country_id) !== -1) {
89
- $('bongo_form').submit();
 
 
 
 
 
90
 
91
  return false;
92
  } else {
93
  $('onestepcheckout-place-order').triggerEvent('click');
 
 
94
  }
95
-
96
- return false;
97
  });
98
  }
99
  //]]>
1
  <?php if ($this->getIsEnabled ()) : ?>
2
+ <div id="bongo_loading_div"></div>
3
  <style type="text/css">
4
  <!--
5
  #bongo_checkout_payment_method_load {
10
  <script type="text/javascript">
11
  //<![CDATA[
12
  var __bongo_hide_checkout_review_int = setInterval(bongoUpdateCheckout, 500);
13
+ var __bongo_fetch_shipping_country_timeout;
14
+ var __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
15
 
16
  function bongoUpdateCheckout() {
17
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
 
 
18
  if ($('bongo_checkout_payment_method_load') != undefined) {
19
  $('bongo_checkout_payment_method_load').show();
20
  } else if ($('checkout-payment-method-load') != undefined) {
69
  }
70
  }
71
 
72
+ function bongoUpdateShippingCountry() {
73
+ __bongo_country_id = $('shipping:country_id') != undefined && $('shipping:country_id').value != null && (($('shipping:same_as_billing') && $('shipping:same_as_billing').checked != true) || ($('billing:use_for_shipping_yes') && $('billing:use_for_shipping_yes').checked != true)) ? $('shipping:country_id').value : $('billing:country_id').value;
74
+
75
+ bongoUpdateCheckout();
76
+ }
77
+
78
+ function bongoFetchShippingCountry() {
79
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
80
+
81
+ if ((checkout.loadWaiting != undefined && checkout.loadWaiting == true) || (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>')) {
82
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
83
+
84
+ return false;
85
+ }
86
+
87
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax/shippingCountry', array('_secure' => true)) ?>', {
88
+ method: 'get',
89
+ onComplete: function(xhr) {
90
+ __bongo_country_id = xhr.responseText;
91
+
92
+ bongoUpdateCheckout();
93
+ }
94
+ });
95
+ }
96
+
97
+ function bongoCheckSaveStatus () {
98
+ var shipment_methods = $$('div.onestepcheckout-shipping-method-block')[0];
99
+
100
+ if (typeof shipment_methods != 'undefined' && shipment_methods.innerHTML != '<div class="loading-ajax">&nbsp;</div>') {
101
+ new Ajax.Request('<?php echo $this->getUrl('bongointernational/ajax', array('_secure' => true)) ?>', {
102
+ method: 'get',
103
+ onComplete: function(xhr) {
104
+ $('bongo_loading_div').update(xhr.responseText);
105
+ $('bongo_form').submit();
106
+ }
107
+ });
108
+ } else {
109
+ setTimeout(bongoCheckSaveStatus, '500');
110
+ }
111
+ }
112
+
113
+ if ($('onestepcheckout-form') != undefined) {
114
+ $('billing:country_id').observe('change', bongoUpdateShippingCountry);
115
+ $('shipping:country_id').observe('update', bongoFetchShippingCountry);
116
+ $('billing:use_for_shipping_yes').observe('change', function () {
117
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
118
+ });
119
+ $('billing-address-select').observe('change', function () {
120
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
121
+ });
122
+ $('shipping-address-select').observe('change', function () {
123
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
124
+ });
125
 
126
  if ($('shipping:same_as_billing') != undefined) {
127
+ $('shipping:same_as_billing').observe('change', function () {
128
+ __bongo_fetch_shipping_country_timeout = setTimeout(bongoFetchShippingCountry, 500);
129
+ });
130
  }
131
 
132
  bongoUpdateCheckout();
133
 
134
+ var bongo_already_placing_order = false;
135
+
136
  $$('div.onestepcheckout-place-order').first().update($$('div.onestepcheckout-place-order').first().innerHTML+$$('div.onestepcheckout-place-order').first().innerHTML);
137
  $$('div.onestepcheckout-place-order button').first().setAttribute('id','bongo-onestepcheckout-place-order');
138
  $('onestepcheckout-place-order').hide();
139
  $('bongo-onestepcheckout-place-order').observe('click', function() {
140
+ if (__bongo_allowed_countries.indexOf(__bongo_country_id) !== -1) {
141
+ if (bongo_already_placing_order) {
142
+ return false;
143
+ }
144
+
145
+ // First validate the form
146
+ var form = new VarienForm('onestepcheckout-form');
147
+
148
+ if(!form.validator.validate()) {
149
+ return false;
150
+ }
151
+
152
+ bongo_already_placing_order = true;
153
+
154
+ var submitelement = $('bongo-onestepcheckout-place-order');
155
+
156
+ var loaderelement = new Element('div').addClassName('onestepcheckout-place-order-loading').update('Please wait, processing your order...');
157
+
158
+ submitelement.parentNode.appendChild(loaderelement);
159
 
160
+ /* Disable button to avoid multiple clicks */
161
+ submitelement.removeClassName('orange').addClassName('grey');
162
+ submitelement.disabled = true;
163
+
164
+ get_save_billing_function('/onestepcheckout/ajax/save_billing/', '/onestepcheckout/ajax/set_methods_separate/', false)();
165
+
166
+ setTimeout(bongoCheckSaveStatus, '500');
167
 
168
  return false;
169
  } else {
170
  $('onestepcheckout-place-order').triggerEvent('click');
171
+
172
+ return false;
173
  }
 
 
174
  });
175
  }
176
  //]]>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>WhiteSunrise_Bongo_International</name>
4
- <version>1.2.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
@@ -12,11 +12,16 @@
12
  Through Magento you can easily integrate Bongo International and enable your business to reach international consumers through your existing e-commerce infrastructure.&#xD;
13
  &#xD;
14
  Bongo International is compliant with the mandatory Export Administration Regulations (EAR) screens individual products against the Commerce Control List (CCL) and the required Denied Party Lists. Bongo International can also ensure you maintain compliance with any licensing agreements that prohibit sales in specific markets while allowing the consumer to complete the purchase of approved items.</description>
15
- <notes>New and improved module with full International support for Bongo Checkout and Bongo Export</notes>
 
 
 
 
 
16
  <authors><author><name>Brent Wierson</name><user>WhiteSunriseLLC</user><email>brent@whitesunrise.com</email></author></authors>
17
- <date>2015-04-10</date>
18
- <time>02:05:31</time>
19
- <contents><target name="magecommunity"><dir name="Bongo"><dir name="International"><dir name="Block"><dir name="Adminhtml"><file name="CallbackUrl.php" hash="5290936e66e3846f4fc2f5a7ca40aa38"/><file name="ContinueUrl.php" hash="ee226525448857d9d40da8bfb5dfcb91"/><file name="ExportButton.php" hash="666ff2acdc819665ad8de0d48913b75d"/><dir name="Sales"><dir name="Order"><dir name="View"><file name="Bongointernational.php" hash="11040a99ae4ee3914304e0baf0e305df"/></dir></dir></dir><file name="SyncButton.php" hash="e172b0b96e4a4f61d5f2d3e99b0fe76d"/></dir><dir name="Checkout"><file name="Form.php" hash="94fd059fe3407926bcab9ded49f981d6"/><file name="Link.php" hash="9a02ce1f353ebcd2480bf0b397719d37"/><file name="Redirect.php" hash="218db381a90ffc7e1dae375d4ecbb1ec"/></dir><dir name="Compatibility"><dir name="Checkout"><file name="Firecheckout.php" hash="d3450c39bf6235d15c61807ce116ec08"/><file name="Onestepcheckout.php" hash="173e2b270fa3a1e945700d7a62179748"/></dir><file name="Checkout.php" hash="2486cf4eeb4a3c4bc6183995aa45bdb6"/></dir><dir name="Currency"><dir name="Selector"><file name="Default.php" hash="f6b19b846423a018fe07ee5a3fde5984"/><file name="Experimental.php" hash="3252dc5c41b3d9dd890bf33a8c48ea6d"/><file name="Lightbox.php" hash="ca80c10dbcd3f8bd7ddf12eb8de4140b"/></dir><file name="Selector.php" hash="d94ac459bf1c510b17bac8e64a75e4af"/></dir><dir name="Extend"><file name="Code.php" hash="84d209da366b40651fbfa79280262b32"/></dir><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="73f1e20ae16af82130a113b608ef1b6b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="92f9465b1f68c6e2f52ec0d1f7b4c716"/></dir><dir name="Model"><dir name="Adminhtml"><file name="DefaultCountry.php" hash="9dcb9b1dd7eab94f30a1b35b4aec1a37"/><file name="IntegrationType.php" hash="c047c929783ec4296cda0665c6d2efe4"/><file name="ShippingMethods.php" hash="9ab5e69f0941d8805a1e49205019ea2a"/><file name="ShippingType.php" hash="443ad5f9384cde422a649ca0f8adeccf"/><file name="SyncFrequency.php" hash="1ca27fb9781b5c5047b5e6ef7140ba49"/><file name="TransferType.php" hash="6ff66070f8805cb3722d7c9e30c457e1"/></dir><dir name="Currency"><file name="Cache.php" hash="e6096dde030b37743ba5d990f328ef11"/><file name="Converter.php" hash="8e9d7cbc6ed05e1eac85f07cd83f32b6"/></dir><dir name="Order"><file name="Observer.php" hash="87487f4a643a1f86bdd37afe518812b9"/></dir><dir name="Payment"><file name="Standard.php" hash="3552b4b3cd0aa364d0b963ded947df5a"/></dir><dir name="Products"><file name="Status.php" hash="be6cfa2d92b2764836ea069c82bfd209"/><file name="Sync.php" hash="9a9957b266262b769a4553961426fe06"/></dir><dir name="Resource"><dir name="Status"><file name="Collection.php" hash="e8d4a6e751e684b4cc9a45a35a3f5c52"/></dir><file name="Status.php" hash="7353c336eb441aa7fab9c7b344767002"/></dir><dir name="Shipping"><dir name="Carrier"><file name="Bongo.php" hash="07f2d31507b5078bcfbef0e6082e7668"/></dir><file name="Observer.php" hash="4f1349b995294414a641bc363176eb0c"/></dir><file name="Status.php" hash="1c1331a9db62758ececfaa9edaec3beb"/><dir name="Total"><dir name="Duty"><file name="Creditmemo.php" hash="6b8a267274df0cbe724a6a21ad2b861f"/><file name="Invoice.php" hash="6889ab8a0057396a38ca05de96d013a2"/><file name="Quote.php" hash="8d85ee6fb6914572e54844e1ee0c36ca"/></dir><dir name="Insurance"><file name="Creditmemo.php" hash="e919ac523d9ada44b94e41c0f6e776f3"/><file name="Invoice.php" hash="2fb37d3659ff234192ca22140bd1e022"/><file name="Quote.php" hash="70b636b4c0803b3f284c7ab524daf320"/></dir><dir name="Tax"><file name="Creditmemo.php" hash="f1fa4da1f5e4ac47dbcfaf8eb8d2260b"/><file name="Invoice.php" hash="d5cd8f8b6711fc6638296f87d2f572ee"/><file name="Quote.php" hash="670ef9ae51af0c2f95441883ef5f68ee"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="BongointernationalController.php" hash="fb4e6489602f6f70a4b6918a663c32c7"/></dir><file name="CallbackController.php" hash="d6ccc4fe498221884a267ddb0ef39631"/><file name="ContinueController.php" hash="0b40837383a135b8d2f66b657845c11f"/></dir><dir name="etc"><file name="config.xml" hash="a06a7f7eeb76a2728b6b16a7a9b666e8"/><file name="system.xml" hash="d18c0d7d11b8b196eccdd3a1d6799f47"/></dir><dir name="lib"><file name="IP2Location.php" hash="2b8784f65983552cda19e735f0ef04b0"/></dir><dir name="sql"><dir name="bongointernational_setup"><file name="mysql4-install-1.1.2.php" hash="2d1cbcd177693bc561666cffa4b87d1d"/><file name="mysql4-install-1.2.0.php" hash="52c96442a4009f361317cc008646d41f"/><file name="mysql4-install-1.2.1.php" hash="6c65e0c8c7f6920816e8bcfaa2020f5a"/><file name="mysql4-upgrade-1.1.2-1.2.0.php" hash="4380eefc4dd31fa6cd61346a7305a5f9"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="00f57868500ff2e938a21f73c1725dc9"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="aad9f9d702def856d335644274562ced"/></dir><dir name="template"><dir name="bongointernational"><dir name="sales"><dir name="order"><dir name="view"><file name="bongointernational.phtml" hash="1e321619509ed1638a183c037b1dfe9f"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="45bd8181e872fe7ea7acc1016a16a181"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="2d6d6ffe60341e83be63d1ddc9650681"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="3138e1fec28ec8a18137fec64431facd"/><file name="onestepcheckout.phtml" hash="3dc3a08095ac35279f589955a0ebcce8"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="45bd8181e872fe7ea7acc1016a16a181"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="2d6d6ffe60341e83be63d1ddc9650681"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="3138e1fec28ec8a18137fec64431facd"/><file name="onestepcheckout.phtml" hash="3dc3a08095ac35279f589955a0ebcce8"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="45bd8181e872fe7ea7acc1016a16a181"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="2d6d6ffe60341e83be63d1ddc9650681"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="3138e1fec28ec8a18137fec64431facd"/><file name="onestepcheckout.phtml" hash="3dc3a08095ac35279f589955a0ebcce8"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="45bd8181e872fe7ea7acc1016a16a181"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="2d6d6ffe60341e83be63d1ddc9650681"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="3138e1fec28ec8a18137fec64431facd"/><file name="onestepcheckout.phtml" hash="3dc3a08095ac35279f589955a0ebcce8"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bongo_International.xml" hash="937cffa1fcf11335588e6dfcb6d56599"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Bongo_International.csv" hash="e16501179306e2eb378b967e7a1571f4"/></dir></dir></target><target name="mage"><dir name="var"><dir name="bongointernational"><file name="IP2LOCATION-LITE-DB1.BIN" hash="bf12941352fbb1e6139f6203bed41166"/></dir></dir></target></contents>
20
  <compatible/>
21
- <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>libxml</name><min></min><max></max></extension><extension><name>soap</name><min></min><max></max></extension></required></dependencies>
22
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>WhiteSunrise_Bongo_International</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
12
  Through Magento you can easily integrate Bongo International and enable your business to reach international consumers through your existing e-commerce infrastructure.&#xD;
13
  &#xD;
14
  Bongo International is compliant with the mandatory Export Administration Regulations (EAR) screens individual products against the Commerce Control List (CCL) and the required Denied Party Lists. Bongo International can also ensure you maintain compliance with any licensing agreements that prohibit sales in specific markets while allowing the consumer to complete the purchase of approved items.</description>
15
+ <notes>- Numerous miscellaneous bug fixes&#xD;
16
+ - Added support for Magento Enterprise FPC&#xD;
17
+ - Added support for Amasty FPC&#xD;
18
+ - Added support for Lesti FPC&#xD;
19
+ - Added support for FireCheckout&#xD;
20
+ - Added support for OneStepCheckout</notes>
21
  <authors><author><name>Brent Wierson</name><user>WhiteSunriseLLC</user><email>brent@whitesunrise.com</email></author></authors>
22
+ <date>2016-04-12</date>
23
+ <time>17:43:28</time>
24
+ <contents><target name="magecommunity"><dir name="Bongo"><dir name="International"><dir name="Block"><dir name="Adminhtml"><file name="CallbackUrl.php" hash="5290936e66e3846f4fc2f5a7ca40aa38"/><file name="ContinueUrl.php" hash="ee226525448857d9d40da8bfb5dfcb91"/><file name="ExportButton.php" hash="666ff2acdc819665ad8de0d48913b75d"/><dir name="Sales"><dir name="Order"><dir name="View"><file name="Bongointernational.php" hash="11040a99ae4ee3914304e0baf0e305df"/></dir></dir></dir><file name="SyncButton.php" hash="e172b0b96e4a4f61d5f2d3e99b0fe76d"/></dir><dir name="Checkout"><file name="Form.php" hash="a80f14fe4acd9cad892b42a9965e4b6e"/><file name="Link.php" hash="9a02ce1f353ebcd2480bf0b397719d37"/><file name="Redirect.php" hash="218db381a90ffc7e1dae375d4ecbb1ec"/><dir name="Shipping"><file name="Form.php" hash="279aaeeff9775e98bae21e83b7bbb372"/></dir></dir><dir name="Compatibility"><dir name="Checkout"><file name="Firecheckout.php" hash="d3450c39bf6235d15c61807ce116ec08"/><file name="Onestepcheckout.php" hash="173e2b270fa3a1e945700d7a62179748"/></dir><file name="Checkout.php" hash="2486cf4eeb4a3c4bc6183995aa45bdb6"/></dir><dir name="Currency"><dir name="Selector"><file name="Default.php" hash="f6b19b846423a018fe07ee5a3fde5984"/><file name="Experimental.php" hash="3252dc5c41b3d9dd890bf33a8c48ea6d"/><file name="Lightbox.php" hash="ca80c10dbcd3f8bd7ddf12eb8de4140b"/></dir><file name="Selector.php" hash="00b4beb01a9ffd6a4e4099c5f10af375"/></dir><dir name="Extend"><file name="Code.php" hash="84d209da366b40651fbfa79280262b32"/></dir><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="94569b1e58634d6acf409e577f55d8ed"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="92f9465b1f68c6e2f52ec0d1f7b4c716"/></dir><dir name="Model"><dir name="Adminhtml"><file name="DefaultCountry.php" hash="9dcb9b1dd7eab94f30a1b35b4aec1a37"/><file name="IntegrationType.php" hash="c047c929783ec4296cda0665c6d2efe4"/><file name="ShippingMethods.php" hash="9ab5e69f0941d8805a1e49205019ea2a"/><file name="ShippingType.php" hash="443ad5f9384cde422a649ca0f8adeccf"/><file name="SyncFrequency.php" hash="1ca27fb9781b5c5047b5e6ef7140ba49"/><file name="TransferType.php" hash="6ff66070f8805cb3722d7c9e30c457e1"/></dir><dir name="Container"><file name="Abstract.php" hash="2da5318693744b80c54098569bdab9aa"/><dir name="Compatibility"><dir name="Checkout"><file name="Firecheckout.php" hash="c719c73e1bbb99ebe72ae4bc8e21206d"/><file name="Onestepcheckout.php" hash="abe7fdb401e348ad265de1944ccb5f36"/></dir></dir><dir name="Currency"><dir name="Selector"><file name="Experimental.php" hash="9dcedd1d8d25dcea1fd63f6206582d30"/><file name="Lightbox.php" hash="f8e3e63dadc9b934a18b1d34323747ee"/></dir></dir></dir><dir name="Currency"><file name="Cache.php" hash="e6096dde030b37743ba5d990f328ef11"/><file name="Converter.php" hash="8e9d7cbc6ed05e1eac85f07cd83f32b6"/></dir><dir name="Order"><file name="Observer.php" hash="87487f4a643a1f86bdd37afe518812b9"/></dir><dir name="Payment"><file name="Standard.php" hash="3552b4b3cd0aa364d0b963ded947df5a"/></dir><dir name="Products"><file name="Status.php" hash="be6cfa2d92b2764836ea069c82bfd209"/><file name="Sync.php" hash="9a9957b266262b769a4553961426fe06"/></dir><dir name="Resource"><dir name="Status"><file name="Collection.php" hash="e8d4a6e751e684b4cc9a45a35a3f5c52"/></dir><file name="Status.php" hash="7353c336eb441aa7fab9c7b344767002"/></dir><dir name="Shipping"><dir name="Carrier"><file name="Bongo.php" hash="596f772066fc22016ff7dd884627755c"/></dir><file name="Observer.php" hash="4f1349b995294414a641bc363176eb0c"/></dir><file name="Status.php" hash="1c1331a9db62758ececfaa9edaec3beb"/><dir name="Total"><dir name="Duty"><file name="Creditmemo.php" hash="6b8a267274df0cbe724a6a21ad2b861f"/><file name="Invoice.php" hash="6889ab8a0057396a38ca05de96d013a2"/><file name="Quote.php" hash="8d85ee6fb6914572e54844e1ee0c36ca"/></dir><dir name="Insurance"><file name="Creditmemo.php" hash="e919ac523d9ada44b94e41c0f6e776f3"/><file name="Invoice.php" hash="2fb37d3659ff234192ca22140bd1e022"/><file name="Quote.php" hash="70b636b4c0803b3f284c7ab524daf320"/></dir><dir name="Tax"><file name="Creditmemo.php" hash="f1fa4da1f5e4ac47dbcfaf8eb8d2260b"/><file name="Invoice.php" hash="d5cd8f8b6711fc6638296f87d2f572ee"/><file name="Quote.php" hash="670ef9ae51af0c2f95441883ef5f68ee"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="BongointernationalController.php" hash="fb4e6489602f6f70a4b6918a663c32c7"/></dir><file name="AjaxController.php" hash="94cefbddb50f646ba0e8532950fedca2"/><file name="CallbackController.php" hash="4e97cd43bf1b28b8150df8ee8a06a947"/><file name="ContinueController.php" hash="0b40837383a135b8d2f66b657845c11f"/></dir><dir name="etc"><file name="cache.xml" hash="981cfee0d8ed91c186223d81e88f4651"/><file name="config.xml" hash="3f3a1920f5f07e92fa9558eb573595fc"/><file name="system.xml" hash="d18c0d7d11b8b196eccdd3a1d6799f47"/></dir><dir name="lib"><file name="IP2LOCATION-LITE-DB1.BIN" hash="6edba0a11d672bfe3b13374a0de29b78"/><file name="IP2Location.php" hash="2b8784f65983552cda19e735f0ef04b0"/></dir><dir name="sql"><dir name="bongointernational_setup"><file name="mysql4-install-1.1.2.php" hash="2d1cbcd177693bc561666cffa4b87d1d"/><file name="mysql4-install-1.2.0.php" hash="52c96442a4009f361317cc008646d41f"/><file name="mysql4-install-1.2.1.php" hash="6c65e0c8c7f6920816e8bcfaa2020f5a"/><file name="mysql4-install-1.3.0.php" hash="6c65e0c8c7f6920816e8bcfaa2020f5a"/><file name="mysql4-upgrade-1.1.2-1.2.0.php" hash="4380eefc4dd31fa6cd61346a7305a5f9"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="00f57868500ff2e938a21f73c1725dc9"/><file name="mysql4-upgrade-1.2.1-1.3.0.php" hash="b13f06a13ade906840cda778b93da076"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="aad9f9d702def856d335644274562ced"/></dir><dir name="template"><dir name="bongointernational"><dir name="sales"><dir name="order"><dir name="view"><file name="bongointernational.phtml" hash="1e321619509ed1638a183c037b1dfe9f"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="d6f26d9d25a9a5276597d0d8b3dcee36"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="930282759522d2113fbb1c460b2cc57b"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="f84c6c18ff0aad17432f6666c25b8f05"/><file name="onestepcheckout.phtml" hash="6a5f094aa4c6912ffff6f2b8180a2d45"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="d6f26d9d25a9a5276597d0d8b3dcee36"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="930282759522d2113fbb1c460b2cc57b"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="f84c6c18ff0aad17432f6666c25b8f05"/><file name="onestepcheckout.phtml" hash="6a5f094aa4c6912ffff6f2b8180a2d45"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="d6f26d9d25a9a5276597d0d8b3dcee36"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="930282759522d2113fbb1c460b2cc57b"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="f84c6c18ff0aad17432f6666c25b8f05"/><file name="onestepcheckout.phtml" hash="6a5f094aa4c6912ffff6f2b8180a2d45"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><file name="bongointernational.xml" hash="d6f26d9d25a9a5276597d0d8b3dcee36"/></dir><dir name="template"><dir name="bongointernational"><dir name="checkout"><file name="form.phtml" hash="930282759522d2113fbb1c460b2cc57b"/><file name="link.phtml" hash="81fb5a1149cb06f615aab3a634b23b97"/><file name="redirect.phtml" hash="ef97d5bbfbccfb487c75f0ab85dff5da"/></dir><dir name="compatibility"><dir name="checkout"><file name="firecheckout.phtml" hash="f84c6c18ff0aad17432f6666c25b8f05"/><file name="onestepcheckout.phtml" hash="6a5f094aa4c6912ffff6f2b8180a2d45"/></dir><file name="checkout.phtml" hash="6e4b256505b2d84bfd555192e647bb23"/></dir><dir name="currency"><dir name="selector"><file name="default.phtml" hash="2417ed43105b87da8b01f9d6379e8a19"/><file name="experimental.phtml" hash="8dc21505a6e5e72c303f7c977f1ac2ae"/><file name="lightbox.phtml" hash="8df4b0087890a7944a0ea27d7c149625"/></dir></dir><dir name="extend"><file name="code.phtml" hash="e936bc61210d0e100065a2e6ff667699"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bongo_International.xml" hash="937cffa1fcf11335588e6dfcb6d56599"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Bongo_International.csv" hash="e16501179306e2eb378b967e7a1571f4"/></dir></dir></target></contents>
25
  <compatible/>
26
+ <dependencies><required><php><min>5.2.0</min><max>5.7.0</max></php><extension><name>libxml</name><min/><max/></extension><extension><name>soap</name><min/><max/></extension></required></dependencies>
27
  </package>
var/bongointernational/IP2LOCATION-LITE-DB1.BIN DELETED
Binary file