E-commerce customization best practices

Hello everyone,

I’ve been getting into ERPNEXT for a client. After trying to familiarize myself with frappe/erpnext I am struggling with the best practices regarding setting up and customizing a sizeable online store. On the store side of things they are coming from Woocommerce but aren’t happy with it and want something different.
As I see it I have the following options.

Option 1:
I use the shopify connector which has recently been patched. Especially the webdesign part would be much easier and the marketing dashboards are nicely setup already. However the client wants to stay in one software suite as much as possible, which maybe could be done with a lot of additional webhooks to achieve bidirectional syncing?
Also the data migration part seems more involved. Especially since I have all the data for bulk upload for ERPNEXT already.
Extending the connector might be an option, I can read it and write python okay but I am by no means a professional and fear it would get out of control quickly.

Option 2:
I use the built-in webshop. Now, I have started getting into customization and apart from creating a new website theme I feel a bit lost. I know where the templates are stored and how they are linked in the doctype classes. But I am afraid that going in there and just relinking or rewriting the templates would just spell disaster for coming updates. I think going with a custom app could work, I have looked into that but mostly found tutorials for static pages etc. I am afraid that recreating the webshop in an app would require effort beyond my means.
Or maybe there is a way of hooking and overwriting the class website attributes that I have missed?
Anyways, the gist of it is I am changing:

  • templates (item.html and item_row.html)
  • doctype route functions (currently have a problem with relative links) (item_group.py)
  • doctype get_html function query (item_group.py)
  • things I am missing now but will become apparent later

And I would love to not break the thing on the next update or be left with no update ability.

Maybe there are other options though. Or am I missing something very obvious? If you have been involved in such an online store please let me know how you went about it. And I’ve seen what the guys at DigiThinkIT did but I am just one person with an amateurish skill set in python and web-development.

Hope you can help me out or at least help me go in the right direction. Any advice or suggestions are greatly appreciated.

1 Like