Ryan hat einen großartigen Code, mit dem Sie programmgesteuert eine Bestellung erstellen können
<?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
Ich habe eine Website, auf der ich anonyme Spenden entgegennehmen möchte, daher habe ich zwei Probleme.
- Wenn ein Benutzer nicht auf der Site angemeldet ist, erhält er eine Meldung, dass der Zugriff verweigert wurde
- Beim Checkout werden Name, Adresse usw. abgefragt.
Ich möchte eine Seite haben, auf der Sie den Betrag bestätigen und dann zur Zahlungsseite weitergeleitet werden. In diesem Fall verwende ich PayPal WPS. Eine Umleitung wäre also großartig.
Jeder mögliche Rat, den Sie geben könnten, würde geschätzt.
Antworten:
Sie können versuchen, ein neues Modul namens Commerce Drush mit der folgenden Syntax zu testen :
Manuelle Lösung
Zum programmgesteuerten Erstellen eines Auftrags in Commerce können Sie den folgenden Code verwenden (funktioniert auch mit drush, z
drush -vd -u "$1" scr order_code-7.php
. B. ). Bitte beachten Sie, dass dascommerce_payment_example
Modul erforderlich ist.Hinweis: Wenn Sie, wie im Kommentar vorgeschlagen, beim Speichern der Bestellung einen Fehler bezüglich der Zahlungsmethode nicht kennen , geben Sie diesen an, z
quelle
Dieses geänderte Skript funktioniert auch für anonyme Benutzer:
quelle
Sie müssen commerce_cart_order_session_save () hinzufügen, damit anonyme Benutzer ihre Sitzung haben, um den Browser mit Warenkorbinhalten zu verknüpfen.
quelle
1. Wenn ein Benutzer nicht auf der Site angemeldet ist, erhält er eine Meldung, dass der Zugriff verweigert wurde
Ich habe etwas zum Laufen gebracht, bezweifle jedoch, dass es sich um eine bewährte Methode handelt.
Am Ende habe ich geschummelt. Auf meinem Formular, auf dem Sie Ihre Daten einschließlich der E - Mail - Adresse eintragen, erstelle ich im Handumdrehen ein Benutzerkonto und logge den Benutzer ein. Wenn eine E - Mail - Adresse vollständig verwendet wird, logge ich den Benutzer ein E-Mail-Adresse des Administrators).
Da meine Website nur die Spendenformularseite enthält, wenn Sie auf diese Seite klicken, wird sichergestellt, dass Sie abgemeldet sind (wenn Sie kein Administrator sind). Bei einer erfolgreichen Transaktion werden Sie abgemeldet. Ich habe den Bestellverlauf deaktiviert / Weiterleitungen eingerichtet, sodass Sie nur die Seiten aufrufen können, die mir bekannt sind, wenn Sie angemeldet sind. Es werden keine persönlichen Daten gespeichert, und vergangene Spenden werden nicht angezeigt
In meiner Situation bin ich zufrieden damit, wie das funktioniert. Es ist nicht ideal und funktioniert nur in wenigen Fällen.
2. Beim Auschecken werden Name, Adresse usw. abgefragt.
ich ging zu
/ admin / commerce / config / checkout
Und behinderte
quelle