MultiSite + eCommerce that is shared (in part) across SubSites, yet controlled by core site

Hello.

I see many different plugins here, and I'm fairly certain that everything I need can indeed be done, but I'm not quite sure how (and which plugins to include). This is what I need:

1. WordPress MultiSite Network in which a master store houses a master catalog (or rather a set of catalogs, each containing many products). By "catalog", I'm simply referring to a grouping of products - I understand that you may not necessarily call a collection of products "catalog"...

2. Admin can add new sites to the network at will, map each to a unique domain, AND automatically enable catalogs of his choosing on the new site. This may include some of his catalogs, or all, and could be different for every new site.

3. Admin can change prices on any catalog on his core site (as in applying a sale or promotion), and these prices are automatically reflected on all other sites that feature said catalogs.

4. Here's tricky piece number 1 (at least, I think this is the first tricky piece): Orders placed from any of these catalogs from ANY site in the network, get submitted to the same single CORE site (while retaining information about which sub-site sent the order). Ideally, this should be done by enabling the entire sale process to complete within the user experience offered by each sub-site, but a decent fallback would be to refer all orders from all sites to a single order submission page that is common to the entire WordPress MultiSite network.

5. One more tricky piece: The products number in the THOUSANDS! They come in via CSV, and need to be injected into the system repeatedly, such that existing products (after the first injection) are updated and never simply duplicated.

6. Owners of sub-sites can also add their own products to their own catalogs (can be separate collections or catalogs or different areas of the sub-site with any other name), and set their own prices for these items, but they CANNOT change the prices from the core catalogs (those inherited or imported or injected from the main core site).

7. Owners of sub-sites can choose their own themes from a collection enabled by the network admin.

I imagine all of this and more can be done with existing WPMUDev plugins, but I'm having a tough time determining which to select (though number 7 seems fairly obvious)... Can you assist?

