Add-on Early Preview: DragonByte eCommerce

DragonByte Tech

Well-known member
Hello all,

For the past two and a half months, I've been hard at work on DBTech's next XenForo mod (XenForo 2 only); DragonByte eCommerce. It's now reached a stage where I feel comfortable sharing the progress I've made (although right at the end something did break live on cam, as things are wont to do), and so I've recorded a fairly in-depth walkthrough of the existing functionality.

To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

Missing from this video preview is per-style options;
  • Infinite scroll options for the product list (thanks to Jaxel for his tutorial on how to implement this)
  • Whether the product list is a grid or a list
  • "Sale" ribbon styling
Also missing are various rebuild tools, both in the AdminCP and via CLI.

FAQ:
Q. Will you add support for physical products?

A. Yes, that is planned :) I still need to do more research into what's required for physical products (shipping rates / shipping zones), but it is going to be available in the initial release version.

Q. Will you add Classifieds functionality?
A. This may be a bit tricky to add, since I use XF2's built-in payment profiles.

Q. Will you add support for sales tax / VAT?
A. Yes! That is next on my list after making sure guest orders work as intended.

Q. Guest orders?
A. Guests will be able to add products to their cart, and upon clicking the checkout screen, will be asked to either login or register: https://xenforo.com/community/attachments/1518722907517-png.168961/

Q. What sort of sales statistics are available?
A.
At the moment, not many. Basic statistics via XF2's Daily Stats are available, but I'm focusing on getting the core functionality ready before adding advanced reporting functionality.

Q. What sort of integration with XF2 can be expected?
A.
The following XF2 features are utilised:
  • Likes
  • Content permissions (Categories, Products, Coupons)
  • Change Log
  • Inline Moderation
  • Warning
  • Search engine (Products & Downloads)
  • Report system
  • Alerts
  • Moderator Log
  • "What's New"
  • CLI rebuild tools
  • Approval Queue
  • Member Statistics
  • Tags
  • Widgets
  • Payment Profiles
Q. Will you add importer from <other eCommerce XF mod>?
A.
I do not have access to any of the existing XF1 or XF2 mods, so this is not possible for me at the moment. If anyone is running an existing mod and don't mind sharing their customer data for development purposes, that would be grand :)

Q. When can I test / purchase this?
A.
There's no firm ETA on when a public beta will be available, there's still some work to do :)

Q. I have a feature request...
A.
Feel free to post it, although I cannot guarantee I will add it to the initial version. I don't want to delay it for too long, so unless it's "mission critical" or it's a simple modification of existing features, I may have to wait to add it.

Q. I have another question...
A.
Feel free to post it below!


Fillip
 
Am I right in assuming the Payment Profile option can be used as a multiple vendor type system?
 
Am I right in assuming the Payment Profile option can be used as a multiple vendor type system?
If you mean whether you can add multiple PayPal profiles with different addresses, then yeah you can. Here's a screenshot of editing PayPal in XF2's payment profile system:

1518796464930.webp

I'm not sure if that alone will be feasible for adding true Classifieds functionality, since with 10,000 vendors the forum would have 10,000 payment profiles :P

You can't limit payment profiles per-product, since that would enable a situation where you have two products in cart; X and Y.
X can only sell via PayPal, and Y can only sell via Stripe - that would create a conflict during checkout.


Fillip
 
Looking nice!

Few things and sorry if I missed them but:

  • Be nice to reward store credit automatically based off X amount spent earns X amount of points
  • eally no point in the overlay at this point, I feel like it should go straight to the payment option making it 1 less step for the consumer
    To view this content we will need your consent to set third party cookies.
    For more detailed information, see our cookies page.
    R
  • Can something like Paypal Payout's be incorpated so you could make a single purchase with different paypals per product? https://developer.paypal.com/docs/integration/direct/payouts/
  • Also, address information, is that optional in the sense the page is skipped entirely?
 
Be nice to reward store credit automatically based off X amount spent earns X amount of points
Store credit is designed to be more of a "hey you downloaded the product so we can't refund but here's the equivalent in store credit", it's something I can look into in the future though :)

Really no point in the overlay at this point, I feel like it should go straight to the payment option making it 1 less step for the consumer
The way the overlay works is the exact same way XF2's account upgrades and anything else works.

That being said, I will look into a way to incorporate the "choose your payment processor" step on the main checkout screen :)

Can something like Paypal Payout's be incorpated so you could make a single purchase with different paypals per product? https://developer.paypal.com/docs/integration/direct/payouts/
Unfortunately that would need to be implemented in XF2's PayPal provider option, so you would need to suggest that in the suggestions forum here.

Also, address information, is that optional in the sense the page is skipped entirely?
No, addresses are used for the invoices as well as (when physical products are added) shipping info, so they are currently required.

