glavpunkt / Webasyst-Shopscript

0 stars 0 forks source link

Оптимизация получения тарифов ПВЗ #22

Closed SergeChepikov closed 4 years ago

SergeChepikov commented 4 years ago

предлагаю сделать другим образом. мы делаем запрос примерно: http://glavpunkt.ru/api-1.1/get_tarif?cityFrom=%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3&cityTo=%D0%A1%D0%BE%D1%87%D0%B8&serv=%D0%B2%D1%8B%D0%B4%D0%B0%D1%87%D0%B0&paymentType=cash&weight=1&price=1000 в таком случае получаем tarif 143, т.е. единый тариф для всего города. и не нужно нагружать систему дополнительными запросами.

а вот если, http://glavpunkt.ru/api-1.1/get_tarif?cityFrom=%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3&cityTo=%D0%A1%D0%BE%D1%87%D0%B8&serv=%D0%B2%D1%8B%D0%B4%D0%B0%D1%87%D0%B0&paymentType=cash&weight=1&price=1000 там есть tarifRange и вот при нём уже делаем конкретный запросы на получение тарифов.

В первом случае конечный массив будет вида: [ // ключ будет один 'pickup_gp' => [ 'name' => 'Пункты выдачи Главпункт', ... 'custom_data' => [ 'pvz_id_1' => [...], 'pvz_id_2' => [...], ] ] ]

Во втором случае ключей будет несколько. т.к. тарифы отличаются по оператору и будет [ 'pickup_cdek' => [...], 'pickup_hermes' => [...] ]