November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
2th option is also my suggestion. When you customize Commerce Manager files, the changes are yours so I think you can use a simple source control to keep your works.
Yes, you'll have to manually re-deploy the change after upgrading Commerce Manager but I don't expect it to take too much work.
Regards.
/Q
Hi Quan,
would you say this is by-design or a bug in commerce?
will go for the second solution if this is considered by-design.
As it's possible in real-world for someone to create a 0$ order, I think it can be considered as a bug. I'll create a bug to see how we want to deal with this.
The suggestion for going to 2nd option is becausing having a bug go through the triage, fixing, testing can take weeks for it to be released (if we decide to fix it) - so if you need and you can, why not?
Regards.
/Q
The bug is now activated and - when you have your site running - let me know. I would like to purchase something ;)
/Q
Hi,
we are building a site where everthing is basically free, meaning cost = 0 of all variants. We can do the purchase order in code of course, but it seems there is some hard checks in commerce manager where it is impossible to release a shipment if there is no payments associated with a purchase order.
When creating a purchase order with line items not having any cost it is impossible to add payments to the order from commerce manager. Which makes a lot of sense as there is no cost associated with the order.
The code blocking the release of the order is in:
Mediachase.Commerce.Manager.Order.CommandHandlers.PurchaseOrderHandlers.ReleaseShipmentHandler
right here:
if (purchaseOrder.OrderForms.Count == 0 || purchaseOrder.OrderForms[0].Payments.Count == 0 || purchaseOrder.OrderForms[0].Shipments.Count == 0 || (purchaseOrder.OrderForms[0].CapturedPaymentTotal + purchaseOrder.OrderForms[0].AuthorizedPaymentTotal) < purchaseOrder.OrderForms[0].Total)
{
CommandHandlerHelper.ShowInfoMessage(OrderStrings.Order_PurchaseOrder_PaymentLess, base.CommandManager);
return;
}
Notice that it is checking for Payments on the order and if there is none it will refuse to release the shipments.
How would I go about creating such an order from commerce manager? It will be customer care people doing this and not developers of course.
I can see two possible ways of fixing this:
1) Telling customer care to add a dummy cost to one of the items so they can add a payment and then release the order
2) Creating a custom implementation if the ReleaseShipmentHandler and configuring it in the commerce manager, this will of course be destroyed the next time we update commerce manager from NuGet.
Any other suggestions?