Ryan tem um ótimo código que você pode criar programaticamente um pedido
<?php
global $user;
$product_id = 1;
// Create the new order in checkout; you might also check first to
// see if your user already has an order to use instead of a new one.
$order = commerce_order_new($user->uid, 'checkout_checkout');
// Save the order to get its ID.
commerce_order_save($order);
// Load whatever product represents the item the customer will be
// paying for and create a line item for it.
$product = commerce_product_load($product_id);
$line_item = commerce_product_line_item_new($product, 1, $order->order_id);
// Save the line item to get its ID.
commerce_line_item_save($line_item);
// Add the line item to the order using fago's rockin' wrapper.
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
$order_wrapper->commerce_line_items[] = $line_item;
// Save the order again to update its line item reference field.
commerce_order_save($order);
// Redirect to the order's checkout form. Obviously, if this were a
// form submit handler, you'd just set $form_state['redirect'].
drupal_goto('checkout/' . $order->order_id);
?>
http://www.drupalcommerce.org/questions/3259/it-possible-drupal-commerce-work-without-cart-module
Eu tenho um site onde desejo receber doações anônimas, por isso tenho dois problemas.
- Se um usuário não estiver conectado ao site, ele receberá uma mensagem de acesso negado
- O processo de pagamento solicita nome, endereço etc.
O que eu quero fazer é ter uma página em que você confirme o valor e seja levado para a página de pagamento. Nesse caso, estou usando o PayPal WPS, então seria ótimo redirecionar.
Qualquer conselho que você poderia dar seria apreciado.
Respostas:
Você pode tentar testar um novo módulo chamado Commerce Drush, que possui a seguinte sintaxe:
Solução manual
Para criar um pedido programaticamente no Commerce, você pode usar o código a seguir (ele também funciona com drush, por exemplo
drush -vd -u "$1" scr order_code-7.php
). Por favor, note que ocommerce_payment_example
módulo é necessário.Nota: Conforme sugerido no comentário, se você tiver um erro sobre o método de pagamento desconhecido ao salvar o pedido, verifique se o especificou, por exemplo
fonte
Este script modificado também funciona para usuários anônimos:
fonte
Você precisa adicionar commerce_cart_order_session_save () para que usuários anônimos tenham sua sessão para vincular o navegador ao conteúdo do carrinho.
fonte
1. Se um usuário não estiver conectado ao site, ele receberá uma mensagem de acesso negado
Consegui algo funcionando, mas duvido que seja uma boa prática.
No final, eu traí. No formulário, onde você coloca seus dados, incluindo o endereço de e-mail, crio uma conta de usuário em tempo real e, em seguida, efetuo login. Se um endereço de e-mail estiver pronto para uso, efetuo login no usuário. endereço de e-mail do administrador).
Como meu site só possui a página do formulário de doação quando você acessa essa página, garante que você esteja desconectado (se você não for administrador). Em uma transação bem-sucedida, você será desconectado. Desativei o histórico de pedidos / coloquei os redirecionamentos para que você só possa acessar as páginas que conheço quando estiver logado. Nenhum dado pessoal é armazenado e não é possível ver doações anteriores
Na minha situação, estou feliz com como isso funciona. Não é o ideal e só funcionará em alguns casos.
2. O processo de pagamento solicita nome, endereço etc.
eu fui para
/ admin / commerce / config / checkout
E desativado
fonte