Giter Site home page Giter Site logo

checkitout's People

Contributors

andrewhowdencom avatar arollason avatar cyb3r avatar ivanchepurnyi avatar klierik avatar perichus avatar toonspinisaac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

checkitout's Issues

Lock the Magento Composer Installer dependency to the version '*'.

The only responsibility of the Magneto composer installer for this extension seems to be to ensure that the installer is deployed to the correct spot, the version '*' can be used, meaning any version of the composer installer.

The current version requirement (dev-master) conflicts with other, stable version requirements of the same package by other extensions.

when switching between a payment methods the the redirect url is not always retrieved via ajax

we have 2 payment methods on our site - sagepage direct and paypal

  • there is no form for paypal and it requires a redirect to a paymentRedirect url
  • there is a form for sagepay and it does a ajax post to the specified save url

Issue 1:
If a user goes to the checkout, selects the paypal payment method and then refreshes the page the checkout displays properly with the paypal payment method selected; however the checkout js object does not the correct paymentRedirect url (it has none at all).

Solution:
pass the paymentRedirect url in the config options for the chekout js object and then have the initialize method set it internally if present

Issue 2:
The payment.switchMethod method sets the paymentRedirect url to false on a switch; however if there is no form (as in the case of paypal) handleChange() only fires completely the first time.

After the first time the LastSubmittedValues match the values the getValues() - an empty hash.

This means that the payment change is not submitted and no paymentReditect url is received via ajax leaving the paymentRedirect url incorrectly as false

Major Bug - Payment cost is not updated

It seems that CheckItOut extension does not support Payment Method fees.

