Hello,

I'm new to nopCommerce, but looking forward to joining the development community. I've been tasked with a development project for a new nopCommerce deployment and have a question...

I have a requirement to create a custom object that can be added by the customer to orders with a one to many relationship (order has many objects) just before checkout. Backend users should be able to add and configure the custom objects. After reading through the documentation and source code, my thought was to write a plugin for the custom object, and use the plugin configuration to add and configure them. Then reroute the checkout to my own view where the customer can assign the custom objects to their order, then continue to normal checkout.

Plugin and config/settings are done and working well... so far so good. (thanks to Skyler for his plugin with data access article!)

Here is where I'm wondering the best way to proceed. Initially I thought I'd extend the Core order object and add the collection of custom objects. In my custom view I'd save the custom objects to the order collection property. Then I could just change the service that saves the order to the db to save the custom objects to their table along with the order. However, I'm not sure how to access plugin objects from Nop.Core. Running into a circular reference problem. I'm also not sure if this is the best way to go about it considering upgrades and code changes.

I'm assuming this is a common way to utilize plugins when modifying nopCommerce core functionality. I'm just missing the boat when it comes to my next step. Help please?

Thanks!
Adam