Voltar

VibeFox 99Minutos for Adobe Commerce — Ajuda

Requirements

Magento: Magento Open Source or Adobe Commerce 2.4.6 to 2.4.9, on your own server or hosting, on premises or on Adobe Commerce on cloud infrastructure. The module does not work with Adobe Commerce as a Cloud Service (the SaaS edition), which does not accept PHP modules.

PHP: 8.1 to 8.4, with the cURL and JSON extensions.

99minutos API key (for the coverage check only): get it from your 99minutos account manager or at the 99minutos developer portal (developers.99minutos.com). Sandbox and production keys are different. If you only use the price matrix, you do not need an API key.

Countries: 99minutos delivers to Mexico, Colombia, Chile and Peru. The countries you ship to must be allowed in Stores > Configuration > General > General > Country Options.

VibeFox license key: bought on vibefox.net. One key works on one domain.

Installation

The module is one ZIP file. It is a Composer package and can also be copied into app/code. Run the commands in the Magento root folder as the user that owns the Magento files.

1. With Composer: put the ZIP file into a folder that your project uses as a Composer "artifact" repository and run composer require vibefox/module-99minutos-shipping. Without Composer: unpack the ZIP file into app/code/Vibefox/NinetyNineMinutosShipping/, so that registration.php is directly in that folder.

2. Run bin/magento module:enable Vibefox_NinetyNineMinutosShipping and bin/magento setup:upgrade. In production mode also run bin/magento setup:di:compile and bin/magento setup:static-content:deploy, then bin/magento cache:flush.

3. In the Admin go to Stores > Configuration > Sales > Delivery Methods and open VibeFox 99Minutos. Paste your VibeFox license key into License key in the license block, the first row of the group, and click Activate (see License key).

4. Fill in the Price matrix (at least one row, for example "* Default") and, optionally, the API key and the coverage check mode (see Configuration). Set Enable 99Minutos to Yes and click Save Config.

The module adds the 99Minutos shipping method to Magento. Customers see it as 99Minutos - Courier delivery (method title and method name). It is off after installation (Enable 99Minutos = No).

Configuration

All settings are in Stores > Configuration > Sales > Delivery Methods > VibeFox 99Minutos, in the standard Magento configuration form. Like other Magento settings, they can be changed for a website with the Scope switcher at the top of the page; Method title and Method name also for a store view. Remove data on uninstall is read from the Default Config only. Save Config saves the whole page and clears the cached coverage results. Amounts and weights accept "9.99" and "9,99".

If a value is wrong, Magento shows an error and nothing on the page is saved: an empty Method title or Method name, or one longer than 64 characters; a Sort order that is not a whole number; a weight or amount field that does not contain a number of 0 or more; a Min weight (kg) greater than the Max weight (kg).

While Enable 99Minutos is Yes, warnings after saving remind you of settings that hide the method or have no effect: a coverage check mode without an API key, an empty price matrix, and matrix rows for countries 99minutos does not serve. The warnings are shown only while the method is enabled, because the Delivery Methods page is shared by all shipping methods.

General

Enable 99Minutos: shows or hides 99Minutos at checkout. Default: No.

Method title: the shipping method name shown to the customer in the cart and at checkout. Default: 99Minutos. Required, up to 64 characters.

Method name: shown after the method title, as "Method title - Method name". Default: Courier delivery. Required, up to 64 characters.

Sort order: the position among the shipping methods at checkout. A whole number, negative numbers are allowed.

The module has no tax field. If your store charges tax on shipping, set the tax class in Stores > Configuration > Sales > Tax > Tax Classes > Tax Class for Shipping; Magento then adds tax to the matrix price.

99minutos API (coverage check) (optional)

The API is used only to check whether 99minutos delivers to the customer's postcode. The price always comes from the matrix.

Coverage check: whether and how the postcode is checked.

Off — matrix price for every postcode: no API requests. Default.
Strict — show only if the API confirms coverage: the method is shown only when the 99minutos API confirms the postcode is covered. If the API is unavailable, no postcode is entered or no API key is set, the method is hidden.
Soft — hide if not covered; if the API is unavailable, still show the matrix price: the method is hidden only when the API answers that the postcode is not covered. On API errors, without a postcode or without an API key, the matrix price is used.

