Ryan a un excellent code que vous pouvez créer par programmation une commande
<?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
J'ai un site où je veux faire des dons anonymes donc j'ai deux problèmes.
- Si un utilisateur n'est pas connecté au site, il reçoit un message d'accès refusé
- Le processus de commande demande le nom, l'adresse, etc.
Ce que je veux faire, c'est avoir une page où vous confirmez le montant, puis vous serez redirigé vers la page de paiement. Dans ce cas, j'utilise PayPal WPS, donc la redirection serait formidable.
Tout conseil que vous pourriez donner serait apprécié.
Réponses:
Vous pouvez essayer de tester un nouveau module appelé Commerce Drush qui a la syntaxe suivante:
Solution manuelle
Pour créer une commande par programme dans Commerce, vous pouvez utiliser le code suivant (il fonctionne également avec drush, par exemple
drush -vd -u "$1" scr order_code-7.php
). Veuillez noter que lecommerce_payment_example
module est requis.Remarque: Comme suggéré dans le commentaire, si vous avez une erreur sur le mode de paiement est inconnue lors de l'enregistrement de la commande, assurez-vous que vous l'avez spécifié, par exemple
la source
Ce script modifié fonctionne également pour les utilisateurs anonymes:
la source
Vous devez ajouter commerce_cart_order_session_save () pour qu'un utilisateur anonyme ait sa session pour lier le navigateur au contenu du panier.
la source
1. Si un utilisateur n'est pas connecté au site, il reçoit un message d'accès refusé
J'ai obtenu que quelque chose fonctionne, mais je doute fortement que ce soit la meilleure pratique.
Finalement, j'ai triché. Sur mon formulaire où vous mettez vos coordonnées, y compris l'adresse e-mail, je crée un compte utilisateur à la volée, puis je connecte l'utilisateur. Si une adresse e-mail est prête à l'emploi, je connecte l'utilisateur. (Je m'assure que vous n'utilisez pas le adresse e-mail de l'administrateur).
Comme mon site n'a que la page du formulaire de don lorsque vous cliquez sur cette page, il vous assure que vous êtes déconnecté (si vous n'êtes pas administrateur). Lors d'une transaction réussie, il vous déconnecte. J'ai désactivé l'historique des commandes / mis en place des redirections afin que vous ne puissiez accéder qu'aux pages que je connais lorsque vous êtes connecté. Aucune donnée personnelle n'est stockée et je ne peux pas voir les dons passés
Dans ma situation, je suis satisfait de la façon dont cela fonctionne. Ce n'est pas idéal et ne fonctionnera que dans quelques cas.
2. Le processus de commande demande le nom, l'adresse, etc.
je suis allé à
/ admin / commerce / config / checkout
Et désactivé
la source