문제

Magento의 기본 장바구니에서는 고객이 수량을 편집할 때 버튼을 눌러 수량을 업데이트해야 합니다.

사용자가 수량 필드에 다른 숫자를 입력하면 장바구니가 자동으로 수량을 업데이트하는 방법이 있습니까?

도움이 되었습니까?

해결책

먼저 장바구니 템플릿을 편집하고 쉽게 액세스 할 수 있도록 폼 요소에 ID를 추가하십시오.'id="카트 형식을 추가하자,

이제 카트 항목을 렌더링하는 템플릿을 편집합니다.

  • 앱 / Design / Frontend / {패키지} / {Theme} /template/checkout/cart/item/default.phtml
  • App / Design / Frontend / {패키지} / {Theme} /template/downloadable/checkout/cart/item/default.phtml

    및 generacodicicetagcode라는 이름의 /app/design/frontend/{package}/{theme}/template/checkout/cart.phtml 요소에 다음을 추가합니다.

    onchange="$('cart-form').submit()"
    
    .

    그러나 나는 이것을하는 것이 좋습니다.그것은 정말로 사용자에게 짜증나게됩니다.(적어도 나를 위해).

다른 팁

사이트가없는 jQuery가없는 모드에 jQuery가 있음을 가정하면 이이 비동기 적으로 수행하는 방법이 있습니다 (훨씬 덜 성가신!).

jQuery(document).ready(function(){
jQuery('#shopping-cart-table')
    .on(
        'change',
        'input[name$="[qty]"]',
        function(){
            var form = jQuery(jQuery(this).closest('form'));

            // we'll extract the action and method attributes out of the form

            // kick off an ajax request using the form's action and method,
            // with the form data as payload
            jQuery.ajax({
                url: form.attr('action'),
                method: form.attr('method'),
                data: form.serializeArray()
            });
        }
    );
});
.

이렇게하면 다음과 같은 가정이된다는 것을 지적해야합니다.

  • 쇼핑 카트가 쇼핑 카트 테이블 의 ID가있는 요소 내에서 생명을줍니다.
  • 수량의 입력 필드 [qty] 로 끝나는 이름 속성이 있습니다.

    라인 2 및 5의 코드에서 각각의 선택기를 조정하여 상황에 맞게 각각 조정할 수 있어야합니다.

이 두 파일을 편집

app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml

app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
.

및 name cart[<?php echo $_item->getId() ?>][qty]라는 요소에 다음을 추가합니다.

onchange="this.form.submit()"
.

jQuery 버전이 오래되면 성공하지 못할 것입니다.나는 다음과 같은 방법을 발견했습니다. 삽입하기위한 친구 마리우스의 지침을 따르십시오.

generacodiciceTagcode 및 폼 요소에 ID를 추가하여 쉽게 액세스 할 수 있습니다./app/design/frontend/{package}/{theme}/template/checkout/cart.phtml 을 추가하자.

이제 파일 열기

app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
.

및 파일의 끝으로 스크롤하면 수량 증가 및 감소를 수행하는 JavaScript를 찾을 수 있습니다.함수는 다음과 같습니다.

function plusQty(itemId){
    qty = $('qty'+itemId).value;
    qty = parseInt(qty);        
    qty++;
    $('qty'+itemId).value = qty;
}

function minusQty(itemId){
    qty = $('qty'+itemId).value;
    qty = parseInt(qty);        
    if(qty>0){
        qty--;
        $('qty'+itemId).value = qty;
    }
}
.

이 변경 사항 :

function plusQty(itemId){
    qty = $('qty'+itemId).value;
    qty = parseInt(qty);        
    qty++;
    $('qty'+itemId).value = qty;
    document.getElementById("cart-form").submit();  
}

function minusQty(itemId){
    qty = $('qty'+itemId).value;
    qty = parseInt(qty);

    if(qty>0){
        qty--;
        $('qty'+itemId).value = qty;
         document.getElementById("cart-form").submit();   
    }
}
.

아직 jQuery를 로드하지 않은 경우 다음을 찾을 수도 있습니다. <input>요소(또는 내 경우에는 <select> 금액을 선택하는 드롭다운 필드를 만들었기 때문에 요소)라는 이름을 사용하여 name="cart[<?php echo $_item->getId() ?>][qty]" 그리고 이것을 추가하세요:

onchange="this.form.submit()"

편집해야 하는 phtml 파일은 다음 위치에 있습니다.

app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top