Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Ищу модуль или доработку за деньги. Цена доставки в зависимости от зоны в городе.


 Share

Recommended Posts

Всем привет. Сайт доставки пиццы. Нужно связать цену доставки к адресу в городе. Стоит модуль Simple.

Нужно, чтобы было как тут примерно:

https://prontopizza.ua/vinnytsia/ru/

 

Искал модули не нашел, может кто-то сталкивался или готов реализовать такое за деньги. 

image.thumb.png.ae7a02d4d685b29519dbba366062ca3a.png

Link to comment
Share on other sites


Добрий день, вам потрібне геокодування від гугла (рекомендую, працює в 99% коректно) або в БД тримати всі вулиці і номери будинків з вартістю (варіант так собі). До сімпли можна виводити дані з БД або API якось так:

Прихований текст

image.png.c92c60ab3c11686041f7c2d2f52b14b1.png

 

Детальніше можна в пп

Link to comment
Share on other sites


13.11.2022 в 18:39, toporchillo сказал:

https://bitbucket.org/toporchillo/yandex-map-shipping-module-for-opencart/src/master/
 

Это вот этот модуль, правда Яндекс.Карты

 

В Україні використовувати Яндекс карти? Тож у більшості сторінка замовлення працювати не буде

 

  • +1 2
Link to comment
Share on other sites


13.11.2022 в 19:22, niger сказал:

В Україні використовувати Яндекс карти?

Показана идея.
Нарисовать полигон на карте
Проверить адрес на попадание в полигон
Достать стоимость доставки

Link to comment
Share on other sites

13.11.2022 в 19:49, chukcha сказал:

Показана идея.
Нарисовать полигон на карте
Проверить адрес на попадание в полигон
Достать стоимость доставки

Гарна ідея. Але колись таке робив теж, але потім перейшли на доставку кілометрами. у Google є API там є матриця дистанцій. Можна обирати параметри(траси використовувати чи ні, пешком чи авто) та налаштовувати. Вертає кількість метрів. І вже від дистанції рахували вартість. Бо так потім легше рахувати скільки кілометрів проїхав/пройшов курʼєр та скільки це коштувало для компанії. 

 

               const origin2 = {lat: ваш лат, lng: ваш лнг}; // тут ваші координати
                const destinationA = "Дніпро " + _this.street + ' ' + _this.building; // передаєте місто, а потім вулицю та дім -  які прийшлии від користувача


                const service = new google.maps.DistanceMatrixService();
                service.getDistanceMatrix(
                    {
                        origins: [origin2],
                        destinations: [destinationA],
                        travelMode: google.maps.TravelMode.DRIVING,
                        unitSystem: google.maps.UnitSystem.METRIC,
                        avoidHighways: false,
                        avoidTolls: false,
                    },
                    (response, status) => {
                        if (status !== "OK") {
                            console.log("Error was: " + status);
                        } else {
                            const originList = response.originAddresses;
                            const destinationList = response.destinationAddresses;
                            const distance = response.rows[0].elements[0].distance.value;
                         // вертати distance чи далі щось робити вирішуйте самі

                        }
                    }
                );

 

Edited by niger
Link to comment
Share on other sites


14.11.2022 в 11:24, niger сказал:

Вертає кількість метрів.

Ага, ехал по Львову - чтобы попасть во двор накрутили более 10км по наФигатору (а дворами - 500м)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.