We have created some configurable products with unique simple/virtual products, colors and prices.
Every simple or virtual product has a tier price.
But the tier prices does not appear on the product detail page on frontend.
Tested on blank and luma theme.
This is still a problem under 2.0.7.
@antboiko can you look into it?
Hi @glwstor , thanks for reporting this. I've created internal ticket MAGETWO-54411.
Best,
Anton.
I can confirm this issue on 2.0.7.
Any quickfix in mind for now ?
I implemented a custom quickfix for now.
If anyone is interested you can contact me.
The problem still exists with version 2.1.1
Yes we had fixed this also but after upgrading to 2.1.2 it is back and the bug is STILL present ...it's unbelievable really because many other major bugs are not yet fixed which will cause delays in getting this update on production.
@Thommas I'm intressted i your quickfix. I have this problem and like to have it fixed as soon as possible. I will be greatful if you lend me a hand on this one.
@Thommas Could you please share your quickfix? This problem is preventing our site from launching. Thank you very much!
Hello,
Disclaimer: this is a quickfix/dirty hack until the Magento2 team find the proper way to handle this case. Also I did this quickfix on Magento 2.0.7. It needs to be adapted for Magento 2.1.2, but I still haven't finished migrating the code.
Obviously, don't hack into vendor for these changes, use your own custom theme.
You might want to just take the interesting part of these two files.
Our theme was a custom theme, so it might not match yours.
Also my store has 100% configurable products + virtual products as variations. If you need to manage simple products as well, you also need to adapt the following code.
The main idea is to fetch all product children and output their tier prices.
Magento_Catalog / templates / product / price / tier_prices.phtml
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
?>
<?php
/** @var \Magento\Catalog\Pricing\Render\PriceBox $block */
/** @var \Magento\Catalog\Pricing\Price\TierPrice $tierPriceModel */
$tierPriceModel = $block->getPrice();
$tierPrices = $tierPriceModel->getTierPriceList();
$msrpShowOnGesture = $block->getPriceType('msrp_price')->isShowPriceOnGesture();
$product = $block->getSaleableItem();
$om = Magento\Framework\App\ObjectManager::getInstance();
$configurable = $om->get('Magento\ConfigurableProduct\Model\Product\Type\Configurable');
$children = $configurable->getUsedProducts($product);
foreach ($children as $childKey => $child):
$tierPrices = $child->getPriceInfo()->getPrice('tier_price')->getTierPriceList();
if (count($tierPrices)): ?>
<?php if ($childKey == 0): ?>
<h2 class="product-detail-title title-with-line title-with-line--left">
<span class="title-with-line__text title-with-line__text--left"><?= __('Tier prices') ?></span>
<span class="title-with-line__line"></span>
</h2>
<?php endif; ?>
<ul <?php if ($childKey != 0) { echo 'style="display: none;"'; } ?>
data-color="<?= $child->getData('color') ?>"
class="<?php /* @escapeNotVerified */ echo($block->hasListClass() ? $block->getListClass() : 'prices-tier items'); ?>">
<?php foreach ($tierPrices as $index => $price) : ?>
<li class="item" data-quantity="<?= $price['price_qty'] ?>">
<?php
$productId = $product->getId();
$isSaleable = $product->isSaleable();
$popupId = 'msrp-popup-' . $productId . $block->getRandomString(20);
if ($msrpShowOnGesture && $price['price']->getValue() < $product->getMsrp()):
$addToCartUrl = '';
if ($isSaleable) {
$addToCartUrl = $this->helper('\Magento\Checkout\Helper\Cart')
->getAddUrl($product, ['qty' => $price['price_qty']]);
}
$tierPriceData = [
'addToCartUrl' => $addToCartUrl,
'name' => $product->getName(),
'realPrice' => $block->renderAmount(
$price['price'],
[
'price_id' => $index,
'id_suffix' => '-' . $index,
'include_container' => true
]
),
'msrpPrice' => $block->renderAmount(
$block->getPriceType('msrp_price')->getAmount(),
[
'price_id' => $index,
'id_suffix' => '-' . $index,
'include_container' => true
]
),
];
if ($block->getCanDisplayQty($product)) {
$tierPriceData['qty'] = $price['price_qty'];
}
?>
<?php /* @escapeNotVerified */ echo __('Buy %1 for: ', $price['price_qty']); ?>
<a href="javascript:void(0);"
id="<?php /* @escapeNotVerified */ echo($popupId);?>"
data-tier-price="<?php echo $block->escapeHtml($block->jsonEncode($tierPriceData)); ?>">
<?php /* @escapeNotVerified */ echo __('Click for price'); ?></a>
<?php else:
$priceAmountBlock = $block->renderAmount(
$price['price'],
[
'price_id' => $index,
'id_suffix' => '-' . $index,
'include_container' => true,
'zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_OPTION
]
);
?>
<?php /* @escapeNotVerified */ echo ($block->getShowDetailedPrice() !== false)
? __(
'Buy %1 for %2 each and <strong class="benefit">save<span class="percent tier-%3"> %4</span>%</strong>',
$price['price_qty'],
$priceAmountBlock,
$index,
$tierPriceModel->getSavePercent($price['price'])
)
: __('Buy %1 for %2 each', $price['price_qty'], $priceAmountBlock);
?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php if ($msrpShowOnGesture):?>
<script type="text/x-magento-init">
{
".product-info-main": {
"addToCart": {
"origin": "tier",
"addToCartButton": "#product_addtocart_form [type=submit]",
"inputQty": "#qty",
"attr": "[data-tier-price]",
"productForm": "#product_addtocart_form",
"productId": "<?php /* @escapeNotVerified */ echo $productId; ?>",
"productIdInput": "input[type=hidden][name=product]",
"isSaleable": "<?php /* @escapeNotVerified */ echo $isSaleable; ?>"
}
}
}
</script>
<?php
endif;
endif;
endforeach;
?>
As a bonus:
After that, you use some jQuery to show/hide the right tier prices list correponding to the child product you've selected.
For this, you need to hack into the jQuery code where you can click on an option to select another child product.
Magento_Catalog / web / js / price-options.js
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'jquery',
'underscore',
'mage/template',
'priceUtils',
'priceBox',
'jquery/ui'
], function ($, _, mageTemplate, utils) {
'use strict';
var globalOptions = {
productId: null,
priceHolderSelector: '.price-box', //data-role="priceBox"
optionsSelector: '.product-custom-option',
optionConfig: {},
optionHandlers: {},
optionTemplate: '<%- data.label %>' +
'<% if (data.finalPrice.value) { %>' +
' +<%- data.finalPrice.formatted %>' +
'<% } %>',
controlContainer: 'dd'
};
$.widget('mage.priceOptions', {
options: globalOptions,
/**
* Widget creating method.
* Triggered once.
* @private
*/
_create: function createPriceOptions() {
var form = this.element,
options = $(this.options.optionsSelector, form),
priceBox = $(this.options.priceHolderSelector, $(this.options.optionsSelector).element);
if (priceBox.data('magePriceBox') && priceBox.priceBox('option') && priceBox.priceBox('option').priceConfig) {
if (priceBox.priceBox('option').priceConfig.optionTemplate) {
this._setOption('optionTemplate', priceBox.priceBox('option').priceConfig.optionTemplate);
}
this._setOption('priceFormat', priceBox.priceBox('option').priceConfig.priceFormat);
}
this._applyOptionNodeFix(options);
options.on('change', this._onOptionChanged.bind(this));
// Quantity And Tier Price Update Hack
$('body').delegate('#qty', 'change', this._onQuantityChanged.bind(this));
$('body').delegate('.swatch-option.color', 'click', this._selectSwatchOptionColor.bind(this));
setTimeout(function() {
$('.swatch-option.color:first').trigger('click');
}, 500)
// End of Hack
},
/**
* When swatch option color changes, update price and tier price display
* @param {Event} event
* @private
*/
_selectSwatchOptionColor: function selectSwatchOptionColor(event) {
var colorId = $(event.target).attr('option-id');
this.unitPrice = $(event.target).data('unit-price');
$('.prices-tier.items').hide();
$('.prices-tier.items[data-color='+colorId+']').show();
setTimeout(this._onQuantityChanged.bind(this), 100);
},
/**
* When quantity changes, update price
* @param {Event} event
* @private
*/
_onQuantityChanged: function onQuantityChanged(event) {
var basePrice = this.adjustTierPrice();
if (basePrice) {
var unitPrice = parseFloat($('.product-info-price .price-wrapper').data('price-amount'));
basePrice = basePrice - unitPrice;
var changes = {
prices: {
finalPrice: {
amount: basePrice
}
}
};
$(this.options.priceHolderSelector).trigger('updatePrice', changes);
}
},
/**
* Returns price depending on selected quantity and tier prices
*/
adjustTierPrice: function() {
var tierPrices = [];
var basePrice = this.unitPrice;
if ($('.prices-tier.items').length) {
var currentQuantity = parseInt($('#qty').val());
$.each($('.prices-tier.items:visible li'), function(index, value) {
tierPrices.push({
'quantity': parseInt($(value).attr('data-quantity')),
'price': $(value).find('.price-wrapper').attr('data-price-amount')
});
});
for (var i in tierPrices) {
if (tierPrices[i].quantity <= currentQuantity) {
basePrice = parseFloat(tierPrices[i].price);
}
}
}
return basePrice;
},
/**
* Custom option change-event handler
* @param {Event} event
* @private
*/
_onOptionChanged: function onOptionChanged(event) {
var changes,
option = $(event.target),
handler = this.options.optionHandlers[option.data('role')];
option.data('optionContainer', option.closest(this.options.controlContainer));
if (handler && handler instanceof Function) {
changes = handler(option, this.options.optionConfig, this);
} else {
changes = defaultGetOptionValue(option, this.options.optionConfig);
}
$(this.options.priceHolderSelector).trigger('updatePrice', changes);
},
/**
* Helper to fix issue with option nodes:
* - you can't place any html in option ->
* so you can't style it via CSS
* @param {jQuery} options
* @private
*/
_applyOptionNodeFix: function applyOptionNodeFix(options) {
var config = this.options,
format = config.priceFormat,
template = config.optionTemplate;
template = mageTemplate(template);
options.filter('select').each(function (index, element) {
var $element = $(element),
optionId = utils.findOptionId($element),
optionName = $element.prop('name'),
optionType = $element.prop('type');
var optionConfig = config.optionConfig && config.optionConfig[optionId];
$element.find('option').each(function (idx, option) {
var $option,
optionValue,
toTemplate,
prices;
$option = $(option);
optionValue = $option.val();
if (!optionValue && optionValue !== 0) {
return;
}
toTemplate = {
data: {
label: optionConfig[optionValue] && optionConfig[optionValue].name
}
};
prices = optionConfig[optionValue] ? optionConfig[optionValue].prices : null;
if (prices) {
_.each(prices, function (price, type) {
var value = +(price.amount);
value += _.reduce(price.adjustments, function (sum, x) {
return sum + x;
}, 0);
toTemplate.data[type] = {
value: value,
formatted: utils.formatPrice(value, format)
};
});
$option.text(template(toTemplate));
}
});
});
},
/**
* Custom behavior on getting options:
* now widget able to deep merge accepted configuration with instance options.
* @param {Object} options
* @return {$.Widget}
* @private
*/
_setOptions: function setOptions(options) {
$.extend(true, this.options, options);
this._super(options);
return this;
}
});
return $.mage.priceOptions;
/**
* Custom option preprocessor
* @param {jQuery} element
* @param {Object} optionsConfig - part of config
* @return {Object}
*/
function defaultGetOptionValue(element, optionsConfig) {
var changes = {},
optionValue = element.val(),
optionId = utils.findOptionId(element[0]),
optionName = element.prop('name'),
optionType = element.prop('type'),
optionConfig = optionsConfig[optionId],
optionHash = optionName;
switch (optionType) {
case 'text':
case 'textarea':
changes[optionHash] = optionValue ? optionConfig.prices : {};
break;
case 'radio':
case 'select-one':
changes[optionHash] = optionConfig[optionValue] && optionConfig[optionValue].prices || {};
break;
case 'select-multiple':
_.each(optionConfig, function (row, optionValueCode) {
optionHash = optionName + '##' + optionValueCode;
changes[optionHash] = _.contains(optionValue, optionValueCode) ? row.prices : {};
});
break;
case 'checkbox':
optionHash = optionName + '##' + optionValue;
changes[optionHash] = element.is(':checked') ? optionConfig[optionValue].prices : {};
break;
case 'file':
// Checking for 'disable' property equal to checking DOMNode with id*="change-"
changes[optionHash] = optionValue || element.prop('disabled') ? optionConfig.prices : {};
break;
}
return changes;
}
});
I've noticed the Magento team closing some tickets that were duplicate and similar to this one. Does that mean the team is coming up with a solution? Still an issue with version 2.1.2.
I still have this problem under Magento 2.1.2
I have temporarily hijacked the issue by disabling part of the cache:
After disable cache, reindex with ssh command line:
php bin/magento indexer:reindex
@DogSports I have disabled part of the cache but this still does not change the final result. Did you do anything else to display the tier pricing on config product?
After disable cache, reindex with ssh command line:
php bin/magento indexer:reindex
Also reindexed but that did not fix issue. Im on version 2.1.2 using luma theme.
The problem still exists with version 2.1.3
Additionaly there is another bug, if you convert a simple product with tier price to a configurable product, the old tier prices will not be deleted and is visible on frontend
Any update on this?
I have still not found a fix, maybe 2.1.4 might have it when ever its released?
I downloaded 2.2.0-dev and tier pricing on a configurable product works, so im guessing the next update will have this fix.
Its been close to a year for this fix.
@gman-1986 can you please post the fix from 2.2.0-dev ? @Thommas, your temporary fix no longer worked for 2.1.3
@gman-1986 when you say that it works, do you mean the tier pricing table is indeed visible on a configurable item's product page?
This is the test product I created on magento 2.2.0-dev, I thought I would just try developers edition on the off chance that it would work and it does.
So now im playing the waiting game for them to officially release the next version, as I read somewhere don't use dev edition for a live store.
the latest 2.1.4 version has not fixed this issue.
Does anyone know if this is due to be fixed in an upcoming release please or know of a solution? thanks
It is not fixed till 2.1.5. I hope magento is aware of the issue, but this may not be on priority for them :(
That's really annoying bug, hope Magento will fix it soon
The 471fa80e6cc2644ab47cd6d57199e68e996dd7ae commit from develop branch fixed this issue
@sas-flame I updated both files below from commit but still could not get tier pricing to show on configurable product. tested on v2.1.3
app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
the latest 2.1.6 version has not fixed this issue. please help.
@sas-flame I have updated the both files but tier price still not showing.
We must wait for version 2.2 (release planned this summer).
@DogSports, How is it a good idea to wait for a backwards-incompatible new version in order to acquire a bugfix?
The right solution would be to have the fix ported to the 2.1.x as well, and there's couple ways you could speed it up if you'd like to see the fix released sooner rather than later:
a) create a pull request pointing at 2.1-develop as described here
b) create a new GitHub Issue referencing the original one and asking to backport the fix into 2.1.
Additionally, mentioning a certain relevant Magento, Inc. employee somewhere in the discussion _might_ help bringing attention to it.
They have send a patch for this, but i didn't manage to test this thoroughly.
Patch is attached here, let all know if it works for you.
@wclabhinav Thank you very much!
tier price works after applied the patch manually (magento 2.1.6)
Thank you magento developer
Can someone point me in the right direction on how to apply the patch please.
@gman-1986 first you can extract it until you find a file with name MAGETWOblablabla.patch
then you can choose:
Correct me if I'm wrong.
@gman-1986 you may simply run this patch using
patch -p1 < MAGETWO-67182-Tier-price.patch
from document root
@harimayco @MageAbhinav thanks guys
Tier pricing still not working with configurable product in fresh install of 2.1.7
Applying patch on 2.1.7 i get following error -
patch -p1 < MAGETWO-67182-Tier-price.patch
patching file vendor/magento/module-catalog/Pricing/Render/FinalPriceBox.php
Reversed (or previously applied) patch detected! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
7 out of 7 hunks ignored -- saving rejects to file vendor/magento/module-catalog/Pricing/Render/FinalPriceBox.php.rej
patching file vendor/magento/module-configurable-product/Block/Product/View/Type/Configurable.php
patching file vendor/magento/module-configurable-product/Pricing/Render/TierPriceBox.php
patching file vendor/magento/module-configurable-product/view/base/layout/catalog_product_prices.xml
patching file vendor/magento/module-configurable-product/view/base/templates/product/price/tier_price.phtml
patching file vendor/magento/module-configurable-product/view/frontend/web/js/configurable.js
Hunk #2 FAILED at 30.
Hunk #3 succeeded at 97 (offset 11 lines).
Hunk #4 succeeded at 273 (offset 11 lines).
Hunk #5 FAILED at 530.
2 out of 5 hunks FAILED -- saving rejects to file vendor/magento/module-configurable-product/view/frontend/web/js/configurable.js.rej
patching file vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js
Hunk #2 succeeded at 209 with fuzz 2 (offset 13 lines).
Hunk #3 succeeded at 245 (offset 13 lines).
Hunk #4 FAILED at 531.
Hunk #5 succeeded at 710 (offset 20 lines).
Hunk #6 succeeded at 733 (offset 20 lines).
1 out of 6 hunks FAILED -- saving rejects to file vendor/magento/module-swatches/view/frontend/web/js/swatch-renderer.js.rej
New internal ticket - MAGETWO-69700
the patch does not work on 2.1.7.
@harimayco did you get any errors when doing the patch manually? I have also done it manually using the same Patch viewer and you and I am getting this error
"Recoverable Error: Argument 1 passed to Magento\ConfigurableProduct\Pricing\Render\FinalPriceBox::__construct() must be an instance of Magento\Framework\View\Element\Template\Context, instance of Magento\Framework\ObjectManager\ObjectManager given, called in /home/bstdetectable/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93 and defined in /home/bstdetectable/public_html/vendor/magento/module-configurable-product/Pricing/Render/FinalPriceBox.php on line 36"
I am just curious to see if you received the same error and got around it somehow.
Thanks
@antboiko what is the status of this? Can we get a patch that works with 2.1.7?
@antboiko Any updates to this issue?
same problem here with magento CE 2.1.7
I am using M2 2,1.7 I have added text swatch with different prices. Price is changing on details page but doesn't work on product list page. After long digging, I was thinking...should I use prestashop.
They have send a patch for this
So, is it the routine now to get individual patch files for each bug, and only after an explicit request?
What the hell? Why not put it into a release?
M2.1.8 has been released but still no fix for this issue.
it's been more than 1 year since this issue was reported :-1:
This is currently stopping us from using Magento 2. Is there a patch for 2.1.8 that works? Really would appreciate some help here.
@korostii @odhier @ilawton there are 2400+ open issues on GItHub currently.
This issue has ZERO reactions on it.
How you think it could be recognized as really important?
I didn't check the patch mentioned, not sure if it is some hack or a backport from develop
branch, but I believe the best for the Product and for the Community would be to propose a PR to 2.1-develop
branch as soon as somebody manages to do a workable backport.
@orlangur and hello to you, too.
This issue has ZERO reactions on it.
How you think it could be recognized as really important?
And yet it has 49 comments. It's even in top10 most commented: http://take.ms/7NVu3
Besides, it shouldn't be a question whether the bug is "important" or not.
A bug is a bug, and it has to be fixed either way, sooner or later.
The question is: why the hell every single issue out of those 2500 has to have forty-something comments and\or a pull request before core developers even consider putting the fix into the core even if the fix is already implemented and exists on branch develop
. In what universe sending out patches via emails and discussing the issue for months instead of having the fix merged into the stable branch right away is "the best for the Product and for the Community"?
The boilerplate "backporting takes effort, we can't backport all bugfixes at once" answer doesn't answer it, if you think about it. I mean, why even bother fixing a bug on branch develop
in the first place if you don't intend to release that fix anytime soon? And if you did put the effort in and fixed it, why not backport it to the stable branch ASAP? Is it that hard to track issues fixed recently?
The whole situation and the fact it has to be discussed seriously seems absurd to me.
And yet it has 49 comments. It's even in top10 most commented
Please provide an official proof that amount of comments is considered during triage. I saw the presentation which mentioned amount of reactions only.
Besides, it shouldn't be a question whether the bug is "important" or not.
A bug is a bug, and it has to be fixed either way, sooner or later.
Actually, not. Some bugs may be NEVER fixed (P3-P4 mainly). Importance is the key here as amount of resources is limited.
why even bother fixing a bug on branch
develop
in the first place if you don't intend to release that fix anytime soon?
With this approach every future version of Magento will not contain a bug. If you start the fix from an older version, you need to put efforts to forward-port it then and overall development progress will be much slower.
And if you did put the effort in and fixed it, why not backport it to the stable branch ASAP? Is it that hard to track issues fixed recently?
Just because amount of resources is limited and not every bug is severe enough to be fixed. Especially when fix appears to be not compatible with older version.
The process when Community may influence bugfixes released was introduced not long time ago, 2.1.8
is the first such release, a situation when problem is discussed for months and not solved is now much less likely.
Please provide an official proof that amount of comments is considered during triage.
That's not what you asked. And that's not what I answered.
I gave you proof that the issue can be identified as "important" quite easily, I claimed nothing more.
Frankly, I don't care about the official triage process since the acknowledged issues don't seem to move anywhere without a community PR anyway. So what difference does it make?
every future version of Magento will not contain a bug
Ha, that's funny. It could only be true if said future version had no new functionality in it.
Clearly, that won't happen with 2.2 (which is doomed to have new bugs alongside these bugfixes).
Result? Both 2.2 and 2.1 will be having plenty of bugs, and the only stable version is 1.9.
If you start the fix from an older version, you need to put efforts to forward-port
I'm not saying it should go the other way around.
Here's what I'm saying: if you fix it, fix it on both branches (in whatever order you like), so that the fix would appear in both develop and next release altogether- or don't fix it at all and do something more important instead.
Just because amount of resources is limited and not every bug is severe enough to be fixed. Especially when fix appears to be not compatible with older version.
Yeah, yeah, yeah. Again, if the bug just "isn't worth fixing", why even bother fixing a bug on branch develop
in the first place?
If you're saying it's severe, fix it for both develop and 2.1 _at once_: it will get released sooner and make people happy.
If it's not worth it, put it in the backlog and don't bother fixing for develop
neither since that code might change 1000 times over before release and the effort will be for nothing.
I have to add here that for a B2B/Wholesale retail business we can't currently use Magento 2 without fixing this problem ourselves. Tiered pricing for specific customers on configurable products is paramount. I would have thought that fixing broken functionality that hugely affects standard B2B ecommerce businesses would be of the highest importance.
I see that there was a patch for versions before 2.1.6.... is there one for 2.1.8? Should we just ditch it and possibly wait for 2.2?
Should we just ditch it and possibly wait for 2.2?
In case you choose that path: 2.2 release candidate is already available. You might want to start testing your project against it earlier. There might be some incompatibilities with your custom code which could potentially require quite a lot of time to sort out.
Here's an overview of upcoming breaking changes.
@korostii,
issue can be identified as "important" quite easily
Not true.
if you fix it, fix it on both branches (in whatever order you like)
This is not possible in reality assuming limited resources.
I don't find your attitude constructive. If you see how existing processes can be improved, raise a thread on Community Forums.
@ilawton,
I see that there was a patch for versions before 2.1.6.... is there one for 2.1.8? Should we just ditch it and possibly wait for 2.2?
I didn't see such patch mentioned in this repository, you can try contacting support also if you're using B2B/EE Magento Edition.
@orlangur,
Yeah, I understand your main point: limited resources.
Still doesn't see how "this is probably a low priority issue" leads to "it's okay to email out patches instead of putting the fix into the release". Which was my original question.
If that wasn't clear, I suggest to put fixes into the releases instead of forcing merchants to patch the core manually. I think that's constructive, I think that would be an improvement, and I have no idea why you ignored that part of my comment and decided to explain priorities instead.
If you see how existing processes can be improved, raise a thread on Community Forums.
As if anyone from Magento, Inc. would read that thread (in reality, assuming limited resources).
Anyway... you have a nice day, good sir. It was a pleasure talking to you while it lasted.
Confirmed, not working in 2.1.8. Any plans on pushing this fix down from the dev branch? I've installed via composer & can't switch over to the dev branch.
The same issue occurs for Grouped Products. When you have a Tier Price with Qty 1 it will not display or use the tier price. Simple product outside of the grouped product does. Tested withing 2.1.8 and 2.1.7
@antboiko or anyone have the commit for the develop-2.1 branch so I can manually change the files? I am looking for the configurable products to show the tier price.
@antboiko To recap this issue
Software
Magento 2.1.9 CE
PHP7
REDIS
What is happening?
The tier pricing is not showing on a configurable product
Expected Result
Tier pricing shows on configurable product page
Credit @gman-1986 for the images
@versdivers if you want to get the grouped products tier pricing showing replace the two files from this commit 471fa80 as @sas-flame pointed out
So if theres no fix coming anytime soon, the next question is, when is 2.2 going to be released? By the end of 2017?
@gman-1986 very soon.
Closing as the fix for this issue is already available on Magento 2.2.0 branch.
Anyone, do not hesitate to create a backport to 2.1-develop
if needed, see https://community.magento.com/t5/Magento-DevBlog/Pull-Requests-for-2-1-x-Patch-Releases/ba-p/65630 for details.
@orlangur what files need to be changed from 2.2 branch to get this working in 2.1?
@rbur0425 have no idea, sorry. If you tried changes similar to https://github.com/magento/magento2/issues/3759#issuecomment-291525600 and https://github.com/magento/magento2/issues/3759#issuecomment-303079427
 and it didn't work, problematic code in 2.1.x
