XR Product Manager

XR Product Manager [Paid] 2.0.2

No permission to buy (£30.00)
Of course :)

It will be valid for 12 months and include any updates for the next 12 months. After that you can either renew or wait until there’s a new version you need. Renewals are currently £25.
 
Chris D updated XR Product Manager with a new update entry:

Stable released! New coupons!

Again, thank you to everyone who has upgraded to the 2.0.0 Beta in order to help test and provide feedback, it has been valuable and the feedback has been overwhelmingly positive. As a result of the feedback and several bug reports which are now resolved it is now time to release a fully supported stable release of XR Product Manager 2.0.0!

Now is probably a good time to remind you (in case you've not seen the previous updates) what is new in 2.0:
Chris D said:
  • Slight name change and new add-on ID: XR/PM
  • Categorise products with product categories (existing products moved to a default category).
  • New per-category permissions system.
  • All admin related product management tools moved to the Admin CP.
  • Integration with XF2's new purchasable and payment provider system.
  • Simplified checkout process which no longer uses a shopping cart system.
  • Product thumbnails as a dedicated attachment type.
  • Product thumbnail size is configurable in options.
  • Product optional extras can now be purchased any time.
  • More granular control over what coupons can be applied to e.g. specific (and multiple) extras and multiple products.
  • Fairly extensive purchase searching in the Admin CP.
  • Custom product fields.
  • Ability to control notifications sent out when releasing a new version, allowing a combination of sending alerts/emails to purchasers.
  • Ability to post product updates into a specified forum.
To celebrate the release there are two coupon codes you might want to check out which are valid until the end of April.

For 20% off XR PM renewals:
XRPMRENEW20

For 20% off new XR PM purchases:
XRPM20

Thanks again for all of your support and patience.
 
  • Like
Reactions: Bob
Server error log
Code:
InvalidArgumentException: Accessed unknown getter 'xr_pm_purchases' on XF:User[1] src/XF/Mvc/Entity/Entity.php:182
Code:
#0 src/XF/Mvc/Entity/Entity.php(100): XF\Mvc\Entity\Entity->get('xr_pm_purchases')
#1 internal_data/code_cache/templates/l1/s14/public/xr_pm_product_wrapper_macros.php(147): XF\Mvc\Entity\Entity->offsetGet('xr_pm_purchases')
#2 src/XF/Template/Templater.php(662): XF\Template\Templater->{closure}(Object(ThemeHouse\UIX\XF\Template\Templater), Array, Array)
#3 internal_data/code_cache/templates/l1/s14/public/xr_pm_product_wrapper.php(31): XF\Template\Templater->callMacro('xr_pm_product_w...', 'tabs', Array, Array)
#4 src/XF/Template/Templater.php(1249): XF\Template\Templater->{closure}(Object(ThemeHouse\UIX\XF\Template\Templater), Array)
#5 src/XF/Template/Templater.php(815): XF\Template\Templater->renderTemplate('xr_pm_product_w...', Array, false)
#6 src/XF/Template/Templater.php(1305): XF\Template\Templater->applyWrappedTemplate('\n\n\n\n\n\n\t\n\t\n\t\n\t\t\n...')
#7 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('xr_pm_product_v...', Array)
#8 src/XF/Mvc/Renderer/Html.php(48): XF\Template\Template->render()
#9 src/XF/Mvc/Dispatcher.php(332): XF\Mvc\Renderer\Html->renderView('XR\\PM:Product\\V...', 'public:xr_pm_pr...', Array)
#10 src/XF/Mvc/Dispatcher.php(303): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#11 src/XF/Mvc/Dispatcher.php(44): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#12 src/XF/App.php(1931): XF\Mvc\Dispatcher->run()
#13 src/XF.php(328): XF\App->run()
#14 index.php(13): XF::runApp('XF\\Pub\\App')
#15 {main}
Code:
array(4) {
  ["url"] => string(39) "/products/xfa-rm-marketplace-shop-xf2.8"
  ["referrer"] => string(27) "https://example.com/products/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
 
Last edited:
Server error log
Code:
#0 src/XF/Mvc/Entity/Entity.php(100): XF\Mvc\Entity\Entity->get('xr_pm_purchases')
#1 internal_data/code_cache/templates/l1/s14/public/xr_pm_product_wrapper_macros.php(147): XF\Mvc\Entity\Entity->offsetGet('xr_pm_purchases')
#2 src/XF/Template/Templater.php(662): XF\Template\Templater->{closure}(Object(ThemeHouse\UIX\XF\Template\Templater), Array, Array)
#3 internal_data/code_cache/templates/l1/s14/public/xr_pm_product_wrapper.php(31): XF\Template\Templater->callMacro('xr_pm_product_w...', 'tabs', Array, Array)
#4 src/XF/Template/Templater.php(1249): XF\Template\Templater->{closure}(Object(ThemeHouse\UIX\XF\Template\Templater), Array)
#5 src/XF/Template/Templater.php(815): XF\Template\Templater->renderTemplate('xr_pm_product_w...', Array, false)
#6 src/XF/Template/Templater.php(1305): XF\Template\Templater->applyWrappedTemplate('\n\n\n\n\n\n\t\n\t\n\t\n\t\t\n...')
#7 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('xr_pm_product_v...', Array)
#8 src/XF/Mvc/Renderer/Html.php(48): XF\Template\Template->render()
#9 src/XF/Mvc/Dispatcher.php(332): XF\Mvc\Renderer\Html->renderView('XR\\PM:Product\\V...', 'public:xr_pm_pr...', Array)
#10 src/XF/Mvc/Dispatcher.php(303): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#11 src/XF/Mvc/Dispatcher.php(44): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#12 src/XF/App.php(1931): XF\Mvc\Dispatcher->run()
#13 src/XF.php(328): XF\App->run()
#14 index.php(13): XF::runApp('XF\\Pub\\App')
#15 {main}
Code:
array(4) {
  ["url"] => string(39) "/products/xfa-rm-marketplace-shop-xf2.8"
  ["referrer"] => string(27) "https://example.com/products/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
You will likely need to post the actual error, usually the first line you see in the error log.
 
That was already fixed; I believe you just need to redownload the 2.0.0 package, re-upload the files and then run Rebuild under the add on menu in the add on list in the Admin CP.
 
Last edited:
@Chris D Is their anyway to hide the feature summary from showing if no context is added for it on the listing?
Also it seems the accept terms of use part only shows when a person goes to download a file (after payment), could it be made so they have to accept the terms before payment?

Other than that great work as always and i just able to get the money before the end of the extra long promotion :)
 
@Chris D I'm getting the following error when trying to upload the file to the product listing.

PHP:
LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Please enter a valid message.) in src/XF/Service/ValidateAndSavableTrait.php at line 34
XR\PM\Service\Version\Editor->save() in src/addons/XR/PM/Admin/Controller/Product.php at line 470
XR\PM\Admin\Controller\Product->actionVersionEdit() in src/XF/Mvc/Dispatcher.php at line 249
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 88
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 41
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 1931
XF\App->run() in src/XF.php at line 328
XF::runApp() in admin.php at line 13

Screen Shot 2018-07-08 at 09.36.01.webp
 
Chris D updated XR Product Manager with a new update entry:

XR Product Manager 2.0.1 released

Just fixing some of the pesky bugs that surfaced since the release of 2.0.0 🙂
  • Fix xf_xr_pm_product doesn't exist error after uninstalling the add-on and removing payment profiles.
  • Ensure category permissions are rebuilt after a new category is created.
  • Remove code pointing to a method that no longer exists.
  • Display a more sane error when a product has no valid versions to download.
  • Display session activity when viewing products.
  • Ensure the ability to stop emails...

Read the rest of this update entry...
 
Same question as in the other eCommerce resource thread: Is it possible to create bundles? Like let's say you have product A and bundle B, which contains A (and maybe more). If someone purchases A or B, they should be able to download A. Once B expires, A should expire aswell. So B would not contain any downloads, but it would entitle you to download A.

Kinda like adding user groups to categories and removing them once expired in the XFRM works.
 
There's perhaps a couple of ways it could work.

Purchasing "Bundle B" adds purchasers to the "Bundle B customer" group. This user group promotion expires when the license expires.

Then either:

1) The "Bundle B customer" group is given coupons that discounts "Product A" (and others) down to 0 and they claim their licenses for those manually.

