HomeGuidesAPI ReferenceChangelogDiscussions
GuidesiMIS ProfessionaliMIS EnterpriseClient SupportLog In
Discussions

Discussions

Ask a Question
Back to All

Purchasing Non-Dues Subscriptions

I followed the instructions from Purchasing non-dues subscriptions and got stuck on the second section Find the non-dues ItemSet by ItemCode

https://{{URL}}/api/Item?ItemCode=Non-Member_Subscriptions

In a demo instance of iMIS: Non-Member Subscriptions is a billing cycle item.

The item endpoint won't return any result (with spaces or spaces replaced with underscores) but the LegacyBillingCycle endpoint would.

What are we missing?

Ultimately, we would like to be able to add (or edit) voluntaries or sections (for example) subscriptions and apply a specific amount payment.

Thank you for any guidance there.

Admin

Hi Molivouth,

You are correct that the "Non-Member Subscriptions" used in the example is a billing cycle in the demo database.

As long as a billing cycle has the checkbox for "Use to display join item set" or "Use to display itemized renewals" checked, it will be projected into a multi-layered kit product that we often refer to as a "Menu of Options". The ItemCode for this kit will be the billing cycle name after you replace all spaces with an underscore. You will see this same pattern in the UI of iMIS if you use the "Join Now" functionality to purchase the non-dues membership.

Does this help?

I'm happy to help answer any other questions you have along the way. It also might be helpful to get what you want working in the UI of iMIS, put it in the cart, and then read that cart via the API to see what the Order ends up looking like.

Courtney

Hi Courtney,

If I try browsing the URL: https://demoaisp8.imiscloud.com/iCore/Membership/Join_Now.aspx?iProductCode=Non-Member_Subscriptions
The page says: "The item could not be found."

And when we click on the Join Now button, which loads the page: https://demoaisp8.imiscloud.com/Staff/JoinNow?ID=28934
The "Non-Member Subscriptions" product is not listed for selection.

Do we have a configuration issue on our demo instance?

Admin

Hi Molivouth,

I see what you mean. I was able to access the database for that demo instance and I see that the DuesCycles table didn't have all of the right fields populated. I went ahead and corrected them with a script, but I think just by saving the billing cycle it probably would have fixed it too. You may need to purge cache but then you should be able to try again.

Also, when you click the join now button, the query displayed on that landing page is filtered to only membership billing cycles. You could either update it to include non-dues billing cycles or just manually go to the join page using the product code like you have in the URL you provided.

Courtney

Hi Courtney,

Would it be possible to get the script that corrected the DuesCycles table?
Or how to correct from the RiSE website? Saving the Billing cycles did not address the issue in our other local instances of iMIS EMS (on-premises) version 20.3.192.228 (even after purging the system cache).

Admin

I targeted just the one billing cycle with a specific script. But this is the piece of the upgrade script that should correct the problem. I think the upgrade initially only allowed non-dues billing cycles to be shown as products if is for join was selected. I've corrected the script included below to allow for either "is for join" or "is for renew" billing cycles to be shown as products. (Still not sure why saving the billing cycle didn't correct this for you though.)

Please note that not all billing cycles are projected as products. They need to:

  1. Have the join and/or itemized renewal checkbox checked
  2. Either be a non-dues billing cycle (the "Membership billing cycle" is unchecked) or only a single customer type is selected
UPDATE dc SET [ItemClass] = 'MEMBERSHIP' FROM [dbo].[DuesCycles] dc WHERE dc.[INCLUDE_ALL_MEM_ITEMS] = 1 AND (dc.[IS_FOR_JOIN] = 1 OR dc.[IS_FOR_RENEW] = 1) AND dc.[MEM_TYPES] != '*ALL*' AND dc.[MEM_TYPES] NOT LIKE '%,%' AND dc.[MEM_TYPES] != '' AND EXISTS (SELECT 1 FROM [dbo].[Member_Types] WHERE [MEMBER_TYPE] = dc.[MEM_TYPES]); UPDATE [dbo].[DuesCycles] SET [ItemClass] = 'SUBSCRIPTION' WHERE [INCLUDE_ALL_MEM_ITEMS] = 0 AND ([IS_FOR_JOIN] = 1 OR [IS_FOR_RENEW] = 1); UPDATE [dbo].[DuesCycles] SET [ItemId] = [ItemClass] + '-' + [ProductCode] WHERE [ItemClass] IS NOT NULL;

ο»Ώ

Contact us
Copyright Β© Advanced Solutions International, All rights reserved.