Райан имеет отличный код, который вы можете программно создать заказ
<?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
У меня есть сайт, где я хочу принимать анонимные пожертвования, поэтому у меня две проблемы.
- Если пользователь не вошел на сайт, он получает сообщение об отказе в доступе.
- Процесс проверки запрашивает имя, адрес и т. Д.
То, что я хочу сделать, это иметь страницу, где вы подтверждаете сумму, а затем переходите на страницу оплаты. В этом случае я использую PayPal WPS, так что перенаправление там было бы здорово.
Будем благодарны за любые советы, которые вы можете дать.
Ответы:
Вы можете попробовать протестировать новый модуль под названием Commerce Drush, который имеет следующий синтаксис:
Ручное решение
Для программного создания заказа в Commerce вы можете использовать следующий код (например, он работает и с Drush
drush -vd -u "$1" scr order_code-7.php
). Обратите внимание, чтоcommerce_payment_example
модуль обязателен.Примечание. Как указано в комментарии, если при сохранении заказа вы получили ошибку о способе оплаты неизвестно , убедитесь, что вы ее указали, например:
источник
Этот модифицированный скрипт работает также для анонимных пользователей:
источник
Вам нужно добавить commerce_cart_order_session_save (), чтобы у анонимного пользователя был сеанс связи браузера с содержимым корзины.
источник
1. Если пользователь не вошел на сайт, он получает сообщение об отказе в доступе.
У меня что-то работает, но я очень сомневаюсь, что это лучшая практика.
В конце концов я обманул. В моей форме, куда вы помещаете свои данные, включая адрес электронной почты, я создаю учетную запись пользователя на лету, а затем регистрирую пользователя. Если адрес электронной почты полностью готов к использованию, я регистрирую пользователя. (Я уверен, что вы не используете адрес электронной почты администратора).
Поскольку мой сайт имеет страницу формы пожертвования, когда вы переходите на эту страницу, он гарантирует, что вы вышли из системы (если вы не являетесь администратором). При успешной транзакции он выходит из системы. Я отключил историю заказов / установил перенаправления, чтобы вы могли заходить только на те страницы, о которых я знаю, когда залогинены. Личные данные не сохраняются и не видны в прошлом.
В моей ситуации я доволен тем, как это работает. Это не идеально и будет работать только в нескольких случаях.
2. Процесс проверки запрашивает имя, адрес и т. Д.
я пошел в
/ Администратор / реклама / конфигурации / выписка
И отключен
источник