I'm setting up a merchello installation for a client using the Fast Track implementation and have run into an issue that might be related to the fact that the client does not charge for shipping (they do local deliveries only and do not charge for it).
As a result I do not have a shipping provider configured so customers skip the Ship Quote page and customers complete checkout with Purchase Order as the only payment option (the client sends the customer an invoice and customer pays by check).
What they would like to do in the back office is when an order placed, they want to be able to mark the items as shipped when they go make the local delivery. However when viewing unpaid invoices the only options are 'Capture Funds' and 'Manage adjustments'.
I have a feeling the 'Fulfill' button is missing because the items aren't exactly shippable and are not marked as such.
Also I noticed that when paying an invoice in full, the inventory of the product ordered isn't updated. I have inventory tracking enabled for the product I'm testing with. I assume this is a result of a configuration setting I missed somewhere?
Any help or pointers with these two scenarios is greatly appreciated.
The easiest way is actually to create a shipping method in the FlatRateProvider with a range of values 0 to 9999999 or something with a price of $0.
This way you get a shipping line item with a FREE amount. The shipping line item has a serialized shipment that is used as the template for the shipment creation that was quoted. This is useful when quoting multiple shipments in a checkout (advanced implementation).
If you want to skip the checkout phase, save the FREE quote generated from the ship method to the CheckoutManager.Shipping provider and skip rendering the ship method selection view.
We have a to do to add a FREE over amount shipping provider to the Core (which is actually pretty quick to build - but has not been a priority and keeps getting bumped back) http://issues.merchello.com/youtrack/issue/M-985
Ok so I was able to get through checkout with the Free Shipping option configured but the fulfill button is still missing when I pull up the invoice and I think it's because an order isn't being created.
I set a breakpoint in the hasUnPackagedLineItems() method in merchelo.controllers.js and noticed that $scope.invoice.orders.length is 0.
Does that mean that this setting isn't working for some reason?
I double checked and I have the "All items are shippable" setting checked and I checked the individual item I checked out with as well and it's marked as shippable. I just now noticed in my previous comment that I forgot to put the xml I added into a code block and as a result it was stripped out.
I assumed that having this set to true would automatically create an order in addition to the invoice correct?
I went and paid the invoice and when I did that the "Fulfill" button showed up and I was able to mark it as shipped with no problems.
I guess what I need is for the "Fulfill" button to display before the invoice is paid. I thought setting the "AlwaysApproveOrderCreation" to true would do that but I guess that isn't the case. Is there a way to make the button show before the invoice is paid?
I was going to make a change in the merchello.controllers.js file to set $scope.showFulfill = true (in the loadInvoice function) but wasn't sure if that was the right thing to do and if so how to get that change to persist when I deploy the code (I tried it once and didn't see my change reflected on the server even when clearing the browser cache).
I'll make this one a priority since there have been a few requests for this sort of workflow alteration. If you get your solution to work as desired, I'd love to see a pull =) If your just planning on doing a simple view tweak - it'd be great if you post your alteration here or as a gist so I can see what wound up working for you ...
Caching is usually not an issue on deploys (especially if the application resets). If you have your developer tools open it with the "Disable cache (while DevTools is open)" or equivalent if not using Chrome - you should not have any issues.
My reasoning is I noticed I don't see a new record in the merchOrder table when the order is placed. I see the new invoice in merchInvoices but I don't see a new order record. I verified that the items are shippable. Should a new record be there when an order is placed?
If there was a way to get that order record created then I think everything would work fine and there's no need to hack the view which I'm trying to avoid.
I'm using Fast Track as is and haven't implemented any custom code other than restructuring the views to match the theme of my site.
I'll see if can do some more debugging and see why the order isn't getting created.
I was thinking, in the mean time is it feasible for me to just download the source code for version 2.4.0 and include the fix and build the source and update the merchello.core DLL with that? Or should I just make a custom Payment Gateway class in the current version and include the fix there?
Fulfill button missing
Hi,
I'm setting up a merchello installation for a client using the Fast Track implementation and have run into an issue that might be related to the fact that the client does not charge for shipping (they do local deliveries only and do not charge for it).
As a result I do not have a shipping provider configured so customers skip the Ship Quote page and customers complete checkout with Purchase Order as the only payment option (the client sends the customer an invoice and customer pays by check).
What they would like to do in the back office is when an order placed, they want to be able to mark the items as shipped when they go make the local delivery. However when viewing unpaid invoices the only options are 'Capture Funds' and 'Manage adjustments'.
I have a feeling the 'Fulfill' button is missing because the items aren't exactly shippable and are not marked as such.
Also I noticed that when paying an invoice in full, the inventory of the product ordered isn't updated. I have inventory tracking enabled for the product I'm testing with. I assume this is a result of a configuration setting I missed somewhere?
Any help or pointers with these two scenarios is greatly appreciated.
Thanks,
Edwin
Found this thread which might do what I need
https://our.umbraco.org/projects/collaboration/merchello/merchello/81990-capturing-funds-after-delivery
The easiest way is actually to create a shipping method in the FlatRateProvider with a range of values 0 to 9999999 or something with a price of $0.
This way you get a shipping line item with a FREE amount. The shipping line item has a serialized shipment that is used as the template for the shipment creation that was quoted. This is useful when quoting multiple shipments in a checkout (advanced implementation).
If you want to skip the checkout phase, save the FREE quote generated from the ship method to the CheckoutManager.Shipping provider and skip rendering the ship method selection view.
We have a to do to add a FREE over amount shipping provider to the Core (which is actually pretty quick to build - but has not been a priority and keeps getting bumped back) http://issues.merchello.com/youtrack/issue/M-985
Thanks for the response Rusty.
Yes, what you mentioned was another scenario I thought of but couldn't figure out how to implement it. I will give this a try.
Btw, this package is great! I plan on purchasing a gratitude license soon to show my appreciation for your work.
Ok so I was able to get through checkout with the Free Shipping option configured but the fulfill button is still missing when I pull up the invoice and I think it's because an order isn't being created.
I set a breakpoint in the hasUnPackagedLineItems() method in merchelo.controllers.js and noticed that $scope.invoice.orders.length is 0.
Does that mean that this setting isn't working for some reason?
Or am I missing some other step?
Thanks,
Edwin
Are all of your products marked as shippable?
I double checked and I have the "All items are shippable" setting checked and I checked the individual item I checked out with as well and it's marked as shippable. I just now noticed in my previous comment that I forgot to put the xml I added into a code block and as a result it was stripped out.
I assumed that having this set to true would automatically create an order in addition to the invoice correct?
I went and paid the invoice and when I did that the "Fulfill" button showed up and I was able to mark it as shipped with no problems.
I guess what I need is for the "Fulfill" button to display before the invoice is paid. I thought setting the "AlwaysApproveOrderCreation" to true would do that but I guess that isn't the case. Is there a way to make the button show before the invoice is paid?
It seems similar to what you suggested here -
https://our.umbraco.org/projects/collaboration/merchello/merchello/81990-capturing-funds-after-delivery
I was going to make a change in the merchello.controllers.js file to set $scope.showFulfill = true (in the loadInvoice function) but wasn't sure if that was the right thing to do and if so how to get that change to persist when I deploy the code (I tried it once and didn't see my change reflected on the server even when clearing the browser cache).
This line generates an order even if an invoice has not been paid.
I think we need to add a new value in the Merchello.config that will allow for configuring this option. I've added a task for release in 2.5.0 - http://issues.merchello.com/youtrack/issue/M-1286
I'll make this one a priority since there have been a few requests for this sort of workflow alteration. If you get your solution to work as desired, I'd love to see a pull =) If your just planning on doing a simple view tweak - it'd be great if you post your alteration here or as a gist so I can see what wound up working for you ...
Caching is usually not an issue on deploys (especially if the application resets). If you have your developer tools open it with the "Disable cache (while DevTools is open)" or equivalent if not using Chrome - you should not have any issues.
Ok so I took a closer look and it appears that this setting
isn't creating the order like it should.
My reasoning is I noticed I don't see a new record in the merchOrder table when the order is placed. I see the new invoice in merchInvoices but I don't see a new order record. I verified that the items are shippable. Should a new record be there when an order is placed?
If there was a way to get that order record created then I think everything would work fine and there's no need to hack the view which I'm trying to avoid.
I'm using Fast Track as is and haven't implemented any custom code other than restructuring the views to match the theme of my site.
I'll see if can do some more debugging and see why the order isn't getting created.
Yep - I found the issue today and just merged the fix. http://issues.merchello.com/youtrack/issue/M-1286
Ah ok thanks. In the meantime until the fix is released I'll instruct the client to just add a note to the invoice to indicate it's been delivered.
Hi Rusty,
I was thinking, in the mean time is it feasible for me to just download the source code for version 2.4.0 and include the fix and build the source and update the merchello.core DLL with that? Or should I just make a custom Payment Gateway class in the current version and include the fix there?
Thanks,
Edwin
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.