2) The "Bundle B customer" group is given access to a secret product category that contains free versions of "Product A" (and others).
 
Well, any tax handling at all, but, yes.

It's going to remain missing, unfortunately, at least for the initial release. It's something we're aware of (XF) so there's a hope there that support for such things will make it into the core at some point.

This would be so good and especially crucial for EU digital downloads (VAT MOSS). I would have thought the simplest thing would be to encourage Taxamo to create the addon, as with their WP Woocommerce plugin.

Of course the big problem here (that some people may not realise) is that small businesses can be under the VAT threshold in the UK, but those thresholds don't exist in most EU countries, you are obliged to collect and report the all VAT for sales to EU countries even when under the UK threshold. Taxamo makes this easy, but I get the feeling that any kind of xenforo core method to deal with this will be very time consuming without some third party involvement with something like Taxamo.

Currently I am selling digital downloads via Wordpress and the taxamo plugin deals with and prepares a VAT MOSS quarterly statement, while with my sales and upgrades on xenforo I have to manually identify EU digital sales and manually add those to my VAT MOSS declaration (meanwhile having to "eat" the tax ourselves as it can't be added at time of purchase).
 
Unfortunately I missing a very important feature, against the XEN Product Manager XF1;
add-to-cart

That means for each item our customer need to pay separately by paypal for example.

upload_2014-9-2_20-19-15-png.82660
 
  • Like
Reactions: Xon
Hey! This look pretty cool but I have 1 question left: Can you get rid of the active/inactive thing? I want a product to be immediately active after the purchase. Is that possible?
 
Top Bottom