Добавление разных размеров

подскажите, хочу сделать так
выводятся размеры таким образом

{foreach $options as $name => $values}
    {foreach $values as $value}
        <div class="number">
		    <label for="">{$value}</label>
		    <div class="data-input">
		    	<input type="number" name="options[{$name}]"  id="option_{$name}" value="1" size="5"/>
			    <span class="plus">+</span>
			    <span class="minus">-</span>
		    </div>
		</div>
    {/foreach}
{/foreach}
как сделать, чтобы при добавлении в корзину записывался товар каждого размера, у которых количество больше 0?
Максим
30 января 2019, 15:21
modx.pro
337
0

Комментарии: 6

Dmitry P.
30 января 2019, 16:02
+1
наверно самый просто вариант — это для каждой опции отправлять свою форму в корзину
т.е. для каждого варианта опции заверстать форму со скрытыми инпутами
что-то типа такого
<form method="post" class="ms2_form">
    <input type="hidden" name="id" value="resource_id">
    <input type="hidden" name="options[some_name]" value="some_value" >
    <input type="number" name="count" value="1">
</form>
<form method="post" class="ms2_form">
    <input type="hidden" name="id" value="resource_id">
    <input type="hidden" name="options[some_name]" value="some_value_2" >
    <input type="number" name="count" value="1">
</form>
<button id="super_button">В корзину</button>
<script>
    $('#super_button').click(function(){
        $('form.ms2_form').each(function(){
            if ($(this).find('input[name="count"]').val() > 0) { 
                $(this).submit();
             } 
        });
    });
</script>
    Максим
    30 января 2019, 16:25
    0
    а как одинаковые товары по размеру и названию объединять, а разные по отдельности, если товар один, а размеры разные
      Dmitry P.
      30 января 2019, 16:37
      0
      минишоп по-умолчанию должен корректно объединять товары с одним id-шником и одинаковым набором опций
        Dmitry P.
        30 января 2019, 16:41
        0
        а один товар, но с разными опциями минишоп добавит в корзину по отдельности
          Максим
          30 января 2019, 16:56
          0
          сделал такна сайте litesite.extremje.beget.tech/katalog/verxnyaya-odezhda/trikotazhnoe-plate-rukav но не добавляет, может не так что сделал?

          {foreach $options as $name => $values}
              {foreach $values as $value}
          		<form method="post" class="ms2_form">
                      <div class="number">
              		    <label for="">{$value}</label>
              		    <div class="data-input">
              		        <input type="hidden" name="id" value="[[*id]]"/>
                              <input type="hidden" name="options[{$name}]"  value="{$value}" >
              		        <input type="number" name="count" size="5" value="1">
              			    <span class="plus">+</span>
              			    <span class="minus">-</span>
              		    </div>
              		</div>
                  </form>
              {/foreach}
          {/foreach}
            Dmitry P.
            30 января 2019, 19:43
            1
            +1
            ну так-то да, я что-то не подумал:
            откуда форма знает куда ей стучаться?
            может попробовать воткнуть в каждую форму скрытую кнопку «в корзину»..? минишоповские скрипты должны понять такой ход :)
            <button type="submit" name="ms2_action" value="cart/add" style="display: none;">В корзину</button>
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6