SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | ||
3 | require_once 'app/Mage.php'; | |
4 | ||
5 | Mage::app(); | |
6 | ||
7 | $quote = Mage::getModel('sales/quote') | |
8 | ->setStoreId(Mage::app()->getStore('default')->getId()); | |
9 | ||
10 | if ('do customer orders') { | |
11 | // for customer orders: | |
12 | $customer = Mage::getModel('customer/customer') | |
13 | ->setWebsiteId(1) | |
14 | ->loadByEmail('customer@example.com'); | |
15 | $quote->assignCustomer($customer); | |
16 | } else { | |
17 | // for guesr orders only: | |
18 | $quote->setCustomerEmail('customer@example.com'); | |
19 | } | |
20 | ||
21 | // add product(s) | |
22 | $product = Mage::getModel('catalog/product')->load(8); | |
23 | $buyInfo = array( | |
24 | 'qty' => 1, | |
25 | // custom option id => value id | |
26 | // or | |
27 | // configurable attribute id => value id | |
28 | ); | |
29 | ||
30 | /* [adamw] Bundled product options would look like this: | |
31 | ||
32 | $buyInfo = array( | |
33 | "qty" => 1, | |
34 | "bundle_option" = array( | |
35 | "123" => array(456), //optionid => array( selectionid ) | |
36 | "124" => array(235) | |
37 | ) | |
38 | ); | |
39 | ||
40 | */ | |
41 | $quote->addProduct($product, new Varien_Object($buyInfo)); | |
42 | ||
43 | $addressData = array( | |
44 | 'firstname' => 'Test', | |
45 | 'lastname' => 'Test', | |
46 | 'street' => 'Sample Street 10', | |
47 | 'city' => 'Somewhere', | |
48 | 'postcode' => '123456', | |
49 | 'telephone' => '123456', | |
50 | 'country_id' => 'US', | |
51 | 'region_id' => 12, // id from directory_country_region table | |
52 | ); | |
53 | ||
54 | $billingAddress = $quote->getBillingAddress()->addData($addressData); | |
55 | $shippingAddress = $quote->getShippingAddress()->addData($addressData); | |
56 | ||
57 | $shippingAddress->setCollectShippingRates(true)->collectShippingRates() | |
58 | ->setShippingMethod('flatrate_flatrate') | |
59 | ->setPaymentMethod('checkmo'); | |
60 | ||
61 | ||
62 | /* [adamw] Free shipping would look like this: | |
63 | ||
64 | $shippingAddress->setFreeShipping( true ) | |
65 | ->setCollectShippingRates(true)->collectShippingRates() | |
66 | ->setShippingMethod('freeshipping_freeshipping') | |
67 | ->setPaymentMethod('checkmo'); | |
68 | ||
69 | */ | |
70 | $quote->getPayment()->importData(array('method' => 'checkmo')); | |
71 | ||
72 | $quote->collectTotals()->save(); | |
73 | ||
74 | $service = Mage::getModel('sales/service_quote', $quote); | |
75 | $service->submitAll(); | |
76 | $order = $service->getOrder(); | |
77 | ||
78 | printf("Created order %s\n", $order->getIncrementId()); |