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

14

Estou tentando adicionar um produto de variação ao meu carrinho diretamente por meio de um link. Eu estou configurando o variation_id com a string de consulta. Tanto quanto eu posso dizer que estou enviando os dados exatamente da mesma maneira que o formulário de produto de variação padrão faz.

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

<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. Eu defini os preços para as variações do meu produto no admin. Não sei por que não é tão simples quanto enviar os dados. Qualquer ajuda seria muito apreciada.

    
por ezekielDFM 14.02.2013 / 22:49

2 respostas

9

Descobri isso. Eu estava faltando alguns parâmetros necessários para adicionar um produto variável ao meu carrinho. Os parâmetros ausentes são o variation_id e o tipo de atributo ao qual o variation_id está se referindo. O ID da variação pode ser encontrado no diretório admin > woocomerce > produtos e na guia Variações, ao lado da variação do produto que você criou.

O atributo param é formado pelo prefixo attribute_ e, em seguida, pelo nome do atributo higienizado. Por exemplo, meu atributo é chamado de Stock Colors, então meu tipo de atributo param é attribute_stock-colors. Pelo que eu posso dizer, você acabou de definir attribute_stock-colors=1 porque o método "adicionar ao carrinho" apenas verifica se ele existe.

Veja um exemplo simples de um link que adiciona um produto ao carrinho com o ID de variação 261 de cores de ações:

<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ê precisaria definir o tipo de atributo e o ID de variação dinamicamente a partir das opções escolhidas pelo usuário em um menu suspenso ou algo parecido (a menos que cada produto tenha a mesma variação, o que basicamente faria com que um produto simpel).

    
por ezekielDFM 18.02.2013 / 16:10
10

Eu atualmente trabalho em uma loja de woocommerce v2.1.12 e parece que eles mudaram esse comportamento.

meu ajax url para adicionar itens ao carrinho tem que ter esta aparência:

?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, pois todos esses valores são definidos dentro do formulário de envio / seleção de campos, você só precisa procurar por esses itens.

    
por honk31 28.08.2014 / 10:10