PayPal Adaptive payments was a way to do this but is now restricted it looks like. Strip allows the use of Routing Payments which I think is an ideal feature for this.

https://stripe.com/connect
Last I checked, to do this in PayPal you need an API key specifically for this feature, and I don't believe it would work with XF2's payment profiles, same as the Stripe feature, but I could be wrong.


Fillip
 
Consider to add:
  • Address autocomplete
  • Address Book
  • VAT check (mandatory for B2B in EU)
  • VAT Report
  • Shipments & Tracking
  • Carriers
  • Shipping Methods
  • Product Weight & Volume
  • Total Order Volume calculation & Box Selection.
  • Package Volumetric Weight (most carriers use this)
  • Shipping Restrictions
  • Product Specifications
  • Product Variants
  • Product EAN / Barcode
  • SKU
  • Search by SKU
  • Product Quantity Forms (1 product, Display, Carton, Pallet, etc)
  • Quantity Steps
  • Price Breaks
  • Brands
  • Order Statuses
  • Stock management
  • Out of stock notifications
  • Cross Sell
  • Upsell
  • Newsletter
  • Sliders
  • Import & Export Stock from/to Excel
  • Widgets to display products in forum related to forum content.
  • RMA
 
Last edited:
Really no point in the overlay at this point, I feel like it should go straight to the payment option making it 1 less step for the consumer
I have dug into the code and it seems like I won't be able to change this. The reason why it's on a separate screen is two-fold:
  1. On my end, I need to actually record that the user has accepted the ToS. This is important for legal purposes, and if there was a direct link to the payment processor on the checkout screen, you cannot verify that users have read & accepted the ToS.
  2. On XF2's end, they initialise a special "payment provider container" on the form that contains the buttons.
In short, as much as I too hate extra clicks, it's sadly needed. Sorry :(


Fillip
 
IMHO if you go down the route of making a fully fledged competitor to dedicated shopping carts, you're going to spend a lot of time and development for not much return, I look at Alfas list above and think 90% of that can be crossed off for a forum-integration solution.

The majority of forum owners arent going to need SKUs or stock management, they might tell promotion items like t-shirts and stickers. If you need a fully fledged cart solution, you would be better to use a fully fledged cart, and bridge it.
 
IMHO if you go down the route of making a fully fledged competitor to dedicated shopping carts, you're going to spend a lot of time and development for not much return, I look at Alfas list above and think 90% of that can be crossed off for a forum-integration solution.

The majority of forum owners arent going to need SKUs or stock management, they might tell promotion items like t-shirts and stickers. If you need a fully fledged cart solution, you would be better to use a fully fledged cart, and bridge it.
Agreed, I don't believe I will end up implementing the majority of items on that list, unless someone pays for it as custom work. Not to mention the fact that I explicitly demonstrated the Address Book feature in my video, so why that is on the list is anyone's guess :)

My current plan for physical items is to look at WooCommerce and implement their functionality, as DBTech hosts a site that runs it on one of our servers, so I get to see it in action. Assuming I'm not horribly wrong about their feature set, they do not have a lot of the features on that list. Given the popularity of WooCommerce, it would seem as if their feature set is enough for the majority of users who want a quick-fire eCommerce solution on their site.

Like you say, if someone needs the full power of Shopify / whatever else exists out there, with the hundreds of thousands (if not millions) of dollars of development it has undergone, hiring someone to create a bridge would be the way to go.


Fillip
 
Assuming I'm not horribly wrong about their feature set,
Most of the list is in there, but Woocomerce has over 400 official addons. Running a Woocommerce store without addons is not really possible.
Woocommerce is indeed one of the most popular e-commerce platforms. Magento is even more popular. The feature set of most of the popular e-commerce platforms is pretty much what I have laid out. And the things in my list are just the basics. I actually took the list from a cheap popular e-commerce platform.

The problem with many e-commerce platforms is performance when you have a lot of products. Especially with Magento this is an issue. Forum software like XenForo has actually solved this issue and therefore there is a lot of potential in this area. For XenForo its no problem to have 1 million entries in 100 nodes. If you try to do that with Magento then you will need highly optimized hosting in complex configuration. Else your store will have page loads of 15-30 seconds.

A bridge to woocommerce or Magento would indeed cover the functionality in my list, but the downside of that approach is that it will be just bolted on and will likely fail on many other fronts that a integrated solution can offer. No addon developer is going to add support to their addons for a e-commerce bridge. A popular XF addon will get support from other developers. With a bridge we can forget about cross selling relevant products in related forum discussions. or forum discussions connected to store product pages. Orders on forum profiles.
Its possible to use XF powered addons for customer support, helpdesk, wiki, gallery, resources, product reviews, company blog, news articles, etc. But such approach is futile unless the store is fully integrated.