Thanks!
Gilad

  • Predrag Dubajic

    Hey Gilad,

    Hope you're doing well today :slight_smile:

    What you are looking for here is quite complicated and I'm not sure that you will be able to accomplish everything out of the box.

    Let me cover your questions one by one.

    1. WordPress MultiSite Network in which a master store houses a master catalog (or rather a set of catalogs, each containing many products). By "catalog", I'm simply referring to a grouping of products - I understand that you may not necessarily call a collection of products "catalog"...

    Our MarketPress plugin has an option to use global shopping cart once it's network activated, it will allow you to list products on all your sites but the purchases are handeld on your main site.

    2. Admin can add new sites to the network at will, map each to a unique domain, AND automatically enable catalogs of his choosing on the new site. This may include some of his catalogs, or all, and could be different for every new site.

    Adding new sites is default WordPress Multisite option so nothing to add there, but for mapping domains you will need plugin like Domain Mapping.
    Sub-site admins will be available to further customize their sites but you can use New Blog Templates plugin you will be able to create template site which will transfer it's pages/posts and settings to new site.
    So for example, you can create two templates one with more products and one with less.

    3. Admin can change prices on any catalog on his core site (as in applying a sale or promotion), and these prices are automatically reflected on all other sites that feature said catalogs.

    When using Global Cart option in MarketPress and create products on your main site they will only be displayed on subsites but still be pulled from main site, so no sub-site users will be able to edit them.

    4. Here's tricky piece number 1 (at least, I think this is the first tricky piece): Orders placed from any of these catalogs from ANY site in the network, get submitted to the same single CORE site (while retaining information about which sub-site sent the order). Ideally, this should be done by enabling the entire sale process to complete within the user experience offered by each sub-site, but a decent fallback would be to refer all orders from all sites to a single order submission page that is common to the entire WordPress MultiSite network.

    This is pretty much explained in first response since this is the workflow of network enabled MarketPress.

    5. One more tricky piece: The products number in the THOUSANDS! They come in via CSV, and need to be injected into the system repeatedly, such that existing products (after the first injection) are updated and never simply duplicated.

    This is actually the biggest issue on the list since MarketPress doesn't yet include imported but we have it on our to do list so we should see it in some of future versions.

    6. Owners of sub-sites can also add their own products to their own catalogs (can be separate collections or catalogs or different areas of the sub-site with any other name), and set their own prices for these items, but they CANNOT change the prices from the core catalogs (those inherited or imported or injected from the main core site).

    Also already explained above, global cart will only pull products across network, it doesn't actually import them to other sites, so all changes are still done on site that created product.

    7. Owners of sub-sites can choose their own themes from a collection enabled by the network admin.

    This is default WP Multisite behaviour, only themes that are network activated will be available for users to activate on sub-sites.

    Hope this helps and if I missed anything please let me know :slight_smile:

    Best regards,
    Predrag

    • Gilad

      Thank you so much for the thorough and FAST response! And yes, thank you, I am doing well today. I hope you are too!

      And yes, I do have some followup questions.

      Let's start with the piece that you feel is the biggest problem (mass import via CSV): I have found mention online of multiple solutions that appear to be compatible with MarketPress (assuming, of course, that there is only one product called MarketPress, otherwise some of this additional help might be useless to me). Now, I can't tell whether any of the solutions I'm seeing (Google "import products into MarketPress from csv", and the like), can handle this volume, but if volume turns out to be the main problem, I think that there will be workflow workarounds that could be sufficient for now.

      Also, I have to wonder whether it will be possible for me to code some sort of extension or addon. Do you have an API to support this sort of independent extensibility? Forgive me, I did look around the site, and I thought I remembered that this is indeed allowed and possible, but I can't seem to find that info now...

      Regarding the "Mutisite global shopping cart" - This sounds like it might be just right, but I do have four questions:

      1. Do you mean to say that each sub-site can have it's own look and feel, run separately from all other sites in the network (as is normal in WP MS), take orders (AND PAYMENT for those orders) from within each sub-site, yet have all orders route to the same fulfillment "agency" (in this case, the core site of the network)?

      2. I'm not clear about the capabilities of sub-site admins in this case: Can they add their own products to supplement the "inherited" products that were added by the network admin?

      3. When orders placed on multiple sub-sites are submitted to the core site, does the system report (for later fulfillment, for example) which sub-site generated the order?

      4. In your previous response, you explained that I can "create products on your main site they will only be displayed on subsites"... The "ONLY" part of this implies that the main site is not actually a store, but only a data source and control center. Or am I missing something?

      Regarding the "New Blog Template" solution - This is not exactly what I had in mind, but if I'm reading you (and the description page) correctly, it might actually be better than what I had in mind! I have three questions about this particular piece:

      1. Can the network admin specify which templates are available to sub-sites, by sub-site? The description page says that we can "arrange templates in categories", so, for example, could the network admin allow one sub-site to only access one category of templates, while another sub-site admin can access a different category of templates, and yet another sub-site admin can access both?

      2. How do templates and themes interact? For example, would I make multiple child themes (for Upfront), each with it's own template, then group them into categories?

      3. Am I correct in understanding that this is the method you are recommending for making products from the core site available in the sub-sites, and that this alone is all that would be required to make the global shopping cart work as described in my previous questions?

      Finally, I have one question regarding one of your previous responses: When you explain that "global cart will only pull products across network, it doesn't actually import them to other sites, so all changes are still done on site that created product", I have to admit that I'm a little confused. Does this mean that I can configure new product creation for the common products to be done on the main/core site only, but that the ability to order them on any of the sub-sites is a combination of "New Blog Templates" (which has made the product visible on the sub-site) and the global shopping cart working together?

      I know you tried to answer this before, so apologies for belaboring the point, but I'm still trying to understand: Can I have SOME (or most) products covered by the global shopping cart (even if this is only possible due to the "New Blog Template" plugin), while allowing individual sub-sites to add their own products that DO NOT populate to other sites? This type of functionality seems to imply that the templates have areas that cannot be edited by sub-sites and others that can (if I'm reading the description page correctly, this seems to be the case), AND something like two concurrent shopping carts (one global and one local to the sub-site). Is this the case? Am I at least close?

      Thanks again!
      Gilad

    • Gilad

      The more I look at this evolving plan, the more I come to realize that it might not be right for me... Here are some issues I can't get past:

      1. The global shopping cart appears to be more about providing BUYERS with a single stop after shopping at multiple stores, than about providing SELLERS with a single order submission destination. Now, I haven't had a chance yet to determine whether there is some combination of settings that will amount to the latter, but the former is really not desired in this system.

      I wonder whether I can avoid this issue altogether, by simply configuring MarketPress in every store to submit orders to the main site (or the main site's accounts, or whatever the specifics may be)... Or will I run into cross-domain issues here because Domain Mapped sub-sites will (of course) have different domain names tan the core/main site?

      2. The "New Blog Templates" piece of this puzzle may indeed be of some use, but probably not as much as appeared at first. Given that sites created from these templates after the templates are changed do not inherit the new changes, some of the original need to keep all sub sites in sync (for the common portion of their product catalog) seems lost.

      How about the following for a possible solution to the scenario I presented originally (I'm shopping for ANY feedback, so please, everyone, share your thoughts):

      1. Main/core site has all products in all catalogs (probably "Product Categories").

      2. Injection of the original collection of the products will have to be done with some third party tool. Or, if the products themselves are some sort of reasonably straight forward Custom Post Type (such that all their details are packaged neatly in some CPT container), I can probably write a script to convert the original CSV source to a form that is usable by wp_insert_post(), wp_defer_term_counting(), and whatever other functions are recommended for bulk inserts.

      Of course, doing this part myself really does assume that I can [quickly] find the details that constitute a product in MarketPress with relative certainty. Anyone have any idea where to get authoritative information about this (I haven't studies the code yet to know whether it is fully documented in this regard)?

      3. Then I have to create new sub-sites that are largely copies of the core/main sites with the following special features (which make them near-copies, rather than exact copies):

      a. Each sub-site must have it's own unique domain. Clearly a job for the "Domain Mapping" plugin.

      b. Each sub-site has the products already included in the core/main site, but the sub-site cannot edit any of these entries. Perhaps this is a good place for the "Lock Posts" plugin?

      c. Some sub-sites will get some product collections from the core/main site, some will get others, and some will get all. Perhaps this is a good place for the "Multisite Content Copier" plugin?

      d. Each sub-site DOES have the ability to add it's own products in addition to the inherited products that it cannot change. The new sub-site's products are not seen in any other site on the network, and are fully editable by authorized users on the sub-site. Perhaps this too is a place for the "Lock Posts" plugin, albeit it in reverse, in that products can be added because there is nothing about the products feature in MarketPress that has been locked down for sub-sites... Is there something (anything) further to gain here from the "New Blog Template" plugin?

      Seems like "Multisite Content Copier" will play a role in the above (and for far more than just the fine-tuning described in point 3.c), somehow working hand-in-hand with the "Lock Posts" plugin (and MAYBE the "New Blog Template" plugin). I'm not very clear on the workflow here, but it seems that the "Multisite Content Copier" plugin will be used to create or populate every new sub-site...

      4. Updated CSV's are issued regularly, but as you can imagine, only a minority of products actually change. I can imagine some sort of service I could build that:

      a. Always has a copy of the most recent (last used CSV).

      b. Upon upload of a new CSV, the new is compared to the exiting, and an array of objects or multidimensional array describing changed and new products is generated as the result of this comparison.

      c. I can then build a plugin that is included in EVERY site in the network (including the core/main site AND all sub-sites), that checks regularly for a file that contains this new and updated product data, downloads it, inserts and updates products as required (and as originally done for the first ever bulk insert), and done! All sites now have current product details.

      d. As before, when a new sub-site is created and populated (as described above), the most updated products will be present until the next plugin update.

      Here, as above, this all depends upon products in MarketPress being simple enough to bulk insert programmatically (without the UI, such as by use of wp_insert_post() or similar and related functions.

      Obviously, I'm new to most of these particular pieces, so any and all advice/critique/feedback would be GREATLY appreciated!

      TIA!
      Gilad

  • Predrag Dubajic

    Hi Gilad,

    Doing good here thanks, but I must say that number of lines in this thread scared me a bit :slight_smile:

    I did made a mistake in my previous response about showing products across network, if global cart is enabled sub-site posts will be shown on the site they are created and only on main site products page, not on other sub-sites.

    Let's start with the piece that you feel is the biggest problem (mass import via CSV): I have found mention online of multiple solutions that appear to be compatible with MarketPress (assuming, of course, that there is only one product called MarketPress, otherwise some of this additional help might be useless to me). Now, I can't tell whether any of the solutions I'm seeing (Google "import products into MarketPress from csv", and the like), can handle this volume, but if volume turns out to be the main problem, I think that there will be workflow workarounds that could be sufficient for now.

    Previous version of MarketPress, before 3.0, had importer included and unfortunately it didn't still get implemented in versions 3+ but we are hoping to add it in future and current imports from CSV are known to cause issues with variations.

    Also, I have to wonder whether it will be possible for me to code some sort of extension or addon. Do you have an API to support this sort of independent extensibility? Forgive me, I did look around the site, and I thought I remembered that this is indeed allowed and possible, but I can't seem to find that info now...

    Addo-on could of course be developed and good example can be seen here http://www.marketpressthemes.com/pricing/ but unfortunately we don't have any documentation for this.

    1. Do you mean to say that each sub-site can have it's own look and feel, run separately from all other sites in the network (as is normal in WP MS), take orders (AND PAYMENT for those orders) from within each sub-site, yet have all orders route to the same fulfillment "agency" (in this case, the core site of the network)?

    Each site can have it's own look and feel, that is correct, but once products are added to cart and you continue to checkout it will redirect to main site to complete the order.

    2. I'm not clear about the capabilities of sub-site admins in this case: Can they add their own products to supplement the "inherited" products that were added by the network admin?

    There are two scenarios here, if you use New Blog Templates that has existing products in that template those products will be imported in the new site and can be edited from there, and he will be able to add new products as well.
    If, however, your products are created on your main site they will not be imported in new site and sub-site admins won't have ability to modify those.

    3. When orders placed on multiple sub-sites are submitted to the core site, does the system report (for later fulfillment, for example) which sub-site generated the order?

    4. In your previous response, you explained that I can "create products on your main site they will only be displayed on subsites"... The "ONLY" part of this implies that the main site is not actually a store, but only a data source and control center. Or am I missing something?

    Following the explanation on the begging of the post, main site products will only show on main site, and sub-site owners can't edit those.

    1. Can the network admin specify which templates are available to sub-sites, by sub-site? The description page says that we can "arrange templates in categories", so, for example, could the network admin allow one sub-site to only access one category of templates, while another sub-site admin can access a different category of templates, and yet another sub-site admin can access both?

    This is not possible since the templates are available to users while creating their sub-site, not after the site is created.
    The point of this plugin is to allow users to select existing template based on which their new sub-site is created.
    Also, categories are simply used to filter existing templates on sub-site creation page.

    2. How do templates and themes interact? For example, would I make multiple child themes (for Upfront), each with it's own template, then group them into categories?

    If you want to have different themes for users to choose when creating new sub-site you will need to create new template site for each of those themes and set it up to your liking.
    For example, one template will have Spirit theme active and users that create site based on that template will end up with exact copy of that site, including the Spirit theme active, and you can have another temlplate for Scribe theme and the same thing will happen if they choose that template, they will get all content and active theme from selected temlpate.

    3. Am I correct in understanding that this is the method you are recommending for making products from the core site available in the sub-sites, and that this alone is all that would be required to make the global shopping cart work as described in my previous questions?

    Let me try explaining global cart differently so maybe that will clear any confusion.
    Let's say you have Site 1 - which is main site, Site 2 and Site 3 - which are sub-sites.

    Site 1 has Product 1
    Site 2 has Product 2 and Product 3
    Site 3 has Product 4 and Product 5

    When using global cart each site will show it's own products while main site will show its own products plus all products from sub-sites.
    So, Products 2 and 3 can only be modified on Site 2.
    Sub-site products can be added to cart from the sub-site they are created on, or from main site but the checkout will go to Site 1 since that's the main site network.
    For example, on Site 3 you have added Product 5 to cart, you click on View Cart and that will redirect you to Site 1 where you can see your cart and continue with payment.

    Finally, I have one question regarding one of your previous responses: When you explain that "global cart will only pull products across network, it doesn't actually import them to other sites, so all changes are still done on site that created product", I have to admit that I'm a little confused. Does this mean that I can configure new product creation for the common products to be done on the main/core site only, but that the ability to order them on any of the sub-sites is a combination of "New Blog Templates" (which has made the product visible on the sub-site) and the global shopping cart working together?

    I believe this part is now explained above in question 3 for NBT and question 2 for MP.

    I know you tried to answer this before, so apologies for belaboring the point, but I'm still trying to understand: Can I have SOME (or most) products covered by the global shopping cart (even if this is only possible due to the "New Blog Template" plugin), while allowing individual sub-sites to add their own products that DO NOT populate to other sites? This type of functionality seems to imply that the templates have areas that cannot be edited by sub-sites and others that can (if I'm reading the description page correctly, this seems to be the case), AND something like two concurrent shopping carts (one global and one local to the sub-site). Is this the case? Am I at least close?

    As explained above, sub-site products will not populate other sub-sites, only main site, but there is no option to have two carts, one for global products and one for sub-site, it will all be handled by main site cart.

    1. The global shopping cart appears to be more about providing BUYERS with a single stop after shopping at multiple stores, than about providing SELLERS with a single order submission destination. Now, I haven't had a chance yet to determine whether there is some combination of settings that will amount to the latter, but the former is really not desired in this system.

    This is correct, as said above, products added on the sub-site will be processed on the main site.

    I wonder whether I can avoid this issue altogether, by simply configuring MarketPress in every store to submit orders to the main site (or the main site's accounts, or whatever the specifics may be)... Or will I run into cross-domain issues here because Domain Mapped sub-sites will (of course) have different domain names tan the core/main site?

    I forgot to mention above that the mapped domains can't use global cart due to cross-domain security concerns, this is explained in MP usage page https://premium.wpmudev.org/project/e-commerce/#product-usage
    You can always disable shopping cart to enable the stand alone shops on each domain mapped sub-site.

    2. The "New Blog Templates" piece of this puzzle may indeed be of some use, but probably not as much as appeared at first. Given that sites created from these templates after the templates are changed do not inherit the new changes, some of the original need to keep all sub sites in sync (for the common portion of their product catalog) seems lost.

    Making changes in Template will not affect sites created using that template, but newly created sites will get those settings.
    Maybe plugins like these could work in this case:
    https://github.com/wp-sync-db/wp-sync-db
    https://wordpress.org/plugins/threewp-broadcast/

    Other questions below this part are basically all answered above if I'm not mistaken.

    Hope this makes things a bit clearer :slight_smile:

    Best regards,
    Predrag

    • Gilad

      Thanks for the clarifications. Global shopping cart is almost certainly not going to work for my scenario, but I will experiment with it when I'm done with my preliminary research. I'll try to be more brief with remaining questions (just two):

      1. I understand that there is no current bulk import in MarketPress. I also understand that there are third party solutions that claim to be able to do this. If you can recommend one, great. If not, I can start a new thread asking just that question (I know I asked too much here), or try a few myself and find out the hard way.

      2. Assuming no third party solution is available for mass import, can I build this myself by simply creating or updating the relevant Custom Post Type used by MarketPress? If the specifics of implementation of the MarketPress products (and product categories, etc) are not fully documented anywhere, is there another specialized forum I can use to stay on top of such things? Here, again, I can create a new/focused thread...

      The other questions I asked most recently (about "Multisite Content Copier", "Lock Posts", etc), can be asked again later (in new/short questions). I can see that I dumped too much here. Apologies.

      And thanks again for all your help!
      Gilad

  • Adam Czajczyk

    Hello Gilad,

    I hope you're well today and don't mind me jumping into this conversation!

    As for "mass import". As my colleague @Predrag Dubajic mentioned, there's no such feature at this moment but as far as I'm aware our developers are working on adding it back to MarketPress.

    The members of our community tested multiple solutions for this in past but I can't say there's any "solid stable, foolproof" way to do this. As you noticed, MarketPress products are custom posts so in theory this should be easy to import with any type of WP importer plugin that supports custom post types. However it turns out not to be that simple.

    That said, of course feel absolutely free to create your own importer and we'll be happy to serve you with all the knowledge and assistance we can provide in relation to how MarketPress works, what's the workflow and/or how is its code built. There's no any dedicated forum however so just ask questions on our "standard" support forum . If necessary, we will either forward these questions to the developers or ask them directly for knowledge/help/advise. We're all in constant contact here so this is not an issue :slight_smile:

    As for your remaining questions. This thread got quite long and complex so it would be really great if you could just start separate threads for separate, single issues. The more precisely identified and described in details issue, the faster and better response. That's because it's very easy to lost focus on the core of the problem in case of such a long threads.

    It would be also easier for us all to keep track on all information and updates and for other members to search for solutions/tips in case they encountered similar issues :slight_smile:

    Thanks for understanding this!

    Have a great day!
    Adam

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.