cancel
Showing results for 
Search instead for 
Did you mean: 

Trying to create orders, but stops at SubmitAll

Trying to create orders, but stops at SubmitAll

magento 1.9.3.7

error_reporting(E_ALL);
echo "starting...<br>"; 
require 'app/Mage.php';

$sql = "SELECT * FROM CubeCart_order_sum order by time ASC limit 1";
$res = mysqli_query($db_target,$sql);
while($obj = mysqli_fetch_object($res)) {
	echo "step 1<br>";
	Mage::app(1);
  $customer = Mage::getModel('customer/customer')
  		->setWebsiteId(1)
  		->load(410);
  
  echo "step 2<br>";
  $quote = Mage::getModel('sales/quote')->setStoreId(1);
  $quote->assignCustomer($customer);	
$quote->setInventoryProcessed(true);

	echo "step 3<br>";
	$_prod = Mage::getModel('catalog/product')->load(265404);
	$quote->addProduct($_prod,new Varien_Object(array('qty' => $_POST['qty'])));

	echo "step 4<br>";
	$quote->collectTotals()->save();
	echo "step 5<br>";
	$service = Mage::getModel('sales/service_quote', $quote);
	echo "step 6<br>";
	$service->submitAll();
	echo "step 7<br>";
	
}


?>

step 7 is not printed on the screen, so I assume something went wrong there... and also no order was created

 

what am I doing wrong?

5 REPLIES 5

Re: Trying to create orders, but stops at SubmitAll

Hello @Loginname 

 

Here is the guide to help you with place order programmatically.

 

https://magento.stackexchange.com/questions/226925/how-to-create-order-programmatically-with-custome...

Was my answer helpful? You can accept it as a solution.
175+ Professional Extensions for M1 & M2
Need a developer?Just visit Contact Us Now

Re: Trying to create orders, but stops at SubmitAll

@Loginname use below link to create order programmatically.

 

http://www.blogtreat.com/programmatically-create-new-order-magento/

 

Thanks

Re: Trying to create orders, but stops at SubmitAll

Hi

 

It almost worked. I get the "There was an error processing your order. Please contact us or try again later." message.:

 

step 4
step 5
step 6
step 7
step 8
There was an error processing your order. Please contact us or try again later.

 

Digging into the logging folder I find this errors which was created when I ran the script:

Notice: Array to string conversion

 