I can fully understand if you do not want to go full blast with an e-commerce store for reasons you and slavik mentioned. Because a store for physical products entails a lot of advanced functionality. Stock and shipping are just the basics. Those alone are a massive undertaking. And you obviously have already invested a lot of time and effort already in creating a store for software.

Communities that only sell merchandise will mostly not even need shipping. They just need to integrate cafepress, amazon, etc for affiliate sales. But that would likely be a new addon. If you want to go for e-commerce without shipping then dropshipping and affiliate sales may be a way to go.
Shipping will entail a lot of functionality.
 
Most of the list is in there, but Woocomerce has over 400 official addons. Running a Woocommerce store without addons is not really possible.
The site I'll be looking at does in fact run WooCommerce without addons. They aren't a big store, probably less than 50 products, but I haven't heard anything about them needing additional functionality.

I think what may be happening here is something I struggle with myself; "well this makes sense to me and I can't imagine how anyone else would ever want anything else or different". Stuff that is essential to me may be entirely useless to someone else, and vice versa.

That being said, if it is true that the core WooCommerce without addons has most of those features, then chances are I'll either trim the feature list or release the first version without support for physical products, depending on how long it takes for me to have the digital downloads component fully ready.

Even if all of those things are 100% essential to every seller that is even moderately serious, I still feel like I would have to be careful not to overcomplicate the system, either by stuffing the core full of features or by adding a complex web of add-ons like it sounds like WooCommerce is. Of course, if someone else wanted to create add-ons to add such functionality, I would be happy to work with them to add code events / template injection points to make their jobs easier. Without overstepping my authority, I could see partnering with addon developers to sell their addons on our site (or give them away for free, if that's what they want).

In short, I believe that it makes much more sense to follow the KISS (Keep It Simple, Stupid) principle, so as to not risk alienating potential hobbyist sellers either by overwhelming them with features or being forced to charge £5,000 for the product due to it taking a year to develop :P


Fillip
 
The site I'll be looking at does in fact run WooCommerce without addons.
If they do not have any addons for payment or shipping service providers, nor accounting then IMHO its not the optimal example. Its still a good idea to look at the core Woocommerce features, I would also look at Magento2 because IMO their approach/functional design of features is better.

If you take Slavik's example of a store selling and shipping T-Shirts then you will encounter the need for variants. Let's say you have a T-shirt in 3 colours and in 4 sizes. Then you will have 12 variants which all need to be displayed on the product page and the customer needs to be able to easily select one or multiple variants they want to add to the cart. To avoid T-Shirts being ordered that are not in stock, individual stock needs to be kept for each of the variants. Otherwise the store owner will need to refund the customer.

If the store also ships mugs and posters, then the parcel will have multiple products of different weight, shape and volume. Shipping costs are based upon volumetric weight. If the audience covers a significant area or even is international, then shipping costs can be very significant and also vary a lot. Erroneous shipping costs result in the customer not buying or the website making a loss on the sale.

Its possible to avoid building integrations with many shipping services by using an intermediate like Cloudsend API. Its basically the Stripe for Shipping Services. But that would still require the total volume, shape and weight for the parcel.

On another matter: will it be possible to sell subscriptions / Account Upgrades through this addon?
 
Update: One thing I mentioned but didn't demonstrate in the video was the Product Fields feature. You can define custom product fields, and a forum with a thread prefix where threads would be posted if someone purchased a product that used product fields.

For testing purposes, I set it up with the same configuration as we use for "Professional Installation" products @ DBTech:

1518887041856.webp

Product edit:

1518887067764.webp

Checkout screen:

1518886984209.webp

Resulting thread:

1518887145944.webp

Special product purchases may require special attention, and telling the mod to post threads in a special staff-only forum would be an effective way of keeping track of these special purchases :)


Fillip
 
If they do not have any addons for payment or shipping service providers, nor accounting then IMHO its not the optimal example.
Payment providers are irrelevant to this mod as I use XF2's payment profiles. It is not my responsibility to ensure the site installs & enables the payment profiles they want or need.

Its still a good idea to look at the core Woocommerce features, I would also look at Magento2 because IMO their approach/functional design of features is better.
It's certainly something I can look into, but if there's no functional demo with already added items available from their site, I'm likely not going to spend a lot of time looking through it.

I also don't plan on copying WooCommerce verbatim - the way they handle their UI elements may not work on XF2 and may not be optimal (in my eyes) so I would make changes where appropriate.

