Multiple Entity WCM Setup

For a multiple entity iMIS setup, is it possible to set up online cash accounts (W_VISA) for multiple entities and set a variable on the site, product/event or page level to declare what entity/cash account the financial transaction should be processed through.

two entities: ABC and XYZ both have their own financial accounts and are two separate organizations, but they share the same iMIS database. For the desktop operations, they've setup cash accounts for A_VISA and X_VISA (same for MC and AMEX) to distinguish one entity from the other. Now whence getting WCM setup, will have two separate sites ABC.org and XYZ.org within WCM. Is it possible to set financial transactions on ABC.org to use W_A_VISA and XYZ.org to use W_X_VISA cash accounts? Or is there a way to at the product, event or even function level declare the entity that would then drive the cash account used? I am aware that events and functions have an entity code/setting, but does that drive cash accounts used for CC processing?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Does this mean two

Does this mean two orgainsations share their customer details, you need to select the correct cash account code based on the site they logged in?

 

 

Yes

Yes, there is much crossover between the two entities in terms of customer data but the keep their financials separate (each entity has its own PayPal processor). So whether it's set at the site level, event level or function level, the transactions taking place on the web (through WCM) will need to be processed using different cash accounts (similar to how it is setup for the desktop).

 Simple Solution You need

 Simple Solution

You need to make the following changes for my solution to work; you no need to change anything from your PayflowPro Payment provider DLL.

1.Add a new AppSettings from your web.config file, this new setting will be used to find the correct cash account code based on logged in site.

From your example I understand that you have 2 cash accounts and they are linked to 2 different websites
W_A_VISA --> ABC.ORG
W_X_VISA --> XYZ.ORG

So in order to find the correct cash account code for ABC.ORG we will be searching for “_A_” so we need add new entry in the config file like below

<add key="SITE_CODE_CASH_ACCOUNT" value="_A_" />

For  ZYZ we would be adding like below

<add key="SITE_CODE_CASH_ACCOUNT" value="_X_" />

At the end you will be editing 2 different config files for 2 different websites

2.Change in aspx file.

You need to open “Checkout.aspx” file from Net folder where your site installed you can find this file from the following location for standard IMIS15 Installation

C:\Program Files (x86)\ASI\iMIS15\Net\Core\Cart \Checkout.aspx
Open this file using notepad and add the below code after this line

<%@ Register TagPrefix="uc1" TagName="PageAccessValidationWebUserControl" Src="../Validation/PageAccessValidationWebUserControl.ascx" %>

<script runat="server">
   
protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    if (ConfigurationManager.AppSettings["SITE_CODE_CASH_ACCOUNT"] != null)
    {
        string cashAccountCode = ConfigurationManager.AppSettings["SITE_CODE_CASH_ACCOUNT"];
        var removeCashAccounts = new ArrayList();
        foreach (ListItem item in this.ddlCardType.Items)
        {
            if (item.Value != null)
                if (!item.Value.Contains(cashAccountCode) && !string.IsNullOrEmpty(item.Value))
                    removeCashAccounts.Add(item);
        }
        foreach (ListItem item in removeCashAccounts)
            this.ddlCardType.Items.Remove(item);
    }

}
</script>

 

Basically this code removes any cash accounts which are not related to current website, so always user select the correct cash accounts linked to particular site.

Hope this resolves your problem,
Please let me know if you have any issues implementing

Balaji

Fisher Technology PLC

 

 

thank you

Balaji,
This is an interesting suggestion, I'll work through it. The issue I see right away is that there is only one web.config for the WCM setup (at this point, everything will be default WCM install). Now, if I'm following along, if we add two keys

<add key="ABC_CASH_CODE" value="_A_" />
<add key="XYZ_CASH_CODE" value="_X_" />

and then use the specific key in the checkout.aspx for each site... might that be a fix? I'll give it a whirl today in a dev environment and report back on my results.

And both sites will be using the same core functionality. So we could add a check to decipher which site is calling checkout.aspx based on, the site code? (can we get at that?)

It is possible to have to

It is possible to have to instances of iMIS both pointing to the same system. Once for customer A and the other for Customer X.

well create an app key with

well create an app key with your domain name as prefix

for example your domain is  www.helloworld.com

you could specify

<add key="www_helloworld_com_cash_code" value="_A_" >

then in your aspx code you could replace all dots with "_"

something like

string cashaccouncode = HttpContext.Current.Request.ServerVariables["HTTP_HOST"].Replace(".","_")

then you can get the correct cash accounts

Good luck

Progress!

Balaji,

I cannot begin to thank you for the help you've provided. I've run into a plethora of basic iMIS/WCM settings that weren't correctly setup (gotta love coming into a project in the middle), here's what I've done in the checkout.aspx file:

