私は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') .' <strong class="benefit">'. $this->__('save') .' '. $_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>";
}
?>
どのように動作させますか?各ティア価格の小売価格をアルゴリズムに基づいて自動的に計算するか、手動で入力するかどうかを決めますか? btw、他のサイトはMagentoではありません:-P –
正直なところ、それはカタログルールであるかどうかは関係ありません。または管理パネルにパーセント/合計値として入力できます。何かがうまくいく、私はいつも後でそれを変更することができます。 respのためにありがとう。 – ehime