If you take Slavik's example of a store selling and shipping T-Shirts then you will encounter the need for variants. Let's say you have a T-shirt in 3 colours and in 4 sizes. Then you will have 12 variants which all need to be displayed on the product page and the customer needs to be able to easily select one or multiple variants they want to add to the cart. To avoid T-Shirts being ordered that are not in stock, individual stock needs to be kept for each of the variants. Otherwise the store owner will need to refund the customer.
Currently, my plan is to adapt the "license duration" system for use with variants. As you saw in the video, when the purchase button is clicked a window appears with various options - instead of 3 months, 1 Year and Lifetime, the variants would be listed there. For multiple types of variants, they would be able to name each variant so if there's both colour and size, they should name them like "Red - S" etc.

Is it as optimal as two separate drop-downs? No.
Is it significantly faster to develop while still providing the same underlying functionality? Yes.
Am I aiming for something that suits every possible need? Absolutely not.

If the store also ships mugs and posters, then the parcel will have multiple products of different weight, shape and volume.
I'm almost certainly not going to bother with shape and volume. If it turns out to be easy, I may include a "calculate shipping cost" feature where owners can define weight limits (so 0-5kg is $X, 5-10kg is $Y, etc), but shape and volume? No.

If someone needs something that specific, then it's unlikely eCommerce will suit their needs.

I don't doubt the majority of people purchasing this mod will be people selling digital downloads, the physical items is an aside rather than the main or even equal focus. That's not to say I won't consider improving the physical item side of the suite later down the line, but I am certainly not going to spend another 3 months developing the physical item side of it.

Its possible to avoid building integrations with many shipping services by using an intermediate like Cloudsend API. Its basically the Stripe for Shipping Services. But that would still require the total volume, shape and weight for the parcel.
I am definitely not going to do this, that is outside of the scope of the modification (unless someone pays for it to be added).

On another matter: will it be possible to sell subscriptions / Account Upgrades through this addon?
That is already a feature in XenForo 2, so I see absolutely no reason why I should add a third type of product to eCommerce just so admins don't have to direct users to the "Account upgrades" page.


Fillip
 
Could the physical products part of the system be an extension, basically a secondary add-on to the core commerce add-on or would that make it overly complex?
 
Could the physical products part of the system be an extension, basically a secondary add-on to the core commerce add-on or would that make it overly complex?
Back when DBTech first started out, we used to have Pro versions as an add-on to the Lite version, but it was horribly confusing to users so the concept was abandoned after a few months. For that reason, I don't believe I would do something similar to the physical products aspect.

That being said, the physical product related stuff would be displayed in a separate sub-group of the AdminCP menu, and the options in the product management screen would be collapsed if Digital was selected, so I don't see it as being a huge issue even if someone isn't interested in physical products :)

If the physical products take on a life of their own, I may add a global switch to hide those options, but for the time being I think it should be good as-is.


Fillip
 
With regards to multiple options, you could build a very flexible, yet basic system

- Ability to add a sub-options and configurable items, Eg "size" and S, M, L, XL, XXL etc. "Color" and Red, white, green etc.
- Sub options need the ability to alter cost of the base item as an optional option
- Sub options available in dropdown, radio and tick box formats
- Sub options able to alter shipping cost again, optional
- Product attributes in a similar way to sub-options
 
I'm almost certainly not going to bother with shape and volume. If it turns out to be easy, I may include a "calculate shipping cost" feature where owners can define weight limits (so 0-5kg is $X, 5-10kg is $Y, etc), but shape and volume? No.
There are very few shipping companies which use weight alone, so without dimensions I would not waste time on implementing weight calculation. Implementing one without the other is most likely a waste of time.
That is already a feature in XenForo 2, so I see absolutely no reason why I should add a third type of product to eCommerce just so admins don't have to direct users to the "Account upgrades" page.
I can appreciate that you do not want to add this to your addon. To explain why I asked:
The account upgrades page gets confusing quickly. For example if you have 4 subscription levels, 6 terms for each and each recurring and non-recurring then you end up with not 4 but 48 account upgrades for those 4 plans/products alone. A page with 48+ account upgrades will confuse people so much that they abort. I deal with this problem every day of the week.

IMHO it needs a store like approach where the subscription plan is a product and the terms and recurring/non-recurring are product options the customer can select. Such approach would solve a major problem with XenForo.
 
  • Like
Reactions: HWS
Development update: Sales Tax / VAT

VAT rates are automatically fetched upon installation, and automatically refreshed once a month in order to keep up to date.

New options:

1518907329276.webp

The "Enhanced validation" option may be required if your country's laws require you to record more than one piece of evidence that you have correctly determined the VAT liability when selling to businesses claiming to be VAT registered.

Updated checkout page:

1518907609144.webp

It will also be possible to set a sales tax rate per country in the AdminCP (not yet implemented), so if US businesses that only sell to other US businesses and/or consumers still need to charge their state's sales tax rate, this will still be possible - the system is not purely for VAT.


Fillip
 
Top Bottom