Magento - Set Order as Complete for Free Downloable Product - magento

I searched a lot on this website but couldn't find a specific answer for my problem so here i go, thanks in advance.
I have Store Credit and Coupons working on my Store, with Credit Card. Store credit is working fine, also the coupons but i cannot make those purchases to be ser as COMPLETE. They stay in "Pending" and i need it as Complete so the download will be enable. If downloadble product is in Pending, then you cannot download.
The place where i worked a lot is on app/code/core/Mage/Payment/Model/Method/Free.php
I checked on this file and at the bottom i have:
/**
* Get config payment action, do nothing if status is pending
*
* #return string|null
*/
public function getConfigPaymentAction()
{
return $this->getConfigData('order_status') == 'pending' ? null : parent::getConfigPaymentAction();
}
It's saying: "If pending, do nothing"...and what i want if it's pending, change it as Complete.
Also i'm using Zero Subtotal Checkout and it's setup as "Complete" th status but seems that's not working or something is overriding this.

By default, users can only download when the invoice is made(order complete). You can, however, change this setting so that users can download products on pending orders.
Here's how to do it:
Go to System->Configuration->Catalog->Downloadable Product Options and change the value for Order Item Status to Enable Download to Pending.

Soledad, There are two approaches to this issue. Firstly, set up the status for downloadable products correctly and use Zero Checkout Payment Method. Secondly, if the first one is not working, add manually the status. I've written an article about it at my blog. I hope it helps.

Related

How many lines and documents should be there in the training data opennlp categorizer