With a coverage check, the method appears only after the customer enters a postcode. Results are cached in the Magento cache: covered for 6 hours, not covered for 30 minutes, API error for 5 minutes. Only the postcode is sent to 99minutos, in upper case with letters and digits only.

API key: your 99minutos API key, sent as a Bearer token to the 99minutos coverage endpoint. Required when the coverage check is on. Magento stores it encrypted and shows only a mask after saving. Leave the mask as it is to keep the saved key, type a new value to change it. To delete the saved key, clear the field and click Save Config. The key is saved as typed, only spaces around it are removed.

Environment: Sandbox (test) (default) or Production. Sandbox and production use different API keys, so choose the environment that matches your key.

Rates

Prices are in the base currency of the website, tax excluded, and are used as entered. Magento shows them in the currency of the customer.

Price matrix: a table of destination countries and prices. Click Add country to add a row and Delete to remove one. Each row has a Country (* Default, Mexico, Colombia, Chile or Peru), a Base price and prices for the sizes XS (up to 1 kg), S (up to 2 kg), M (up to 3 kg), L (up to 5 kg) and XL (over 5 kg). An empty or 0 size price falls back to the Base price. The * Default row applies to countries without their own row. If a country has several rows, the first one is used. Both a point and a comma are accepted as the decimal separator; empty, invalid or negative prices are saved as 0. Until the matrix has a row for the delivery country or a * Default row, the method is not shown at checkout.

Calculation: Per order — size by the total cart weight (default) charges one price for the package size of the whole cart. Per item — each unit priced by its own weight prices every unit by the size of its own weight and adds them up.

Free shipping: set to Yes to turn on free shipping from a cart subtotal. Default: No.

Free shipping from: the subtotal of the products that need shipping (after discounts, excluding tax, in the base currency) from which the rate is 0. Used only when Free shipping is Yes.

Restrictions

Min weight (kg): hide the method if the cart is lighter. 0 means no limit. It cannot be greater than Max weight (kg).

Max weight (kg): hide the method if the cart is heavier. Default: 25. 0 means no limit; an empty field means 25 kg.

Product weights are converted to kg from the weight unit of your store (Stores > Configuration > General > General > Locale Options > Weight Unit, lbs or kgs). Magento products have no standard dimensions, so volumetric weight is not calculated.

Minimum subtotal: show the method only if the subtotal of the products that need shipping (after discounts, excluding tax, in the base currency) is at least this amount. Leave empty to always show it.

Ship to Applicable Countries: All Allowed Countries (default) offers 99Minutos for every 99minutos country your store allows. Specific Countries offers it only for the countries selected below.

Ship to Specific Countries: a choice of the 99minutos countries (Mexico, Colombia, Chile, Peru). Hold Ctrl (Cmd) to select several. Used only with Specific Countries.

Advanced

Debug log: writes rate calculations to var/log/vfd_99m_debug.log.php in the Magento folder. The file cannot be opened from the web. API errors are logged even when this is off. API keys and customer names and addresses are never logged. Turn the log off when you are done.

Log: shows the size and the latest entries of the debug log. Click Clear log to empty it.

Remove data on uninstall: when Yes, uninstalling the module with its data deletes the 99Minutos settings and the log (see Uninstall). When No, the settings are kept for a re-install. The license key and the cached coverage results are always removed. Orders are kept in any case.

How it works at checkout

At the shipping step Magento asks the module for the 99Minutos price. Only products that need shipping count: virtual and downloadable products add no weight and are not included in the subtotal. The method is offered only when the delivery country is Mexico, Colombia, Chile or Peru (and is selected in Ship to Specific Countries if Specific Countries is chosen). The module then checks the weight limits and Minimum subtotal.

If a coverage check mode is on, the module asks the 99minutos API whether the postcode is covered. The request timeout is 10 seconds and the answer is cached, so the same postcode does not trigger a new request. API errors are never shown to the customer: in the Strict mode the method is hidden, in the Soft mode the matrix price is used. Free shipping does not bypass the coverage check.

