Ryan tiene un gran código que puede crear mediante programación un 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
Tengo un sitio donde quiero recibir donaciones anónimas, así que tengo dos problemas.
- Si un usuario no ha iniciado sesión en el sitio, recibe un mensaje de acceso denegado
- El proceso de pago solicita nombre, dirección, etc.
Lo que quiero hacer es tener una página donde confirme el monto y luego sea llevado a la página de pago. En este caso, estoy usando PayPal WPS, por lo que redirigir allí sería genial.
Cualquier consejo que pueda dar sería apreciado.
Respuestas:
Puede intentar probar un nuevo módulo llamado Commerce Drush que tiene la siguiente sintaxis:
Solución manual
Para crear un pedido mediante programación en Commerce, puede usar el siguiente código (también funciona con drush, por ejemplo
drush -vd -u "$1" scr order_code-7.php
). Tenga en cuenta quecommerce_payment_example
se requiere un módulo.Nota: Como se sugiere en el comentario, si tiene un error sobre el método de pago es desconocido al guardar el pedido, asegúrese de haberlo especificado, p. Ej.
fuente
Este script modificado también funciona para los usuarios anónimos:
fuente
Debe agregar commerce_cart_order_session_save () para que el usuario anónimo tenga su sesión para vincular el navegador con el contenido del carrito.
fuente
1. Si un usuario no ha iniciado sesión en el sitio, recibe un mensaje de acceso denegado
Tengo algo funcionando pero dudo mucho que sea la mejor práctica.
Al final hice trampa. En mi formulario donde pones tus datos, incluida la dirección de correo electrónico, creo una cuenta de usuario sobre la marcha y luego ingreso al usuario. Si una dirección de correo electrónico está lista para usar, ingreso al usuario (me aseguro de que no estés usando dirección de correo electrónico del administrador).
Como mi sitio solo tiene la página del formulario de donación cuando llega a esa página, se asegura de que haya cerrado la sesión (si no es administrador). En una transacción exitosa, cierra la sesión. Desactivé el historial de pedidos / establecí redirecciones para que solo pueda ir a las páginas que conozco cuando inicie sesión. No se almacenan datos personales y no puedo ver donaciones pasadas
En mi situación, estoy contento con cómo funciona esto. No es ideal y solo funcionará en algunos casos.
2. El proceso de pago solicita nombre, dirección, etc.
fui a
/ admin / commerce / config / checkout
Y deshabilitado
fuente