특정 제품에서 "장바구니에 추가"를 비활성화하고 카테고리 목록보기에 "세부 사항보기"단추를 표시하는 방법은 무엇입니까?


20

몇 가지 특정 제품에서 장바구니에 추가 버튼을 비활성화하는 방법에 대해 궁금한 점이 있었지만이 방법에 대한 버려진 안내서를 찾았지만 제품보기 페이지의 해결책 일 뿐이므로 다소 불완전했습니다. 카테고리 목록이나 그리드 페이지에는 없습니다.

첫 번째 단계를 설명한 후 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()): ?>

처음은 목록보기이고 두 번째는 격자보기이므로 두 번 수행해야합니다.


'showcase'또는 'show off'에 대한 웹 사이트가 아닙니다. IT의 Q & A. 이 '소위'질문을 닫는 것이 좋습니다.
Marius

아, 사람들을 돕기를 바랐습니다. 대신 이것을 삭제하거나 검색 가능하도록 남겨 두어야합니까?
stephen wise

@Marius 나는 OP가 자신의 답변을 게시하기에 충분한 담당자를 처리해야하기 때문에 이것이 '보여지는 것'이라고 생각하지 않습니다. 그때까지 마감하기로 결정한 후 다시 열림을 해결하거나 Q & A를 다시 게시 할 수 있습니다.
philwinkle

죄송합니다. Stack Exchange의 방법을 더 잘 알아야합니다. 이러한 것들을 이해하도록 도와 주셔서 감사합니다.
stephen wise

답변:


7
  1. 있는지 확인 속성은 속성을 편집 할 때 "예"로 "제품 목록에서 사용"으로 설정하여 목록 페이지 제품에 사용할 수 있습니다 - 스크린 샷

  2. 장바구니에 추가 template/catalog/product/list.phtml/ 세부 정보보기 버튼을 표시 하려면 로직을 추가하십시오.


네! 답변을 선택하겠습니다. 원본 게시물의 수정 내용에 더 구체적인 내용을 제공하겠습니다.
stephen wise
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.