The price is taken from the matrix row of the delivery country, or from the * Default row. If neither exists, the method is hidden. If Free shipping is Yes and the subtotal reaches Free shipping from, the rate is 0. A Magento cart price rule with free shipping also makes the price 0. The price is calculated in the base currency; Magento then shows it in the customer's currency and adds tax on shipping if your store charges it.

The module does not get live rate quotes from 99minutos: prices always come from your matrix. It does not create shipments or orders in 99minutos, print labels (guides), track parcels, offer Punto99 pickup points or handle cash on delivery. Create shipments in your 99minutos account as usual.

License key

The module works with a VibeFox license key from vibefox.net. The license block License — VibeFox 99Minutos is the first row of the VibeFox 99Minutos group in Stores > Configuration > Sales > Delivery Methods, above the settings. Paste the key into License key and click Activate. After that the block shows the key masked, the status (for example the date the license is active until and your domain) and the buttons Check now to check the status again, Change key to enter another key and Remove key to remove the key from this store. Below them are the line Product: magento-shipping-99minutos and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only Admin users whose role allows the Delivery Methods configuration section can change the key. The texts of the block follow the Admin interface locale (English and Russian are included).

If the key is not accepted, the block says why, for example Key not found, This key belongs to another product, Domain limit reached or License expired on a date. After the store address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the module keeps working on the last known status.

One key works on one domain: the domain of the default store view, also when the installation has several websites or stores. Removing the key from the store does not free its domain slot. Free the slot in your vibefox.net account.

Without an active key, the 99Minutos method is not shown to customers at checkout and no rate is calculated. The Magento storefront does not know that you are logged in to the Admin, so the method is hidden for you too: you can set up the module before you buy a key, but not test it at checkout. A reminder appears in the System Messages of the Admin, with the links Enter the license key and Dismiss, which hides it for 7 days. Existing orders are not affected.

When a license expires, the module keeps working, but updates and support need a renewal. The status is checked again automatically: once a day for the first 14 days after the key is entered, then once a week, by the Magento cron and while you work in the Admin. Uninstalling the module with its data always removes the license key and license status.

Troubleshooting

99Minutos does not appear at checkout: check that the license is active and Enable 99Minutos is Yes for the website of the store. The delivery country must be Mexico, Colombia, Chile or Peru and allowed in Country Options. Check Ship to Applicable Countries and Ship to Specific Countries, that the Price matrix has a row for that country or a * Default row, and the weight limits and Minimum subtotal.

The method appears only after a postcode is entered: this is expected with a coverage check. In the Strict mode it appears only when the API confirms coverage.

The method is always hidden in the Strict mode: turn on Debug log, reload the checkout and look at the Log field in the Advanced section. An HTTP 401 or 403 error means the API key was rejected: check the key and that Environment matches it (sandbox and production keys differ). Use the Soft mode if customers should still get the matrix price while the API is unavailable.

The price is not what you expected: check Calculation (per order or per item), the product weights and the Weight Unit of your store. An empty or 0 size price falls back to the Base price. If your store taxes shipping, Magento adds tax to the matrix price.

Coverage results look outdated after a change: click Save Config on the Delivery Methods page. This clears the cached coverage results.

The settings page or the checkout looks unchanged after installing or updating: run bin/magento setup:upgrade and bin/magento cache:flush; in production mode also setup:di:compile and setup:static-content:deploy.

Uninstall

Deleting the module code alone removes nothing from the database: the license key and the settings stay. To remove the data, uninstall the module with the Magento command:

Installed with Composer: run bin/magento module:uninstall --remove-data Vibefox_NinetyNineMinutosShipping. It removes the data and the code.

Installed in app/code: run bin/magento module:uninstall --non-composer Vibefox_NinetyNineMinutosShipping to remove the data, then bin/magento module:disable Vibefox_NinetyNineMinutosShipping, delete the folder app/code/Vibefox/NinetyNineMinutosShipping and run bin/magento setup:upgrade.

The license key, the license status and the cached coverage results are always removed. If Remove data on uninstall is Yes, the 99Minutos settings and the log are removed too. If it is No, the settings are kept for a re-install. Orders are not changed.

99minutos is a trademark of its respective owner. This module is not affiliated with or endorsed by 99minutos.