Jump to content

Recommended Posts

Posted

On the `currencies.php` model there is a method `toDecimal` which is labeled as the "precision" of a currency. As I understand it the intention is to turn a float similar to "12.622222" into "12.62". The functionality it actually provides is via the AppModel->truncateDecimal method which is a `minimum` precision as per the documentation. This leads to raw pricing data without truncated precision as per the currency's database configuration.

 

For example USD pricing will result in:

{
     "id": "1",
     "pricing_id": "1",
     "package_id": "1",
     "term": "1",
     "period": "month",
     "price": "10.00",
     "setup_fee": "0.00",
     "cancel_fee": "0.00",
     "currency": "USD"
}

but pricing for GBP is

{
    "id": "1",
    "pricing_id": "1",
    "package_id": "1",
    "term": "1",
    "period": "month",
    "price": "6.9834",
    "setup_fee": "0.00",
    "cancel_fee": "0.00",
    "currency": "GBP"
}

I believe the frontend or view layer of Blesta is obfuscating this minor problem from being apparent. It's a significant issue for identifying the accurate pricing when the Blesta API is being consumed directly.

Posted

The Packages model has a method called getPackageItems which is what we use to get the items and currency.

 

A basic request to /api/packages/getPackageItems.json

with package_pricing and a non default currency

  • 2 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...