I am following the documentation for Apache open-nlp. I was able to understand the sentence detection, tokenizer, name-finder. But I got stuck for Categorizer. The reason, I can not understand, how to create a model for Categorization.
I do understand that I need to create a file. The format is very clear, it needs to be a category space and a document in a single line. Save the file with .train extension.
So I created the following file:
Refund What is the refund status for my order #342 ?
NewOffers Are there any new offers for your products ?
I gave this command-
opennlp DoccatTrainer -model en-doccat.bin -lang en -data en-doccat.train -encoding UTF-8
It starts doing something and then returns with an error. These are the contents in the command prompt:
Indexing events using cutoff of 5
Computing event counts... done. 2 events
Indexing... Dropped event Refund:[bow=What, bow=is, bow=the, bow=refund, bow=status, bow=for, bow=my, bow=order, bow=#342, bow=?]
Dropped event NewOffers:[bow=Are, bow=there, bow=any, bow=new, bow=offers, bow=for, bow=your, bow=products, bow=?]
done.
Sorting and merging events... Done indexing.
Incorporating indexed data for training...
Exception in thread "main" java.lang.NullPointerException
at opennlp.maxent.GISTrainer.trainModel(GISTrainer.java:263)
at opennlp.maxent.GIS.trainModel(GIS.java:256)
at opennlp.model.TrainUtil.train(TrainUtil.java:184)
at opennlp.tools.doccat.DocumentCategorizerME.train(DocumentCategorizerME.java:162)
at opennlp.tools.cmdline.doccat.DoccatTrainerTool.run(DoccatTrainerTool.java:61)
at opennlp.tools.cmdline.CLI.main(CLI.java:222)
I am just not able to figure out why is this giving a null pointer exception here? I also tried to increase two more lines, but no result.
Refund What is the refund status for my order #342 ?
NewOffers Are there any new offers for your products ?
Refund Can I place a refund request for electronics ?
NewOffers Is there any new offer on buying worth 5000 ?
I found this blog, but here also pretty much the same thing is done. On trying his training file it works with a charm. What is wrong in my file? How do I resolve the error.
When I try opennlp DoccatTrainer it opens help for me, so path is not an issue. Any help is appreciated.
EDIT: I changed the file to
Refund What is the refund status for my order #342 ? Can I place a refund request for clothes ?
NewOffers Are there any new offers for your products ? what are the offers on new products or new offers on old products?
Refund Can I place a refund request for electronics ?
NewOffers Is there any new offer on buying worth 5000 ?
and it works, I thought it has got to do something with the document (apparently should be two sentences) and removed the last two lines.
to make it
Refund What is the refund status for my order #342 ? Can I place a refund request for clothes ?
NewOffers Are there any new offers for your products ? what are the offers on new products or new offers on old products?
But then again it fails, the question now summarizes to what kind of data/ format/document does it need?
Thanks
you have to add more than 5 samples from each category. because default cutoff mark size is 5,
Please refer this blog post
http://madhawagunasekara.blogspot.com/2014/11/nlp-categorizer.html
You can use the -cutoff flag in your DoccatTrainer command to change the default. In your case, you would add -cutoff 1 to set the minimum number of documents per category to 1.

Magento setStockStatusChangedAutomaticallyFlag: what does it do?

What does the method setStockStatusChangedAutomaticallyFlag do in Magento?
I've done some digging in the source code and I can't quite work out what it does
As a product is purchased on magento site and if the inventory is set, that is decreased by the amount the product is purchased, moreover if the order is cancelled the product quantity is increased again.
This is done by :
$product->setStockData($stockData);
after a successful order.
Although whether to do above process or not is defined by a flag "setStockStatusChangedAutomatically" if Yes it works as above else not.

Magento CE 1.7.0.2 - Editing order not canceling original

I'm not sure exactly what change would of caused the issue where if I edit a processing order and place new one it does not cancel the original one. Looked on Google and StackOverflow for existing solution but came up empty really.
Steps to Reproduce (Scenario):
You need to edit an order because customer forgot to add an item to it so I click "Edit" on that order which is in "Processing" status
Place the order
Looking at the Sales->orders list I can see that the original order is in Processing status still IN ERROR. The new order has same order# with "-1" appended at end which is good
So, I was wondering if anyone else has experienced such an issue. It used to cancel the original order after you placed it. The warning JS message that pops up after clicking "Edit" says it would place new order and mark current as Canceled so something is wrong. Nothing seems out of the ordinary in my config.
EDIT: Guess nobody has experienced an issue such as this. I can't think of anything that would cause this. Since this post I've upgraded Magento to CE 1.7.0.2.
Thanks,
George
EDIT: Screenshot attached:
You can't cancel order that is already processing ( invoiced ) / Shipped / Complete !!
You only can cancel order in NEW State
In your case you had an invoiced order and you want to do re-order :-
Press Edit and go ahead with the new Orders ( The order will be suffixed by -1/-2 because this means this order linked/related to the previous order )
Go the original order and Refund it complete ( it will be in closed state / status )
You need to understand the work flow of the order and the operations you can take on the order in EACH STATE

magento order id increment jumps

For some reason order ID's (increment_id on sales_flat_order table) are not incrementing subsequently on my Magento 1.6.1. This is how it looks after a number of live orders placed:
increment_id created_at updated_at
100000001 2011-12-14 12:35:24 2011-12-14 12:35:25
100000002 2011-12-14 13:02:39 2011-12-14 13:02:39
100000003 2011-12-14 13:04:18 2011-12-14 13:04:18
100000004 2012-02-01 16:54:58 2012-02-01 16:54:58
100000005 2012-03-14 12:22:35 2012-03-14 12:22:35
100000006 2012-03-20 13:10:48 2012-03-20 13:10:48
100000011 2012-03-29 20:58:48 2012-03-29 20:58:48
100000012 2012-03-29 21:06:43 2012-03-29 21:06:43
100000013 2012-03-30 10:48:20 2012-03-30 10:48:21
100000014 2012-03-30 13:05:40 2012-03-30 13:05:41
100000015 2012-04-03 15:51:01 2012-04-03 15:51:02
100000016 2012-04-19 15:00:49 2012-04-19 15:00:50
100000017 2012-05-09 12:09:21 2012-05-09 12:09:22
100000019 2012-05-24 05:35:35 2012-05-24 05:35:36
100000020 2012-05-24 05:41:11 2012-05-24 05:41:12
100000008 2012-05-24 05:48:52 2012-05-24 05:48:53
My question is why is Magento jumping increments sometimes? And worse yet, in my example order with increment 100000008 goes after 100000020. Does someone know why this is happening and if there's a way to fix it?
This is normal, albeit understandably disconcerting.
When Magento enters the checkout process it 'reserves' an increment_id and places it on the quote (cart) object. You can see the code that gets an increment id at:
Mage_Eav_Model_Entity_Type::fetchNewIncrementId()
The last used ID for each store is stored in eav_entity_store. If a customer abandons their cart (ie the quote object) before completing the checkout process, the reserved increment_id will never show up on an order. You can see this effect sometimes in the order numbers as they come in on a busy store - occassionally a really old order id comes through in the day's orders from a customer that is checking out an old cart.
This behaviour exists to allow Magento to send payment gateways the final order id (increment_id), before the order is completed allowing the gateway to associate the order id with the order. If the customer abandons the payment process in the gateway, the order id is dead (or more correctly still attached to the quote).
You can see this happening in the PayPal express module at:
Mage_Paypal_Model_Express_Checkout::start()
which calls
Mage_Sales_Model_Quote::reserveOrderId()
If you want to find your 'missing' increment_ids, take a look in sales_flat_quote under the field reserved_order_id. You should see them attached to unconverted quote objects (carts).
This behaviour can create issues with some payment gateways; Moneris comes to mind. When you send Moneris' hosted paypage the same order id twice, it chokes and creates a cryptic error state for the customer. This condition occurs when the customer visits the hosted pay page, backs out and re-visits the page. Hence in some cases, it is necessary to re-generate the order id associated with the quote object programmatically.
I was facing the same issue but it was only when the server was hit with a huge amount of load. This issue occurs because the db goes into the lock state while converting quote into order. On further inspection, I found out that the issue was that it tried to write into sales_flat_order_grid table within transaction right after insert into sales_flat_order table. With concurrent queries it caused locking collisions. The real solution is to move stuff of sales_flat_order_grid out of the transaction.
The link helped me understand the issue
The patch resolved the issue for me.
You have to remove function _afterSave from the Mage_Sales_Model_Abstract and add
public function afterCommitCallback(){
if (!$this->getForceUpdateGridRecords()) {
$this->_getResource()->updateGridRecords($this->getId());
}
parent::afterCommitCallback();
}
Let me know if it solves the problem for you.
We have had this same issue multiple times over the past couple of months. Upon checking our payment service provider transaction list we see 1000's of low value (micro) transactions being declined due to potential fraud issues. My opinion is that a fraudster is trying to use our checkout process to probe the list of cards they have to find out what cards are valid and what cards are dead. I have reported it to action fraud, our web host and our payment provider.
In summary, my advise would be for you to check your PSP list of transactions for the same time period.
Good luck with it,
Brisc.

Magento - Google Checkout Free Shipping Problem

I have set up Google Checkout on my Magento store and I'm using Flat Rates for the shipping. the problem is if I put zero for the rate ie. free shipping I get a message when I go to checkout saying that I don't ship to that country.
If I add any value into the rate (even 0.01) it works fine.
Here is a screen of the config which doesn't work:
http://skitch.com/a1anm/dqmw2/configuration-system-magento-admin
Here is a screen of the config which does work:
http://skitch.com/a1anm/dqmw9/configuration-system-magento-admin
Here is a screen of the error I get at checkout if I set the shipping rate to 0.00:
http://skitch.com/a1anm/dqmim/secure-checkout-with-google
Any ideas why this isn't working?
I believe (and I can't check, so I'm going off of memory here) that if the rate is set to 0.00, the Shipping module returns false and there are no available shipment methods. I think you'll have to create a cart discount rule in order to get it to return true and get you over to GC with free shipping.

Resources