string keyCode = HttpContext.Current.Request.Url.Host.Replace(".","_")+"_CASH_CODE";
if (ConfigurationManager.AppSettings[keyCode] != null)
{
string cashAccountCode = ConfigurationManager.AppSettings[keyCode];
var removeCashAccounts = new ArrayList();
foreach (ListItem item in this.ddlCardType.Items)
{
if (item.Value != null)
if (!item.Value.Contains(cashAccountCode) && !string.IsNullOrEmpty(item.Value))
removeCashAccounts.Add(item);
}
foreach (ListItem item in removeCashAccounts)
this.ddlCardType.Items.Remove(item);
}

this under the guise that the Url.Host is the defining factor and then I've added two keys to the AppSettings section of the web.config:

<add key="www_abc_org_CASH_CODE" value="_A_" />
<add key="www_xyz_org_CASH_CODE" value="_X_" />

which does restrict the available cash accounts in the payment type dropdown. The downside I've seen is on the next screen (review.aspx) the Payment Type has: A_VISA (the W_ was stripped), which I don't think is a major issue.

I also haven't been able to actually process a transaction - but I think that might be due to the TEST Auth accounts not being setup correctly - as I've removed this code and attempted to process via a standard W_VISA account and got the same error (An error occurred while processing your transaction. Please contact us to resolve this issue. - which is really helpful). I'm also not able to setup the actual domains (still working with a local setup, so I cannot derive a different host from the machine name), but the machine name keyCode is working.

I do believe they call that progress! Will post final results after I get someone to look at the paypal settings.

T

You no need to have 2 actual

You no need to have 2 actual domain's to test this process, open your host file and add these domains point into your local imis. Then you would be able simulate the same process.

Ref how to update you host file

http://www.enterprisenetworkingplanet.com/netsysm/article.php/991281/Net...

durh

Yep, I was trying to use localhost for the second site's host (that didn't work so well) - didn't think of the host file and creating a local domain. once i did that it worked like a charm.

also the errors I was getting on checkout was NOT due to the payment types or the cash accounts - we did not have the M and NM customer types defined. This is a requirement for Public View event checkouts using member/nonmember registrant class determination.

Thanks again,

T

This will probably require

This will probably require an enhancement.

BSCI offers a Multi Entity Dues iPart.

 

 

For this product to work you will need to add multiple Org Codes in iMIS Desktop that drive the billing products and price tiers.
This payment page supports all iMIS Dues Products including VOL, MISC, Chapter with the iMIS Pricing tiers normally seen with a single payer.
Payment options for a single entity setup.
Voluntary products will populate the form if member owes voluntary items.
Dues and Voluntary products will populate the form if member owes Dues and Voluntary products.
Dues products will populate the form if member owes Dues products.
Dues and Voluntary products will not populate the form if member has paid the Dues products.
 
For multi entity Credit Card and ACH transactions these rules apply.
If a member owes entity based Voluntary Product they will see the product and be able to pay the subscription with no impact on the other member entity subscription records.
The payment process will delete any orphaned subscription products listed in the subscription table but without a corresponding product in the product table.
 
Voluntary products will populate the form if member owes voluntary products per entity.
Dues and Voluntary products will populate the form if member owes Dues and Voluntary products per entity.
Dues products will populate the form if member owes Dues products per entity per entity.
Dues and Voluntary products will not populate the form if member has paid the Dues products per entity.

Bruce M Walker

BSCI

Chicago IL

The Multi Entity iPART supports Multiple AR Cash Accounts

 
The iPART offers the ability to bind an AR Cash Account group based on the other Cash Accounts than the W_.
In this example it is bound to the AR cash accounts staring with A_.
 
Thank You
BMW
 
Try
      {
               bwalker@bscichicago.com
       }
Catch
      {
              312.553.1253 x230
       }
Finally
      {
               312.553.1253 x233
       }

 

iPart

Bruce,

I did see that and while it is close to what I'm looking to do, I'm in need to accomplish this for more than just dues.

This will need to be done for events, primarily, and products - based on the event, site or function which will have the entity code associated with it.

We can do that as well.

It is not part of a unified cart.
 
Thank You
BMW
 
Try
      {
               bwalker@bscichicago.com
       }
Catch
      {
              312.553.1253 x230
       }
Finally
      {
               312.553.1253 x233
       }

 

Another issue has risen

So we've got this process working - and it's working quite smoothly, so thank you Balaji for the help.

I've even been able to strip out the additional "A_" and "X_" from the payment type displays on the cart review and summary pages with a little bit o javascript. (WCM strips the "W_" from the code so in a single instance, the W_VISA displays just VISA, which customers are used to. When we added the W_A_VISA, we've been seeing the "A_VISA" in the payment type. While it's not the end of the world and won't stop any of the process, we all know how fickle users get when they don't see what they're used to - especially with CCs online.

Now the same is happening on the order confirmation email that is sent out - the payment type is shown as "A_VISA". I, of course, could just copy the javascript to the page that creates that portion of the email, however (and herein lies the rub), where is this done and, more importantly, do we have access to make any modifications? I've searched iC, but the closest I've been able to find was http://www.imiscommunity.com/email_template_report_customizations which does not look promising. I'm hoping that someone has been able to modify the email details and will share their methods... Thanks