centralnicgroup-opensource / rtldev-middleware-whmcs

CentralNic's WHMCS Software Bundle
https://centralnicreseller.com
Other
35 stars 15 forks source link

Premium Domain Issues (at Regular Price / Unavailable) #272

Closed x011 closed 10 months ago

x011 commented 10 months ago

Describe the bug Premium Domains shown as available at regular price

To Reproduce Steps to reproduce the behavior: Search any premium domain.

Expected behavior Create a setting on module to enable or disable premium domains. Show the correct price if enabled.

Context (please complete the following information):

2023-11-04_23h45_26

2023-11-04_23h45_36

DennisSkov commented 10 months ago

Do you have premium domains enabled in WHMCS? Premium domains have the correct pricing for us.

x011 commented 10 months ago

Do you have premium domains enabled in WHMCS? Premium domains have the correct pricing for us.

Yes, we do have Premium Domains enabled.

2023-11-04_23h53_25

DennisSkov commented 10 months ago

Are you also using the module as the lookup provider?

x011 commented 10 months ago

Hi Dennis, After enabling CentralNic Reseller as Lookup Provider, premium domain queries return unavailable. Any idea why this may be happening?

2023-11-05_12h09_11

2023-11-05_12h10_52

KaiSchwarz-cnic commented 10 months ago

Good Day @x011!

Thanks @DennisSkov for helping here with the initial step for premium domain support! :-)

Related Resources:

The last resource is pointing us to a sample registrar module/integration. Let me point you to the related lines of code for a better understanding regarding the technical mechanism behind all that: https://github.com/WHMCS/sample-registrar-module/blob/master/modules/registrars/registrarmodule/registrarmodule.php#L907-L916

Here, WHMCS asks the underlying Registrar Module to include the premium domain pricing in the availability check which means we as registrar have to return a pricing with the related currency.

We cover that via CentralNic Reseller API in the following way using CheckDomains:

image

Here, you see that the premium price the respective reseller will pay, is returned and this is what we return to WHMCS. WHMCS will then be adding additional costs (the configured premium domain markup, id protection / dns management / email forwarding addon pricing if applicable etc.) which corresponds finally to the pricing whmcs is displaying on client area and your clients would have to pay.

Let us come back to the pricing we return to WHMCS. You noticed that we are returning that pricing in a specific currency. Here it starts getting weird... If this currency is not configured in WHMCS, WHMCS will show it as available but for the regular pricing (and this will be ending in an error finally as the order will be about that price and about a non-premium domain, luckily that order won't be processed by the CNR API). The currency returned corresponds to the account currency you have at CNR. Our expectation is that returning this currency is resulting in a higher chance for a match with the default currency in whmcs. So, if you enable the Module Log and check for command CheckDomains, you'll be able to identify the currency returned.

If it is returned as unavailable, then I guess there's something missing regarding the account settings in your CNR account.

The important points to cover are here:

Especially the last two points are different to other registrars like HEXONET and often not known / self-explaining.

Login in to your account and go to your account settings (click on your account name at top right): image

TLDs can be configured in the CNR Frontend by selecting Domains > Domain Prices via the menu on the left. There, ensure to have the respective TLD activated.

Hope that detailed information helps! Still, if you need further help, please follow-up. Provide then the Response of CheckDomains from the Module Log please as well.

Kind Regards

KaiSchwarz-cnic commented 10 months ago

Sorry for all the updates I made, but now the response is complete. 💯

x011 commented 10 months ago

I wasn't aware that I needed to activate the Premium Domains on the CentralNic Resellers dashboard. Once this was activated, the premium domain feature functioned properly on WHMCS. Thank you so much, @KaiSchwarz-cnic and @DennisSkov.

image