Desejo definir a opção padrão como o valor das opções personalizadas no nível do produto.
Por favor, ajude-me a resolver isso.
magento2
custom-options
adminform
default-values
rajat kara
fonte
fonte
Respostas:
Não tenho certeza de que você pode fazer isso via admin. Eu apenas fiz um trabalho em torno do qual certifiquei-me de que todas as minhas "opções padrão" sejam a primeira opção dentro do admin e adicionei o abaixo a js da minha loja.
Isso funciona para opções personalizadas, pois todas são renderizadas no carregamento da página. O código apenas percorre todas as opções personalizadas e define a segunda opção, pois a primeira foi "selecione".
No entanto, tive um pouco mais de dificuldade com produtos configuráveis, pois as opções foram todas carregadas após o carregamento da página, mas para fazer isso também, você pode ver minha pergunta aqui: Magento 2: Como definir a opção padrão nas opções configuráveis?
fonte
Eu acho que o que você deseja alcançar é algo assim?
Eu implementei que, para os campos suspensos, deveria ser o mesmo com os botões de opção.
catalog_product_option_type_value
.Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions
.Exemplo:
E, por último, você precisa sobrescrever o arquivo
Magento\Catalog\Block\Product\View\Options\Type\Select.php
com algo como istoEspero que ajude!
fonte
$defaultAttribute
como atributos extras para a opção entrará em conflito com os valores pré-configurados (buy_request, ...). Por exemplo, ao editar um item do carrinho, o valor selecionado pelo cliente e o valor "is_default" serão marcados comoselected="selected"
no código.@TrytoFly Obrigado pela sua solução. Eu tentei com o seu código e consigo exibir a opção "Padrão", mas os valores personalizados não estão sendo exibidos. Ajude-me a corrigir o problema.Por favor, encontre as imagens
fonte
$result = $meta;
no início do seu método afterModifyMeta (). Ou então, você simplesmente substituirá seu valor de retorno em vez de adicionar a opção padrão a ele.@TrytoFly Isso é o que funcionou para mim.
fonte
Você pode substituir o arquivo Select.php como a seguinte função de código:
fonte
Aqui está a maneira mais limpa que encontrei para definir um valor padrão para opções personalizáveis :
(Com base na resposta @TrytoFly)
Nota : Assumirei que você trabalha em um módulo já criado que chamarei
Vendor_Module
.1. Adicione
is_default
coluna àcatalog_product_option_type_value
tabelaNota : Não se esqueça de alterar a versão comparada de acordo com o seu módulo
2. Defina e crie um plug-in para adicionar o elemento da caixa de seleção no back office
Nota : Aqui usamos em
Magento\Ui\Component\Form\Element\Checkbox
vez deMagento\Ui\Component\Form\Element\Radio
componente, pois parece que o Magento nunca o define em seus Elementos de formulário.Veja a
vendor\magento\module-ui\view\base\ui_component\etc\definition.xml
linha 112+3. Substitua
Magento\Catalog\Block\Product\View\Options\Type\Select
para verificar o elemento que foi escolhido como "Elemento padrão".4. Atualize a versão do seu módulo e atualize o banco de dados
Melhore a sua
setup_version
emapp/code/Vendor/Module/etc/module.xml
Atualize seu
version
emapp/code/Vendor/Module/composer.json
Execute os seguintes comandos:
fonte