or corrected code in 2.2.x
needs to be located first to perform a backport.
Hi @orlangur
How do you wrap your head around closing an issue and encourage pull requests to fix it _in the same comment_?
Why would you close it, if the issue is still present on the latest stable release and you admit yourself that there's still work to be done? If you're following some kind of a guideline, I'd like to see it.
I mean, this is a total mess: http://take.ms/s6eB0
What the heck?
going on @korostii's comment, This is very frustrating, Unless a branch is a security only release at this point, a fix for a feature, to be accepted, should have to apply to all actively developed branches.
A new feature should go into the next version once a feature freeze is in place, but fixes to existing features should be in all branches not at a security only maintenance point.
Is 2.1.x security only at this point or is it getting feature fixes?
How do you wrap your head around closing an issue and encourage pull requests to fix it in the same comment?
Just because a 2.1-develop
backport PR will be processed for sure while there is no guarantee every bugfix will be backported to 2.1-develop
internally.
Why would you close it, if the issue is still present on the latest stable release and you admit yourself that there's still work to be done? If you're following some kind of a guideline, I'd like to see it.
There is no guideline as far as I know, you may get some insight from https://github.com/magento/magento2/wiki/Magento-Issue-Gates. I was surprised as well when noticed this process thus asked Magento guys immediately. You may notice a lot of such activity on issues verification during few previous days. The answer is simple: 2.2.0 stable will be released pretty soon and if we won't start verification earlier at the time of release there still will be a big mess wth issues.
I mean, this is a total mess: http://take.ms/s6eB0
What the heck?
I don't know what these projects are all about, I use only Community Dashboard
one which allows to anybody from Community to work on the fixes. 2.0 will reach its End-Of-Life in November, for 2.1 backports are still welcomed.
Is 2.1.x security only at this point or is it getting feature fixes?
No, some feature fixes will occur, just that for every particular fix it is not always easy or even possible to perform a backport due to BC constraints and if they rely on 2.2 features.
Hello,
i have tier price for configurable product which have been applied successfully and its working, my only query is , i am not able to display default grid of the tier price in frontend for the configurable product.
The grid is displaying only for the simple products but not able to display the grid for the configurable products.
Can anyone suggest me how to solve this issue?
@NAVEEN456, GitHub is intended for bug reports, please use Magento Stack Exchange for questions on how particular customization can be implemented.
Hello again again @orlangur
I don't know what these projects are all about
Sorry for the late comment, but I'd like to point out that the projects are linked explicitly in the last section of the document you've referenced: https://github.com/magento/magento2/wiki/Magento-Issue-Gates#bug-fix
Thus I suppose their intent is to list all the known issues on the radar of core developers: acknowledged and ok to fix, although I'm pretty sure a lot of issues won't reach the proper location(just like this very issue: http://take.ms/s6eB0).
Hi Everyone
I am using magento 1.9 version. i have created configurable product and added few tier price to it, But i am not able to display it on the product page.
Can any1 suggest me how to solve this issue?
This MAGETWO-67182-Tier-price.patch is available to Magento 2.2?
I' m using CE 2.2.3 and still not able to find a way to add customer group pricing on configurable products. can someone please confirm that the issue is not solved on 2.2.3 and tell me whether fixed in 2.2.4 ?
Hi,
It would appear that the error is still present on CE 2.3.4 and 2.3.5.
When we have a configurable product with text swatch options, tier-price on attached simple products not appears.
Closing as the fix for this issue is already available on Magento 2.2.0 branch.
Not sure if a provided fix works as expected.
Unable to see the expected result in Magento 2.4.
@atwixfirster Can you open a new issue with your issue/results. I don't think they are monitoring this anymore because it is closed. People have been saying the fix from 2.2 did not work and the issue was present still in 2.2 and 2.3 but they haven't acknowledged it.
Hi, @JMC-PK !
Yes, I will create a new issue.
Tier price "grid" has been removed from the product details page via MAGETWO-41076: Get rid of remove directive.
If you remove
<referenceContainer name="product.info.options.configurable" remove="true"/>
from
app/code/Magento/Swatches/view/frontend/layout/catalog_product_view_type_configurable.xml
then tier price grid will appear.
But grid content will depend on selected OPTIONS and does not on SWATCHES.
Reported a new issue - https://github.com/magento/magento2/issues/29503
Most helpful comment
Hi @orlangur
How do you wrap your head around closing an issue and encourage pull requests to fix it _in the same comment_?
Why would you close it, if the issue is still present on the latest stable release and you admit yourself that there's still work to be done? If you're following some kind of a guideline, I'd like to see it.
I mean, this is a total mess: http://take.ms/s6eB0
What the heck?