altere a entrada de quantidade para o menu suspenso para quantidades definidas pelo usuário em itens do pacote

magento.stackexchange https://magento.stackexchange.com//questions/74926

Pergunta

Como posso substituir o campo de texto para quantidades definidas pelo usuário em pacotes de produtos por um menu suspenso?

Exemplo aqui: https://www.sconch.com/test-bundle - veja o item de teste 1

Consegui substituir todos os outros campos de quantidade por menus suspensos, mas não consigo descobrir como fazer isso para as partes constituintes dos produtos do pacote

Obrigado,

Hugo

Foi útil?

Solução

A maneira de conseguir isso é editar os seguintes arquivos:

/app/design/frontend/[SEU_TEMA]/[SEU_FILHO]/template/bundle/catalog/product/view/type/bundle/option/radio.phtml

/app/design/frontend/[SEU_TEMA]/[SEU_FILHO]/template/bundle/catalog/product/view/type/bundle/option/select.phtml

Você precisa encontrar a linha parecida com esta (pode ser um pouco diferente dependendo do seu tema):

<input class="txtIn qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" onkeyup="bundle.changeOptionQty(this, event)" onblur="bundle.changeOptionQty(this, event)" <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>" />

e substitua por:

<?php if (!$_canChangeQty): ?> <input class="txtIn qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" onkeyup="bundle.changeOptionQty(this, event)" onblur="bundle.changeOptionQty(this, event)" <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>" /> <?php else: ?> <select class="txtIn qty" onclick="bundle.changeOptionQty(this, event)" onkeyup="bundle.changeOptionQty(this, event)" onblur="bundle.changeOptionQty(this, event)" id="bundle-option-<?php echo $_option->getId() ?>-qty-input" type="select" name="bundle_option_qty[<?php echo $_option->getId() ?>]" > <?php if (!$_option->getRequired()): ?> <option value="0">0</option> <?php endif; ?> <option value="1" <?php if ($_defaultQty=='1'): ?>selected<?php endif; ?>>1</option> <option value="2" <?php if ($_defaultQty=='2'): ?>selected<?php endif; ?>>2</option> <option value="3" <?php if ($_defaultQty=='3'): ?>selected<?php endif; ?>>3</option> <option value="4" <?php if ($_defaultQty=='4'): ?>selected<?php endif; ?>>4</option> <option value="5" <?php if ($_defaultQty=='5'): ?>selected<?php endif; ?>>5</option> <option value="6" <?php if ($_defaultQty=='6'): ?>selected<?php endif; ?>>6</option> <option value="7" <?php if ($_defaultQty=='7'): ?>selected<?php endif; ?>>7</option> <option value="8" <?php if ($_defaultQty=='8'): ?>selected<?php endif; ?>>8</option> <option value="9" <?php if ($_defaultQty=='9'): ?>selected<?php endif; ?>>9</option> <option value="10" <?php if ($_defaultQty=='10'): ?>selected<?php endif; ?>>10</option> <option value="11" <?php if ($_defaultQty=='11'): ?>selected<?php endif; ?>>11</option> <option value="12" <?php if ($_defaultQty=='12'): ?>selected<?php endif; ?>>12</option> <option value="13" <?php if ($_defaultQty=='13'): ?>selected<?php endif; ?>>13</option> <option value="14" <?php if ($_defaultQty=='14'): ?>selected<?php endif; ?>>14</option> <option value="15" <?php if ($_defaultQty=='15'): ?>selected<?php endif; ?>>15</option> <option value="16" <?php if ($_defaultQty=='16'): ?>selected<?php endif; ?>>16</option> <option value="17" <?php if ($_defaultQty=='17'): ?>selected<?php endif; ?>>17</option> <option value="18" <?php if ($_defaultQty=='18'): ?>selected<?php endif; ?>>18</option> <option value="19" <?php if ($_defaultQty=='19'): ?>selected<?php endif; ?>>19</option> <option value="20" <?php if ($_defaultQty=='20'): ?>selected<?php endif; ?>>20</option> </select> <?php endif; ?>

Como você verá, isso verifica se a quantidade pode realmente ser alterada e, se possível, usa um menu suspenso com quantidades de 0 a 20.A instrução if em torno do 0 garante que 0 só estará disponível se o item não for obrigatório no pacote.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top