Adicionar produto de variação ao carrinho do link personalizado [fechado]

15

Estou tentando adicionar um produto de variação ao meu carrinho diretamente por meio de um link. Estou definindo o selection_id com a string de consulta. Pelo que sei, estou enviando os dados exatamente da mesma maneira que o formulário de produto de variação padrão.

Aqui está o código dentro da minha página de produto único:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a>

Por outro lado, o produto simples funciona bem. Defina os preços para minhas variações de produto no administrador. Não sei por que não é tão simples quanto enviar os dados. Qualquer ajuda seria muito apreciada.

ezekielDFM
fonte

Respostas:

10

Atualmente, trabalho em uma loja de woocommerce v2.1.12 e parece que eles perseguiram esse comportamento.

meu URL do ajax para adicionar itens ao carrinho deve ficar assim:

?add-to-cart=[PRODUCT-ID]&variation_id=[VARIATION-ID]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]

exemplo:

http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold

isso adiciona um produto específico ao carrinho e também define os atributos de variação no carrinho. você pode até definir a quantidade simplesmente adicionando&quantity=[VALUE]

no final, isso é útil, uma vez que todos esses valores são definidos dentro do formulário de envio / selecione campos, basta procurar esses valores.

honk31
fonte
2
Nota rápida - inspecione o campo de seleção de variações para obter o nome do atributo apropriado. Ele geralmente usa hífens, então você obtém: & attribute_my-attribute-name = value
Ideias imperativas
9

Descobri este. Faltavam alguns parâmetros necessários para adicionar um produto variável ao meu carrinho. Os parâmetros ausentes são variation_ide o tipo de atributo ao qual variation_idestá se referindo. O ID da variação pode ser encontrado nos produtos admin> woocomerce> e na guia variações ao lado da variação do produto que você criou.

O parâmetro param é formado a partir do prefixo attribute_e, em seguida, o nome do atributo higienizado. Por exemplo, meu atributo se chama Cores de estoque, portanto, meu tipo de atributo param é attribute_stock-colors. Pelo que sei, você acabou de definir attribute_stock-colors=1porque o método add to cart apenas verifica se ele existe.

Aqui está um exemplo simples de um link que adiciona um produto ao meu carrinho com o ID de variação 261 das cores do estoque:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">Add to Cart</a>

Para usar isso em uma situação real, você precisa definir dinamicamente o tipo de atributo e o ID da variação nas opções que o usuário selecionou em um menu suspenso ou algo parecido (a menos que cada produto tenha a mesma variação, o que basicamente o tornaria um produto simpel )

ezekielDFM
fonte