UrDrive Posted November 30, 2020 Share Posted November 30, 2020 (edited) I am trying to create an Invoice with a Regular Product Purchase (No Renewal, Lifetime Purchase, No Shipping Required) when someone calls an external php script however, it is failing due to Quote INSERT INTO `nexus_purchases` ( `ps_active`, `ps_start`, `ps_renewal_price`, `ps_renewal_currency`, `ps_invoice_pending`, `ps_invoice_warning_sent`, `ps_member`, `ps_name`, `ps_app`, `ps_type`, `ps_item_id`, `ps_custom_fields`, `ps_original_invoice`, `ps_tax`, `ps_extra`, `ps_show` ) VALUES ( true, 1606777260, 0, '', 0, false, 1, 'TEST DONT BUY', 'nexus', 'package', 26, '[]', NULL, 0, 'null', 1 ) IPS\Db\Exception: Column 'ps_original_invoice' cannot be null (1048) #0 /var/www/html/community/system/Db/Db.php(948): IPS\_Db->preparedQuery('/*community::co...', Array) #1 /var/www/html/community/system/Patterns/ActiveRecord.php(487): IPS\_Db->insert('nexus_purchases', Array) #2 /var/www/html/community/system/Node/Model.php(2389): IPS\Patterns\_ActiveRecord->save() #3 /var/www/html/community/applications/nexus/sources/Invoice/Invoice.php(1800): IPS\Node\_Model->save() #4 /var/www/html/community/website/licencekeys/activate.php(16): IPS\nexus\_Invoice->markPaid() #5 {main} My Script require $_SERVER['DOCUMENT_ROOT'] . '/community/init.php'; \IPS\Session\Front::i(); $member = \IPS\Member::loggedIn(); $package = \IPS\nexus\Package::load( 26 ); $invoice = new \IPS\nexus\Invoice; $invoice->member = \IPS\Member::load( $member->member_id ); $invoice->currency = "USD"; $invoice->title = $package->title; $invoice->total = $package->price(); $item = $package->createItemForCart( $package->price() ); $invoice->addItem( $item ); $invoice->markPaid(); $invoice->save(); Edited November 30, 2020 by UrDrive Link to comment Share on other sites More sharing options...
Sonya* Posted November 30, 2020 Share Posted November 30, 2020 (edited) Try to add $invoice->original_invoice = 0; Edited November 30, 2020 by Sonya* UrDrive 1 Link to comment Share on other sites More sharing options...
Solution UrDrive Posted November 30, 2020 Author Solution Share Posted November 30, 2020 1 minute ago, Sonya* said: Try to add $invoice->original_invoice = 0; Thank you for your reply, I actually just fixed it by saving the invoice first and then marking it as paid. <?php require $_SERVER['DOCUMENT_ROOT'] . '/community/init.php'; \IPS\Session\Front::i(); $member = \IPS\Member::loggedIn(); $package = \IPS\nexus\Package::load( 26 ); $invoice = new \IPS\nexus\Invoice; $invoice->member = \IPS\Member::load( $member->member_id ); $invoice->currency = "USD"; $invoice->title = $package->title; $invoice->total = $package->price(); $item = $package->createItemForCart( $package->price() ); $invoice->addItem( $item ); $invoice->save(); $invoice->markPaid(); ?> Link to comment Share on other sites More sharing options...
Recommended Posts