몇 가지 특정 제품에서 장바구니에 추가 버튼을 비활성화하는 방법에 대해 궁금한 점이 있었지만이 방법에 대한 버려진 안내서를 찾았지만 제품보기 페이지의 해결책 일 뿐이므로 다소 불완전했습니다. 카테고리 목록이나 그리드 페이지에는 없습니다.
첫 번째 단계를 설명한 후 8 시간 동안 (내 명성이 특정 지점 이하이므로 8 시간을 기다려야하므로) 여기에 내 자신의 질문에 대한 답변을 드리겠습니다. 나 자신을 위해. 나는 이것을 쉽게 따라하려고 노력할 것이다.
[1 단계]
[1]
장바구니에 추가 단추를 원하지 않는 제품에 사용할 속성을 작성하십시오. 관리 대시 보드에서 다음으로 이동합니다.
카탈로그> 속성> 속성 관리> 새 속성 추가
원하는대로 속성 이름을 지정하십시오 (예 : "No_cart_button").
속성으로 :
Attribute Code: No_cart_button
Catalog Input Type for Store Owner: Yes/No
Use in Quick Search: No
Use in Advanced Search: No
Comparable on Front-end: No
Visible on Product View Page on Front-end: No
Used in Product Listing: YES
Used for Sorting in Product Listing: No
라벨 / 옵션 관리 :
Admin: Disable Add to Cart
English: Disable Add to Cart
이제이 속성을 저장하십시오.
[2]
새 속성을 그룹에 할당하면 사용할 수 있습니다. "기본"을 사용했습니다. 이동 ...
Catalog > Attributes > Manage Attributes Sets > Select Set
이제이 속성 세트를 저장하십시오.
[2 단계]
view.phtml에 코드를 추가하겠습니다
app/design/frontend/default/theme/template/catalog/product/view.phtml
이 코드 블록을 찾으십시오.
<?php if (!$this->hasOptions()):?>
<div class="add-to-box">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<span class="or"><?php echo $this->__('OR') ?></span>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php echo $this->getChildHtml('extra_buttons') ?>
<?php elseif (!$_product->isSaleable()): ?>
<div class="add-to-box">
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php endif; ?>
이제이 코드 블록으로 바꾸십시오.
<?php
//Checks if the "Disable Add to Cart" variable is set to 'Yes':
if(($_product->getAttributeText('No_cart_button')) == "Yes"){
//If set to Yes, tell PHP what to output:
echo "This Product is not available online, please call our representative if you wish to purchase this.";
}
//If set as No, then show the 'add to cart box' as usual.
else {
?>
<?php if (!$this->hasOptions()):?>
<div class="add-to-box">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<span class="or"><?php echo $this->__('OR') ?></span>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php echo $this->getChildHtml('extra_buttons') ?>
<?php elseif (!$_product->isSaleable()): ?>
<div class="add-to-box">
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php endif; ?>
<?php
}
?>
이 코드는 No_cart_button이 yes로 설정되어 있는지 확인합니다. yes로 설정하면 코드가 출력되어 장바구니에 추가 버튼이 제거되고 대신 "이 제품을 온라인으로 사용할 수 없습니다. 구매하려면 담당자에게 문의하십시오."라는 텍스트가 표시됩니다.
이 두 단계가 완료되면 제품보기 페이지에서 장바구니에 추가를 제거합니다.
그러나 이것은 카테고리 목록 페이지에서 "장바구니에 추가"버튼을 제거하지는 않습니다. 이제 "장바구니에 추가"단추 대신 범주 목록 페이지에 "세부 정보보기"단추를 만들려고합니다.
[편집하다]
대답:
kevinkirchner가 정확합니다. 이제이 로직을 list.phtml에 추가합니다. "제품 목록에 사용됨"의 속성 설정이 '예'로 설정되어 있는지 확인했습니다.
승인,
[3 단계]
장바구니에 추가 비활성화를 예로 설정하면 범주 목록 페이지에서 "장바구니에 추가"단추도 비활성화됩니다.
list.phtml로 이동
app/design/frontend/default/theme/template/catalog/product/list.phtml
이 파일에서 다음을 검색하십시오.
<?php if($_product->isSaleable()): ?>
이 파일에 2 번 나타나야합니다.
이 줄 바로 아래에 다음 코드를 삽입하십시오.
<?php
if(($_product->getAttributeText('No_cart_button')) == "Yes"){ ?>
<p><button type="button" title="<?php echo $this->__('View Details') ?>" class="button btn-cart" onclick="location.href='<?php echo $_product->getProductUrl() ?>'"><span><span><?php echo $this->__('View Details') ?></span></span></button></p>
<?php
}
else {
?>
그런 다음 정상적인 '장바구니에 추가'버튼을 생성하는 코드 바로 아래에
<?php
}
?>
이 바로 아래에 동일한 코드를 추가하십시오.
<?php
}
?>
자, 이제이 파일의 다른 코드 블록과 동일한 2 단계를 수행하십시오.
<?php if($_product->isSaleable()): ?>
처음은 목록보기이고 두 번째는 격자보기이므로 두 번 수행해야합니다.