Mercader Virtual Posted May 15, 2020 Share Posted May 15, 2020 Hi, For some weird reason, an order was created without a carrier, so user didn't pay for shipping. This should've not happened in anyway. The system should've not allowed the user to move forward. Funnily enough, I can't reproduce it. So probably user messed around with the browser code. Checking the code, it seems that as long as delivery_option is not empty, it passes. My question is, how can I force the delivery_option to be not null and not "0", otherwise throw an error. I guess the place where I need to force that is here: public function handleRequest(array $requestParams = array()) { if (isset($requestParams['delivery_option'])) { $this->getCheckoutSession()->setDeliveryOption( $requestParams['delivery_option'] ); $this->getCheckoutSession()->setRecyclable( isset($requestParams['recyclable']) ? $requestParams['recyclable'] : false ); $this->getCheckoutSession()->setGift( isset($requestParams['gift']) ? $requestParams['gift'] : false, (isset($requestParams['gift']) && isset($requestParams['gift_message'])) ? $requestParams['gift_message'] : '' ); } if (isset($requestParams['delivery_message'])) { $this->getCheckoutSession()->setMessage($requestParams['delivery_message']); } if ($this->step_is_reachable && isset($requestParams['confirmDeliveryOption'])) { // we're done if // - the step was reached (= all previous steps complete) // - user has clicked on "continue" // - there are delivery options // - the is a selected delivery option // - the module associated to the delivery option confirms $deliveryOptions = $this->getCheckoutSession()->getDeliveryOptions(); $this->step_is_complete = !empty($deliveryOptions) && $this->getCheckoutSession()->getSelectedDeliveryOption() && $this->isModuleComplete($requestParams) ; } $this->setTitle($this->getTranslator()->trans('Shipping Method', array(), 'Shop.Theme.Checkout')); Hook::exec('actionCarrierProcess', array('cart' => $this->getCheckoutSession()->getCart())); } Can you please tell me how can I deal with this issue, what part of the code I need to reinforce, or if there's a better way to prevent '0' entries in id_carrier. Thanks. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now