2012-02-13 15 views
3

私はMagento(v1.6)のいくつかの機能を別のWebサイトにあるようにミラーリングしようとしていました。この例では、店舗オーナーの がティアに販売価格を適用する機能を設定しています。 (管理者/製品/価格販売で最も可能性が高い)販売価格 を適用することにより、(ラッパーとして最も可能性が高いtierprices.phtml)マゼンタ層販売価格?

私はそれが行われている正確にどのように考え出すに取り組んできた

が、持っていませんそれ以来、 は進んでいませんでした。これはどのようにして が構築されたか考えている人はいますか?

if($_tierPrices) { 
     echo '<style> 
       .strikeRow  {text-decoration: line-through;} 
       .saleRow td  {color:red;} 
       .quantityRow {background: #eef} 
       td    {padding:3px 9px; border: 1px solid #fc0;} 
      </style>';   // temporary styling 

     $q = "<td>Quantity</td>"; 
     $p = "<td>{$_product->getName()}</td>"; 
     $s = "<td>Reduced Price</td>"; 

     foreach ($_tierPrices as &$tier) { 
     #$tier['tier_sale'] = '0.00'; // trick the dump into thinking there is a product sale 
      if($tier['price_qty'])  { $q .= "<td>{$tier['price_qty']}</td>"; } 
      if($tier['price'])   { $p .= "<td>".number_format($tier['price'], 2, '.', '')."</td>"; } 
      if($tier['tier_sale'])  { $s .= "<td>{$tier['tier_sale']}</td>"; } 
     } 

     $q = "<tr class='quantityRow'>{$q}</tr>"; 
     $p = ($_tierPrices[0]['tier_sale'])? "<tr class='strikeRow'>{$p}</tr>" : "<tr>{$p}</tr>"; 
     $s = ($_tierPrices[0]['tier_sale'])? "<tr class='saleRow'>{$s}</tr>" : ''; 

     echo "<tbody>$q $p $s</tbody></table>"; 

    } 

そして完全なソース:ここ

は、表のコード例のウェブサイトここ http://www.epromos.com/product/2801001.html

います、私はあなたが探しているものはかなり確信しています

<?php 
/** 
* @see Mage_Catalog_Block_Product_View 
*/ 
$_product = $this->getProduct(); 
$_tierPrices = $this->getTierPrices(); 
$_finalPriceInclTax = $this->helper('tax')->getPrice($_product, $_product->getFinalPrice(), true); 

/** @var $_catalogHelper Mage_Catalog_Helper_Data */ 
$_catalogHelper = Mage::helper('catalog'); 

$_weeeTaxAmount = Mage::helper('weee')->getAmountForDisplay($_product); 

if (Mage::helper('weee')->typeOfDisplay($_product, array(1,2,4))) { 
    $_weeeTaxAttributes = Mage::helper('weee')->getProductWeeeAttributesForDisplay($_product); 
} 

if (count($_tierPrices) > 0) { 

    // start table group with class type if (obj)getInGrouped() == 1 
    echo ($this->getInGrouped()) ? '<table class="tier-prices-grouped product-pricing-grouped">' : '<table class="tier-prices product-pricing">'; 

    // assign tier pricing to $_tierPrices 
    if ($this->getInGrouped()) { 
     $_tierPrices = $this->getTierPrices($_product); 
    } 

     Mage::helper('weee')->processTierPrices($_product, $_tierPrices); 

    foreach ($_tierPrices as $_price) { 

     echo '<tr>'; 

     if ($_catalogHelper->canApplyMsrp($_product)) { 

      if ($this->getInGrouped()) { 

       echo $this->__('Buy %1$s for', $_price['price_qty']) .':'; 

      } else { 

       echo $this->__('Buy %1$s', $_price['price_qty']); 

      } 

     } else { 

       if ($this->helper('tax')->displayBothPrices()) { 

        if (Mage::helper('weee')->typeOfDisplay($_product, 0)) { 

         echo $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $_price['price_qty'], $_price['formated_price_incl_weee_only'], $_price['formated_price_incl_weee']); 

        } elseif(Mage::helper('weee')->typeOfDisplay($_product, 1)) { 

          echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']); 

          if ($_weeeTaxAttributes) { 

           echo '(<small>'; 
           echo $this->__('%1$s incl tax.', $_price['formated_price_incl_weee']); 

           $separator = ' + '; 

            foreach ($_weeeTaxAttributes as $_attribute) { 

             echo $separator; 
             echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()); 

            } 

           echo '</small>)'; 

          } 

          echo $this->__('each'); 

        } elseif(Mage::helper('weee')->typeOfDisplay($_product, 4)) { 

          echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']); 

          if ($_weeeTaxAttributes) { 

           echo '(<small>'; 
           echo $this->__('%1$s incl tax.', $_price['formated_price_incl_weee']); 

           $separator = ' + '; 

            foreach ($_weeeTaxAttributes as $_attribute) { 

             echo $separator; 
             echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); 

            } 

           echo '</small>)'; 

          } 

          echo $this->__('each'); 

        } elseif(Mage::helper('weee')->typeOfDisplay($_product, 2)) { 

          echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price']); 

          if ($_weeeTaxAttributes) { 

           echo '(<small>'; 

            foreach ($_weeeTaxAttributes as $_attribute) { 

             echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()); 

            } 

           echo $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee']); 
           echo '</small>)'; 

          } 

          echo $this->__('each'); 

        } else { 

          echo $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $_price['price_qty'], $_price['formated_price'], $_price['formated_price_incl_tax']); 

        } 

       } else { 

        if ($this->helper('tax')->displayPriceIncludingTax()) { 

         if (Mage::helper('weee')->typeOfDisplay($_product, 0)) { 

           echo $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_weee']); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 1)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 
            $separator = ''; 

            foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $separator; 
              echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()); 

             $separator = ' + '; 

            } 

            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 4)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 
            $separator = ''; 

            foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $separator; 
              echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); 

             $separator = ' + '; 

            } 

            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 2)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_tax']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 

             foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $_attribute->getName() .': '. Mage::helper('core')->currency($_attribute->getAmount()); 

             } 

            echo $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee']); 
            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } else { 

           echo $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_tax']); 
         } 

        } else { 

         if (Mage::helper('weee')->typeOfDisplay($_product, 0)) { 

           echo $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_weee_only']); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 1)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 
            $separator = ''; 

             foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $separator; 
              echo $_attribute->getName(); ?>: <?php echo Mage::helper('core')->currency($_attribute->getAmount()); 

             $separator = ' + '; 

             } 

            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 4)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 
            $separator = ''; 

             foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $separator; 
              echo $_attribute->getName(); ?>: <?php echo Mage::helper('core')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); 

             $separator = ' + '; 

             } 

            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } elseif(Mage::helper('weee')->typeOfDisplay($_product, 2)) { 

           echo $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price']); 

           if ($_weeeTaxAttributes) { 

            echo '(<small>'; 

             foreach ($_weeeTaxAttributes as $_attribute) { 

              echo $_attribute->getName(); ?>: <?php echo Mage::helper('core')->currency($_attribute->getAmount()); 

             } 

            echo $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee_only']); 
            echo '</small>)'; 

           } 

           echo $this->__('each'); 

         } else { 

           // concern 
           //echo $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price']); 

           $priceSchema['quantity'][] = $_price['price_qty']; 
           $priceSchema['formated_price'][] = $_price['formated_price']; 

         } 


        } 

     } 


     } // Can apply MSRP 

     if (!$this->getInGrouped()) { 

     // we need this ~ 

      // funky ass OR switch, can i rework this in a saner way? 
      if(($_product->getPrice() == $_product->getFinalPrice() && $_product->getPrice() > $_price['price']) 
      || ($_product->getPrice() != $_product->getFinalPrice() && $_product->getFinalPrice() > $_price['price'])) { 

//    echo ' '. $this->__('and') .'&nbsp;<strong class="benefit">'. $this->__('save') .'&nbsp;'. $_price['savePercent'] .'%'; 

      } 

//   echo '</strong>'; // why the hell isn't this in the OR switch??? 

     // we need this ~ 

     } 

     if ($_catalogHelper->isShowPriceOnGesture($_product)) { 

      $popupId = 'msrp-popup-' . $_product->getId() . $this->helper('core')->getRandomString(20); 

      echo '<a href="#" id="'. $popupId .'">'. $this->__('Click for price') .'</a>'; 
      echo '<script type="text/javascript">'; 

      if (!$this->getInGrouped()) { 

       echo 'var newLink = {'; 

        echo 'url: "'. $this->getAddToCartUrl($_product, array('qty' => $_price['price_qty'])) .'",'; 
        echo 'qty: "'. $_price['price_qty'] .'"'; 

       echo '};'; 

      } else { 

       echo 'var newLink = {'; 

        echo 'url: "'. $this->getAddToCartUrl($_product, array('qty' => $_price['price_qty'])) .'",'; 
        echo 'notUseForm: true'; 

       echo '};'; 

      } 

       echo 'Catalog.Map.addHelpLink('; 

        echo "$('{$popupId}'),"; 
        echo '"'. $_product->getName() .'",'; 
        echo json_encode($_price['real_price_html']) .','; 
        echo '"'. $this->helper('core')->currency($_product->getMsrp(),true,false) .'",'; 
        echo 'newLink'; 

       echo ');'; 

      echo '</script>'; 

     } else { 

      echo '<span class="msrp-price-hide-message">'. $_catalogHelper->getMsrpPriceMessage($_product) .'</span>'; 

     } 

    } 
} 

    if($_tierPrices) { 
     echo '<style> 
       .strikeRow  {text-decoration: line-through;} 
       .saleRow td  {color:red;} 
       .quantityRow {background: #eef} 
       td    {padding:3px 9px; border: 1px solid #fc0;} 
      </style>';   // temporary styling 

     $q = "<td>Quantity</td>"; 
     $p = "<td>{$_product->getName()}</td>"; 
     $s = "<td>Reduced Price</td>"; 

     foreach ($_tierPrices as &$tier) { 
     #$tier['tier_sale'] = '0.00'; // trick the dump into thinking there is a product sale 
      if($tier['price_qty'])  { $q .= "<td>{$tier['price_qty']}</td>"; } 
      if($tier['price'])   { $p .= "<td>".number_format($tier['price'], 2, '.', '')."</td>"; } 
      if($tier['tier_sale'])  { $s .= "<td>{$tier['tier_sale']}</td>"; } 
     } 

     $q = "<tr class='quantityRow'>{$q}</tr>"; 
     $p = ($_tierPrices[0]['tier_sale'])? "<tr class='strikeRow'>{$p}</tr>" : "<tr>{$p}</tr>"; 
     $s = ($_tierPrices[0]['tier_sale'])? "<tr class='saleRow'>{$s}</tr>" : ''; 

     echo "<tbody>$q $p $s</tbody></table>"; 

    } 
?> 
+0

どのように動作させますか?各ティア価格の小売価格をアルゴリズムに基づいて自動的に計算するか、手動で入力するかどうかを決めますか? btw、他のサイトはMagentoではありません:-P –

+0

正直なところ、それはカタログルールであるかどうかは関係ありません。または管理パネルにパーセント/合計値として入力できます。何かがうまくいく、私はいつも後でそれを変更することができます。 respのためにありがとう。 – ehime

答えて

1

ここでは簡単な解決策があります。

製品の「コスト」フィールドを使用して、小売価格がお客様の価格より高い割合を定義することができます。デフォルトでは、「費用」フィールドは、製品の支払い額のメモとして使用され、フロントエンドのどこでも使用されません。

次に、あなたのテーマのテンプレート/テンプレート/カタログ/製品/ビュー/ tierprices.phtmlに移動し、$_product = $this->getProduct();行の後に次の行を追加します。

$multiplier = $_product->getData('cost'); 
$multiplier = $multiplier ? $multiplier : 1; 

そして<?php endif; ?><?php if (!$this->getInGrouped()): ?>の間に次の行:

Retail price: <?php echo $_coreHelper->currency($_price['price']*$multiplier, true, false) ?> 

希望どおりにスタイルを設定できると確信しています。何かが不明な場合は教えてください。

+0

恐ろしい答えティム、あなたは男です。 – ehime