I`ve been looking into where this array is being created withot finding it. This script is being executed on PHP 7.0.33

 

Any suggestions?

<?php
//http://www.blogtreat.com/programmatically-create-new-order-magento/
//https://magento.stackexchange.com/questions/226925/how-to-create-order-programmatically-with-customer-email-in-magento-1-9


error_reporting(E_ALL);
echo "starting...<br>"; 
require 'app/Mage.php';
echo "initializing...<br>"; 
umask(0);
//Mage::app('default');
Mage::app(1);
$store = Mage::app()->getStore();
$website = Mage::app()->getWebsite();
 
// initialize sales quote object
//$quote = Mage::getModel('sales/quote')->setStoreId($storeId); 
$quote = Mage::getModel('sales/quote')->setStoreId(1); 
// set customer information
$test_email = "test@test.com";
$customer_email = $test_email;
$customer_firstname = "test"; 
$customer_lastname = "test";
echo "step 1<br>";
$billingAddress = array(
    'customer_address_id' => '',
    'prefix' => '',
    'firstname' => 'test',
    'middlename' => '',
    'lastname' => 'test',
    'suffix' => '',
    'company' => '', 
    'street' => array(
        '0' => 'Thunder River Boulevard', // required
        '1' => 'Customer Address 2' // optional
    ),
    'city' => 'Teramuggus',
    'country_id' => 'US', // country code
    'region' => 'Alaska',
    'region_id' => '2',
    'postcode' => '99767',
    'telephone' => '123-456-7890',
    'fax' => '',
    'save_in_address_book' => 1
);
 
$shippingAddress = array(
    'customer_address_id' => '',
    'prefix' => '',
    'firstname' => 'test',
    'middlename' => '',
    'lastname' => 'test',
    'suffix' => '',
    'company' => '', 
    'street' => array(
        '0' => 'Thunder River Boulevard', // required
        '1' => 'Customer Address 2' // optional
    ),
    'city' => 'Teramuggus',
    'country_id' => 'US',
    'region' => 'Alaska',
    'region_id' => '2',
    'postcode' => '99767',
    'telephone' => '123-456-7890',
    'fax' => '',
    'save_in_address_book' => 1
);

// check whether the customer already registered or not
$customer = Mage::getModel('customer/customer')->setWebsiteId($website->getId())->loadByEmail($test_email);
echo "kundeid =  " . $customer->getId() . "<br>";
if (!$customer->getId()) {
 
 echo "fant ikke kunden, oppretter den nå...<br>";
    // create the new customer account if not registered
    $customer = Mage::getModel('customer/customer'); 
    $customer->setWebsiteId($website->getId())
             ->setStore($store)
             ->setFirstname($customer_firstname)
             ->setLastname($customer_lastname)
             ->setEmail($customer_email);
 
    try {
        $password = $customer->generatePassword(); 
        $customer->setPassword($password);
  
        // set the customer as confirmed
        $customer->setForceConfirmed(true);
        $customer->save();
  
        $customer->setConfirmation(null);
        $customer->save();
  
        // set customer address
        $customerId = $customer->getId(); 
        $customAddress = Mage::getModel('customer/address'); 
        $customAddress->setData($billingAddress)
                      ->setCustomerId($customerId)
                      ->setIsDefaultBilling('1')
                      ->setIsDefaultShipping('1')
                      ->setSaveInAddressBook('1');
  
        // save customer address
        $customAddress->save();
  
        // send new account email to customer
        $storeId = $customer->getSendemailStoreId();
        $customer->sendNewAccountEmail('registered', '', $storeId);
  
        // set password remainder email if the password is auto generated by magento
        $customer->sendPasswordReminderEmail();
 
    } catch (Exception $e) {
        Mage::logException($e);
    } 
}
 
// assign the customer to quote
$quote->assignCustomer($customer);
echo "assigning customer...<br>";
// set currency for the quote
$quote->setCurrency(Mage::app()->getStore()->getBaseCurrencyCode());
echo "setting currency<br>";  
//$productIds = array(337 => 2, 338 => 3);
$productIds = array(265404 => 1);
echo "product id...<br>";  

echo "<pre>";
print_r($productIds);
echo "</pre>";

// add products to quote
/*
foreach($productIds as $productId => $qty) {
	try {
    $product = Mage::getModel('catalog/product')->load($productId);
    echo $product->getId() . "<br>";
    $quote->addProduct($product, $qty);
  } catch (Exception $e) {
  	echo $e->getMessage() . "<br>";
  }
}
*/

echo "<hr>";

    $product = Mage::getModel('catalog/product')->load(265404);
    echo $product->getId() . "<br>";
    $quote->addProduct($product, 1);
    
    
    
echo "step 2<br>"; 
// add billing address to quote
$billingAddressData = $quote->getBillingAddress()->addData($billingAddress);
echo "step 3<br>";    
// add shipping address to quote
$shippingAddressData = $quote->getShippingAddress()->addData($shippingAddress);
echo "step 4<br>";   
// collect shipping rates on quote
$shippingAddressData->setCollectShippingRates(true)->collectShippingRates(); //orginalt var det false
echo "step 5<br>";    
// set shipping method and payment method on the quote
//$shippingAddressData->setShippingMethod('flatrate_flatrate')
//                    ->setPaymentMethod('paypal_express');
                    
$shippingAddressData->setShippingMethod('flatrate_flatrate');
                              
echo "step 6<br>";   
// Set payment method for the quote
try {
$quote->getPayment()->importData(array('method' => 'paypal_express'));
echo "step 7<br>";   

    // collect totals & save quote
    $quote->collectTotals()->save();
echo "step 8<br>";  
    // create order from quote
    $service = Mage::getModel('sales/service_quote', $quote);
    $service->submitAll();
echo "step 9<br>";     
    $increment_id = $service->getOrder()->getRealOrderId();
 
    echo 'Order Id: ' .$increment_id;
  
} catch (Exception $e) {
		 echo $e->getMessage() . "<br>";
    Mage::logException($e);
}

Re: Trying to create orders, but stops at SubmitAll

I forgot to mention that the exception.log file report this in regard to my error:
public_html/app/code/core/Mage/Paypal/Model/Api/Nvp.php(999): Mage::throwException('There was an er...')

 

This is related to the Array to string conversion error

 

hope that can give you some clue what is wrong?

Re: Trying to create orders, but stops at SubmitAll

@Loginname This issue might be related with php version.

 

Can you please let me know which version are you currently using?