2013-09-24 3 views
0

В magento Я бы хотел (а) удалить автоматический расчет доставки. В настоящее время, если вы указали почтовый индекс для расчета, вернитесь к покупкам и добавьте больше в корзину, когда вы вернетесь в корзину, он автоматически рассчитает доставку. Я хотел бы потребовать, чтобы кнопка «Получить предложение» была нажата для вычисления доставки каждый раз.Magento отключить автозапчасти в корзине

Идеи?

ответ

0

Я пытаюсь сделать то же самое с недели, но не работает 100%. Я думаю, что код должен быть таким:

Шаг один: Добавить функцию JS:

_instantQuoteShippingResponse { 
    var cart = document.getElementsByClassName('cart-shipping-block')[0]; 
    cart.innerHTML = response.responseText.evalJSON().cart_shipping; 
    cart.innerHTML = cart.firstChild.innerHTML; 
    return true; 
} 

instantQuoteShipping() { 
    try {var request = new Ajax.Request(coShippingMethodForm.form.action, {method: 'post', 
      parameters: { 
       country_id: $('country').value, region_id: $('region_id').value, 
       region: $('region').value, estimate_postcode: $('postcode').value}, 
       redirect: 'no', 
      onSuccess: function(response) {_instantQuoteShippingResponse(response);}, 
      onFailure: function(response) {coShippingMethodForm.submit();}}); 
    } catch(e) { return false;} 
    return true; 
} 

Шаг второй: добавить кнопку событие отгрузкой кнопку цитата (приложение \ дизайн \ интерфейс \ Default \ современный \ шаблон \ фотографии \ корзина \ shipping.phtml).

onclick="instantQuoteShipping()" 

Шаг три: редактировать повозка контроллер (Mage/Оформить заказ/контроллеры/CartController.php) переписывают estimatePostAction:

public function estimatePostAction() 
{ 
    parent::estimatePostAction(); 
    if ($this->getRequest()->getParam('redirect') == 'no') { 
     try { 
      $response = array(); 
      $this->loadLayout(); 
      $this->_getSession()->getMessages(true); 
      // $response['cart_shipping'] = $this->getLayout()->getBlock('checkout.cart.shipping')->toHtml(); 
      $response['cart_shipping'] = $this->getLayout() 
       ->createBlock('checkout/cart_shipping') 
       ->setTemplate('checkout/cart/shipping.phtml')->toHtml(); 
      $this->getResponse()->clearAllHeaders(); 
      $this->getResponse()->setBody(Zend_Json::encode($response)); 
      $this->getResponse()->setHttpResponseCode(200); 
     } catch(Exception $e) { 
      Mage::log($e->getMessage()); 
     } 
    } 
} 

Шаг четыре: редактировать cart.phtml (приложение \ дизайн \ внешний интерфейс \ по умолчанию \ современный \ шаблон \ фотографии \ cart.phtml) скопировать все содержимое из shipping.phtml, за исключением блока для определения скорости оценки:

// Locate this line: 
<?php if (!$this->getIsVirtual()): echo $this->getChildHtml('shipping'); endif; ?> 

// Update to...: 
<?php if (!$this->getIsVirtual()): ?> 
    // Paste all content from shipping.phtml here 
<?php endif; ?> 


// ATENTION: Dont paste the code below 
if (($_shippingRateGroups = $this->getEstimateRates())) { 
    ... 
} 

Он должен работать!

Смежные вопросы