For example, Cash on Delivery cost is not added/removed from order totals, whenever user changes selected Payment/Shipping method. (I've tested it in three different magento websites)

Is this a bug or a feature that extension does not support. It's very important in my opinion. Payment method fees work ok with every onepagecheckout extension I've used. And of course, default magento onepagecheckout supports them.

Any ideas about this issue?

Replace EULA with OSL

In all PHP file headers, we need to replace EULA with OSL, as project got open sourced.

Unable to save admin settings in Magento 1.9.4+

It seems that the settings (in admin) cannot be saved in Magento version 1.9.3.4 above (tried it with 1.9.3.4 and 1.9.3.8). In version 1.9.3.0 saving the settings works correctly. Any idea's why it might be happening?

SUPEE-9767?

Are there any plans to include the SUPEE-9767 changes?

Currently formkey validation in e.g. OnepageController::savePayment etc. is missing.

The shipping_method step hash is calculated including rates that have been deleted

The saveBilling(others?) action always reloads the shippingMethods html because the second stepHash which is used for comparison contains deleted rates.

EcomDev_CheckItOut_OnepageController::saveBillingAction()
..
$result = $this->getOnepage()->saveBilling($data, $customerAddressId);

causes the current rates for the address to be deleted and new ones inserted.

In EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash()
..
in the loop over the rates collection I believe that it should do the following at the start:
if ($shippingRate->isDeleted()) {
continue;
}

(see Mage_Sales_Model_Quote_Address::getAllShippingRates() - or this function could be used instead)

see stack traces below:

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
shippingAddressId: 298

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
Array
(
[0] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[1] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[2] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[3] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[4] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[5] => Economy Delivery - Economy Delivery
)
#0 app/code/community/EcomDev/CheckItOut/Model/Hash/Quote/Abstract.php(70): EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate->getDataForHash()
#1 app/code/community/EcomDev/CheckItOut/Model/Hash.php(48): EcomDev_CheckItOut_Model_Hash_Quote_Abstract->getHash()
#2 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(131): EcomDev_CheckItOut_Model_Hash->getHash(Object(Mage_Sales_Model_Quote))
#3 app/code/core/Mage/Core/Controller/Varien/Action.php(407): EcomDev_CheckItOut_OnepageController->preDispatch()
#4 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('saveBilling')
#5 app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#6 app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#7 app/Mage.php(684): Mage_Core_Model_App->run(Array)
#8 index.php(122): Mage::run('', 'store')
#9 {main}

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
shippingAddressId: 298

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
Array
(
[0] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[1] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[2] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[3] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[4] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[5] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[6] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[7] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[8] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[9] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[10] => Economy Delivery - Economy Delivery
)
#0 app/code/community/EcomDev/CheckItOut/Model/Hash/Quote/Abstract.php(70): EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate->getDataForHash()
#1 app/code/community/EcomDev/CheckItOut/Model/Hash.php(48): EcomDev_CheckItOut_Model_Hash_Quote_Abstract->getHash()
#2 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(409): EcomDev_CheckItOut_Model_Hash->getHash(Object(Mage_Sales_Model_Quote))
#3 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(362): EcomDev_CheckItOut_OnepageController->_addHashInfo(Array)
#4 app/code/core/Mage/Core/Controller/Varien/Action.php(418): EcomDev_CheckItOut_OnepageController->saveBillingAction()
#5 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('saveBilling')
#6 app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#7 app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#8 app/Mage.php(684): Mage_Core_Model_App->run(Array)
#9 index.php(122): Mage::run('', 'store')
#10 {main}

coupon codes are removed from quote when shipping to billing address

When Mage_Checkout_Model_Type_Onepage::saveBilling() is called by EcomDev_CheckItOut_Model_Type_Onepage:: saveBilling() the following fields are copied from the billing address to the shipping address when "ship to billing" is selected:
cached_items_all
cached_items_nominal
cached_items_nonnominal

These are fields which cache the product items associated with the address and in the case of the billing address there are none associated (unless virtual)

When present, but empty, on the billing address and then copied onto the shipping address the shipping address then has no product items associated it.

This means that Mage_SalesRule_Model_Quote_Discount::collect() then applies no discounts and then Mage_Sales_Model_Quote::_validateCouponCode() removed the coupon from the quote.

I suggest adding the following code in EcomDev_CheckItOut_Model_Type_Onepage::saveBilling():

--> fix code
if (!$this->getQuote()->isVirtual() && !empty($data['use_for_shipping']) ) {
$_billing=$this->getQuote()->getBillingAddress();
$_billing->unsetData('cached_items_all');
$_billing->unsetData('cached_items_nominal');
$_billing->unsetData('cached_items_nonnominal');
}
<-- end - fix code

// existing code
$result = $this->_getDependency()->saveBilling($data, $customerAddressId);

..
..

Order comment doesn't save?

Setting Show Comment Field to Yes shows the text area on checkout but I can't see the comment saved anywhere with the order. Am I missing something?

Magento 1.9.3.3 and EcomDev_CheckItOut-1.5.15

Javascript error in admin extension settings page

Hi,
I'm getting the following javascript errros in magento administration System > Configuration > CheckItOut! Extension.
Here are the errors

prototype.js:5557 Uncaught TypeError: Cannot read property 'get' of undefined
    at _createResponder (prototype.js:5557)
    at Function.observe (prototype.js:5636)
    at (index):1296
_createResponder @ prototype.js:5557

prototype.js:5557 Uncaught TypeError: Cannot read property 'get' of undefined
    at _createResponder (prototype.js:5557)
    at Function.observe (prototype.js:5636)
    at (index):1306
_createResponder @ prototype.js:5557

prototype.js:5557 Uncaught TypeError: Cannot read property 'get' of undefined
    at _createResponder (prototype.js:5557)
    at Function.observe (prototype.js:5636)
    at (index):1316

The lines 1296,1306,1316 have the following code:

(1296) Event.observe($('carriers_tablerate_condition_name'), 'change', checkConditionName.bind(this));
(1306) Event.observe($('carriers_tablerate_condition_name'), 'change', checkConditionName.bind(this));
(1316) Event.observe($('carriers_tablerate_condition_name'), 'change', checkConditionName.bind(this));

This is content from the Default Values Configuration section.

Changes to fields are not saved to the server while an ajax request is in progress

Because a step does not send data to the server if it is already in the process of sending data then there is the possibility of the data that the user sees in the checkout being out of sync with the data that the server holds.

This causes support issues when the user thinks that they have specified one thing, like ship to France but Magento has another, like ship to the UK

This situation can easily be observed on a development environment where caching is switched off; meaning ajax request take longer than on a live environment

To recreate:

  • Uncheck "Use same address for shipping"
  • select "New address"
  • ensure the rest of the form is ready for submission
  • type in the address field and wait for the saveShipping ajax to fire (visible in the network tab of browser's developer extension)
  • while ajax is being submitted change the country
  • submit the order

Viewing the order in Magento will show that the change of country was not saved

A solution to this problem would be to do the following:

  • change the step's this.updater to be an intermediate method which then calls the this.submit() method
  • change the onComplete and onFail callbacks to intermediate method as well
  • the updater intermediate method could then call the this.submit() method if its not already submitting otherwise flag that the this.submit() method needs to be re-called after completion/failure of the current request
  • the onComplete and onFail intermediate functions can then clear flags and re-call the this.submit() where required

Shipping method validation message not showing

When a user fails to select a shipping method the validation message is not showing. I am seeing this on multiple sites, can anyone confirm or offer a solution?

I can step into the code and see that the isValid method is being called in skin/frontend/base/default/js/ecomdev/checkitout/steps/shipping.js and this in turn is correctly calling the Validation.ajaxError method found in skin/frontend/base/default/js/ecomdev/checkitout/compatibility/global.js. This correctly call the showAdvice method which is supposed to trigger the Appear effect but from what I can see this never happens (i.e. the display stays as none and the opacity never moves to 100).

Can anyone help?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.