Mam w sklepie kilka produktów gdzie część z nich ma nadane atrybuty pojemności które są źle interpretowane przez koszyk na stronie głównej.
Tzn. kiedy chce na stronie głównej dodać do koszyka produkt o pojemności 50ml. to w koszyku ląduję produkt o pojemności 100ml. i dzieję się tak z wszystkimi produktami które mają możliwość wyboru pojemności, podkreślam, że błąd występuję tylko na stronie głównej, ponieważ kiedy przejdziemy do podstrony produktu to funkcja ta działa już poprawnie i przy wyborze produktu o pojemności 50ml. do koszyka trafia ten właśnie produkt.
Z tego co widzę to na stronie głównej za pojemności odpowiadają inne klasy:
STRONA GŁÓWNA
<DIV class="combinations-list-container">
<RADIOGROUP>
<DIV class="combination-radio">
<DIV class="radio" id="uniform-capacity-ea6d5c0d46efaee2ba812b5a96fe950e-100ml"><SPAN class="checked"><INPUT class="capacity-radio" type="radio" name="capacity-radio-ea6d5c0d46efaee2ba812b5a96fe950e" id="capacity-ea6d5c0d46efaee2ba812b5a96fe950e-100ml" value="84"></SPAN></DIV>
<LABEL for="capacity-ea6d5c0d46efaee2ba812b5a96fe950e-100ml">
<SPAN class="combination-value">100ml</SPAN> /
<SPAN class="combination-price">96,00 zł</SPAN>
</LABEL>
</DIV>
<DIV class="combination-radio">
<DIV class="radio" id="uniform-capacity-ea6d5c0d46efaee2ba812b5a96fe950e-50ml"><SPAN><INPUT class="capacity-radio" type="radio" name="capacity-radio-ea6d5c0d46efaee2ba812b5a96fe950e" id="capacity-ea6d5c0d46efaee2ba812b5a96fe950e-50ml" value="86"></SPAN></DIV>
<LABEL for="capacity-ea6d5c0d46efaee2ba812b5a96fe950e-50ml">
<SPAN class="combination-value">50ml</SPAN> /
<SPAN class="combination-price">59,00 zł</SPAN>
</LABEL>
</DIV>
</RADIOGROUP>
</DIV>
PODSTRONA PRODUKTU
<DIV id="attributes">
<DIV class="clearfix"></DIV>
<FIELDSET class="attribute_fieldset">
<LABEL class="attribute_label">Pojemność
</LABEL>
<DIV class="attribute_list">
<UL>
<LI>
<DIV class="radio"><SPAN class="checked"><INPUT type="radio" class="attribute_radio" name="group_4" value="26" checked="checked"></SPAN></DIV>
<SPAN>100ml</SPAN>
</LI>
<LI>
<DIV class="radio"><SPAN><INPUT type="radio" class="attribute_radio" name="group_4" value="28"></SPAN></DIV>
<SPAN>50ml</SPAN>
</LI>
</UL>
</DIV> <!-- end attribute_list -->
</FIELDSET>
</DIV>
Najprawdopodobniej jest to błąd związany z plikiem combinations.js który wygląda tak, jak to naprawić?:
$(function() {
$('.combinations-list-container').each(function() {
$(this).find('.combination-radio:first .capacity-radio')[0].checked = 'checked';
});
$('.capacity-radio').change(function() {
var combinationId = $(this).val();
var $combinationContainer = $(this).closest('.combination-radio');
var price = $($combinationContainer.find('.combination-price')[0]).text();
var $productContainer = $(this).closest('.product-container');
$productContainer.find('.ajax_add_to_cart_button:first')[0].setAttribute('data-id-product-attribute', combinationId);
$productContainer.find('.price').each(function() { $(this).text(price); });
});
});