What this solution does
The module adds delivery services to an online store with cost calculation based on the customer's address. Addresses are refined using the DaData service, which provides input suggestions and determines geographic coordinates. DaData usage tariffs are published on the service's official website.
Three calculation types are available:
MKAD — cost is calculated relative to the Moscow Ring Road;
KAD — cost is calculated relative to the Saint Petersburg Ring Road;
Map Zones — a fixed price applies if the address falls within a polygon drawn by the administrator in the control panel.
Services can be used individually or combined: for example, MKAD for Moscow and zones for other cities.
Tariffs for MKAD and KAD include a price per kilometer outside the ring road, as well as a distance table with different rates for ranges, such as 0 to 20 km and 21 to 40 km. A delivery cost inside the ring road can be set and, if necessary, added to the price for distances outside MKAD or KAD.
The Map Zones feature is disabled by default. After activation in the module settings, the administrator draws zones on Yandex Maps, specifying the name, color, and price. During checkout, the module retrieves address coordinates from DaData and determines the zone. If the address is outside all zones, a fixed price can be displayed.
The module calculates delivery costs for MKAD, KAD, and arbitrary zones. A JavaScript API key from Yandex.Maps is required to draw zones in the admin panel. The store logic may be non-standard, allowing the delivery calculation to be extended with custom event handlers. A typical example is a delivery fee of 300 rubles within MKAD, which becomes free for orders totaling 3500 rubles or more. The module is compatible with the standard template of the sale.order.ajax component. If the checkout template has been significantly modified, additional adjustments may be required. Correct operation of the module requires the following conditions: the curl extension must be enabled in PHP; the DaData account must have a positive balance, as each request is billed; the order properties must include a property with the 'Is address' flag, and its field must be displayed on the checkout page; if the module is in demo mode, the demo period must not have expired; for zone functionality, the option must be enabled in the module settings and the JavaScript API key from Yandex.Maps must be specified.
General iT can take care of implementing “Delivery calculation: MKAD, KAD and arbitrary zones”, including installation, configuration and result verification.