Back

VibeFox 99Minutos for WooCommerce — Help

Requirements

WordPress: 5.8 or later.

WooCommerce: 5.0 or later, installed and active. The plugin refuses to activate without it.

PHP: 8.0 or later.

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.

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

Installation

1. In WordPress go to Plugins > Add New > Upload Plugin, choose the plugin ZIP file and click Install Now. You can also upload the vfd_99minutos folder to /wp-content/plugins/ by FTP.

2. Click Activate.

3. Open the settings: WooCommerce > Settings > Shipping > VibeFox 99Minutos, or click Settings under the plugin name on the Plugins page.

4. Enter your VibeFox license key in the license block at the top of the page and click Activate.

5. Fill in the Price matrix (at least one row, for example "* Default") and, optionally, the API key and the coverage check mode (see Configuration).

6. Add VibeFox 99Minutos to a shipping zone in WooCommerce > Settings > Shipping > Shipping zones that covers Mexico, Colombia, Chile or Peru.

Configuration

All settings are on one page: WooCommerce > Settings > Shipping > VibeFox 99Minutos. They apply to every shipping zone. When you add the method to a zone, the zone window has only one field:

Method title (zone): the name customers see in this zone. Leave it empty to use the global Method title.

When you save the settings, the page warns you if the price matrix is empty or if a coverage check mode is chosen without an API key.

General

Enable/Disable: enables 99Minutos in all shipping zones at once. The method must also be added to a shipping zone that covers Mexico, Colombia, Chile or Peru. Default: on.

Method title: the shipping method name shown to the customer at checkout. A zone can override it. Default: 99Minutos.

Tax status: Taxable adds WooCommerce tax to the shipping cost, None does not.

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 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, 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: covered for 6 hours, not covered for 30 minutes, API error for 5 minutes. Only the postcode is sent to 99minutos.

API key: your 99minutos API key, sent as a Bearer token to the 99minutos coverage endpoint. Required when the coverage check is on. The field is masked.

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 your store currency and are used as entered, without conversion.

Price matrix: a table of destination countries and prices. Click + Add country to add a row and the cross to remove one. Each row has a Country, 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. Both a point and a comma are accepted as the decimal separator; negative prices are saved as 0. Until the matrix has at least one 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: turn on free shipping from a cart subtotal.

Free shipping from: the cart subtotal (after discounts, excluding tax) from which the rate is 0. Used only when Free shipping is on.

Restrictions

Min weight (kg): hide the method if the cart is lighter. 0 means no limit. Product weights are converted from your store weight unit.

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

Minimum subtotal: show the method only if the cart subtotal (after discounts, excluding tax) is at least this amount. Leave empty to always show it.

Excluded shipping classes: hide the method if any cart item has one of these WooCommerce shipping classes.

Restrict countries: offer the method only for the countries below. This is an additional filter on top of shipping zones: the method still has to be added to a zone. Useful when one zone covers several countries.

Countries: a choice of the 99minutos countries (Mexico, Colombia, Chile, Peru). Used only when Restrict countries is on. Leave empty to allow all 99minutos countries.

Advanced

Debug log: logs rate calculations to WooCommerce > Status > Logs (source "vfd-99minutos"). API errors are logged even when this is off. API keys and customer names and addresses are never logged.

Remove data on uninstall: when on, deleting the plugin removes its settings and coverage cache. Deactivation never deletes anything. Shipping zone methods and orders are kept in any case.

How it works at checkout

The method is offered only when the delivery country is Mexico, Colombia, Chile or Peru (and is in the Countries list if Restrict countries is on). When the customer enters a delivery address, the plugin checks the cart weight limits, Minimum subtotal and Excluded shipping classes.

If a coverage check mode is on, the plugin then 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 on and the cart subtotal reaches Free shipping from, the rate is 0.

The method works on the classic checkout and on the Cart and Checkout blocks. It is compatible with WooCommerce High-Performance Order Storage (HPOS).

The plugin 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 plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Shipping > VibeFox 99Minutos. Paste the key into License key and click Activate. The block shows the status, for example the date the license is active until and your domain. Use Check now to check the status again, Change key to enter another key and Remove key to remove it from this site. The link Manage licenses and domains in your account opens your vibefox.net account.

One key works on one domain. Removing the key from a site does not free its domain slot. Free the slot in your vibefox.net account.

Without an active key, 99Minutos is not shown to customers at checkout. Logged-in store managers still see it, marked (unlicensed — visible to admins only), so you can set up and test the plugin before you buy a key. A reminder appears on the Plugins page and on WooCommerce pages. Existing orders are not affected.

When a license expires, the plugin keeps working, but updates and support need a renewal. The status is checked again automatically in the background.

Troubleshooting

99Minutos does not appear at checkout: check that the license is active, Enable/Disable is on, and the method is added to the zone of the customer's address. The delivery country must be Mexico, Colombia, Chile or Peru. Check that the Price matrix has a row for that country or a * Default row, and check the weight limits, Minimum subtotal, Excluded shipping classes and Restrict countries.

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 open WooCommerce > Status > Logs (source "vfd-99minutos"). 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 your store weight unit. An empty or 0 size price falls back to the Base price.

Other countries: developers can change the list of supported countries with the vfd_99m_supported_countries filter.

The license block shows an error: follow the message in the block. For example, if the key is already used on another domain, free a slot in your vibefox.net account and click Check now. If the site address changed, click Check now to activate the key for the new domain. If the license server cannot be reached, the plugin keeps working on the last known status.

Uninstall

Deactivating the plugin keeps all data. To remove it, deactivate and delete it on the Plugins page. The license key and license status of this plugin are always removed. Settings and the coverage cache are removed only if Remove data on uninstall was on. Otherwise they stay for a later re-install. Shipping zone methods and existing orders are kept.

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