수량 변경 시 장바구니 수량 자동 업데이트
-
12-12-2019 - |
문제
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