I hope you don't mind me asking a few questions about features. I get the impression everything is fairly extendable, but I'm looking for whether or not I can get a few things out of the box (and if not, how hard it is to implement on a very tight schedule!). I'm sure some of my questions are answered here on the forum but I've already spent a fair bit of company time playing with uCommerce!
Question 1.
Is it possible to have say:
Product A delivery charge is €1
Product B delivery charge is €5
Delivery cost for product A + B together = €5
Question 2.
Can the system send different picking orders (not sure this is the correct terminology) to different warehouses. In other words, when someone completes an order, warehouse A needs notifying about product X, and warehouse B needs notifying about the order of product Y.
Question 3.
Is it possible to add a delivery surcharge based on a specific set of postcodes? I.e. for UK postcodes starting in AB41 (up in Aberdeen somewhere), delivery surchage is + €9 on top of the €5 charge for Product B
Hello Zac, uCommerce is very extensible in a number of ways, here are a couple of quick answers to your questions:
1) This can be done in two parts. A custom property on every product (call it deliveryCharge) and a custom action in the pipeline (http://blog.lasseeskildsen.net/post/uCommerce-Pipelines-Explained.aspx) to calculate the shipping cost (basically loop through all items in cart and add that custom property)
You can also create your own shipping method service, which is what uCommerce uses to calculate shipping costs based on the selected shipping method.
To create a new shipping method service you'll implement the IShippingMethodService interface. With that in place you register your new service with uCommerce by editing web.config:
Thanks a lot for answering those Sean, Søren, appreciate it.
I've been having a go at creating a shipping method service. I might just be failing at Google, but I can't seem to get my head around what I need.
I created a class:
public class MyShippingMethodService : IShippingMethodService { #region IShippingMethodService Members
public UCommerce.Money CalculateShippingPrice(UCommerce.Entities.Shipment shipment) { throw new NotImplementedException(); }
public string Name { get; set; }
public bool ValidateForShipping(UCommerce.Entities.Shipment shipment) { throw new NotImplementedException(); }
#endregion }
Now obviously I haven't implemented anything yet other than the Name prop. I've I stuffed that class into my App_Code, and I changed my web.config to look like:
This is where I start to get lost a bit. I can now select MyShippingMethodService in the uCommerce UI, so that's something.
I'm looking at http://www.ucommerce.dk/docs/html/T_UCommerce_Entities_Shipment.htm to try and get a clue as to what to do with that shipment object. I'm guessing, like Sean said, I need to look at some property (i.e. a delivery price) on each item in the shipment, but I'm not sure what object to iterate to do that, or how to look at a property.
Your method will be executed when you run through the check out flow. I assume that you've got the uCommerce Store installed.
Basically you need to add a new shipment to the order with the shipping method that you set up in uCommerce. With that in place uCommerce will execute your code when the basket pipeline is run (CommerceLibrary:ExecuteBasketPipeline()).
I'm going to sit down tonight a write a more thorough guide on how to do it, but this should get you started.
Question about features
Hi Lasse, Søren, and anyone else,
I hope you don't mind me asking a few questions about features. I get the impression everything is fairly extendable, but I'm looking for whether or not I can get a few things out of the box (and if not, how hard it is to implement on a very tight schedule!). I'm sure some of my questions are answered here on the forum but I've already spent a fair bit of company time playing with uCommerce!
Question 1.
Is it possible to have say:
Product A delivery charge is €1
Product B delivery charge is €5
Delivery cost for product A + B together = €5
Question 2.
Can the system send different picking orders (not sure this is the correct terminology) to different warehouses. In other words, when someone completes an order, warehouse A needs notifying about product X, and warehouse B needs notifying about the order of product Y.
Question 3.
Is it possible to add a delivery surcharge based on a specific set of postcodes? I.e. for UK postcodes starting in AB41 (up in Aberdeen somewhere), delivery surchage is + €9 on top of the €5 charge for Product B
Thanks for your time!
Hello Zac, uCommerce is very extensible in a number of ways, here are a couple of quick answers to your questions:
1) This can be done in two parts. A custom property on every product (call it deliveryCharge) and a custom action in the pipeline (http://blog.lasseeskildsen.net/post/uCommerce-Pipelines-Explained.aspx) to calculate the shipping cost (basically loop through all items in cart and add that custom property)
it should be very close to this http://www.publicvoid.dk/SimpleInventoryManagementWithUCommerce.aspx
2) This could be handled in a number of ways, uCommerce offers a number of places to tie in your own custom code. I would imagine you would hook into the status change of an order (again another pipeline, http://blog.lasseeskildsen.net/post/Understanding-uCommerce-Order-Statuses.aspx)
3) This can be done by writing your own custom shipping provider and tying it into uCommerce.
also be sure to check out: http://blog.lasseeskildsen.net/?tag=/ucommerce
and: http://www.publicvoid.dk/CategoryView,category,uCommerce.aspx
Hope that helps,
-Sean
Hi Zac,
You can also create your own shipping method service, which is what uCommerce uses to calculate shipping costs based on the selected shipping method.
To create a new shipping method service you'll implement the IShippingMethodService interface. With that in place you register your new service with uCommerce by editing web.config:
With this in place in your web.config you can now select your custom service in the uCommerce UI when you edit a shipping method:
Thanks a lot for answering those Sean, Søren, appreciate it.
I've been having a go at creating a shipping method service. I might just be failing at Google, but I can't seem to get my head around what I need.
I created a class:
Now obviously I haven't implemented anything yet other than the Name prop. I've I stuffed that class into my App_Code, and I changed my web.config to look like:
This is where I start to get lost a bit. I can now select MyShippingMethodService in the uCommerce UI, so that's something.
I'm looking at http://www.ucommerce.dk/docs/html/T_UCommerce_Entities_Shipment.htm to try and get a clue as to what to do with that shipment object. I'm guessing, like Sean said, I need to look at some property (i.e. a delivery price) on each item in the shipment, but I'm not sure what object to iterate to do that, or how to look at a property.
Hi Zac,
Your method will be executed when you run through the check out flow. I assume that you've got the uCommerce Store installed.
Basically you need to add a new shipment to the order with the shipping method that you set up in uCommerce. With that in place uCommerce will execute your code when the basket pipeline is run (CommerceLibrary:ExecuteBasketPipeline()).
I'm going to sit down tonight a write a more thorough guide on how to do it, but this should get you started.
Hi Zac,
It took a little longer getting the article out the door, but as compensation I went ahead and did a bonus one for a total of two :)
First one explains Shipping Methods and the second explain how to extend them with your own code to do custom shipping cost calculations.
Søren,
You are awesome.
Sincerely,
Zac
(But seriously, thank you very much!)
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.