Настройка Доставки При Использовании Нескольких Тк

точно, заработало. Спасибо Даниил.

Даниил, еще несколько вопросов:


  1. в последнем видео про службы доставки вскользь идет упоминание про функцию fn_calculate_total_shipping_cost

    в yandex.js - где её найти?


  2. Вы в видео кратко сказали про режим _allow_multithreading, мол можно отправить запрос в спср, в сдек и т.д., а потом собрать за раз их ответы. Но как это сделать не рассказали или я не допонял


  3. В общем-то главный вопрос, из-за чего начался весь этот сыр-бор.

    В городе есть несколько пунктов самовывоза от разных ТК (в Москве от 3), по России есть и от BoxBerry и от TopDelivery, к примеру.



    У каждой ТК своя цена и своя зависимость этой цены от веса.

    Как такие зависимости реализовать?



    Смотрю pickup.php. Там есть функция _checkStoreCost, которая служит для получения надбавки по стоимости только выбранного ПВЗ или всех ПВЗ в выбранном городе?



    Правильно ли будет в этой функции тогда обращаться по API в ТК и получать стоимость доставки?



    А если выбрать режим отображения и карты и ПВЗ, то надо как-то показывать эту самую разную стоимость для каждого ПВЗ, где (файлик) её получить, в какой момент?

[quote name='densvi' timestamp='1437080927' post='223271']

Даниил, еще несколько вопросов:


  1. в последнем видео про службы доставки вскользь идет упоминание про функцию fn_calculate_total_shipping_cost

    в yandex.js - где её найти?


  2. Вы в видео кратко сказали про режим _allow_multithreading, мол можно отправить запрос в спср, в сдек и т.д., а потом собрать за раз их ответы. Но как это сделать не рассказали или я не допонял


  3. В общем-то главный вопрос, из-за чего начался весь этот сыр-бор.

    В городе есть несколько пунктов самовывоза от разных ТК (в Москве от 3), по России есть и от BoxBerry и от TopDelivery, к примеру.



    У каждой ТК своя цена и своя зависимость этой цены от веса.

    Как такие зависимости реализовать?



    Смотрю pickup.php. Там есть функция _checkStoreCost, которая служит для получения надбавки по стоимости только выбранного ПВЗ или всех ПВЗ в выбранном городе?



    Правильно ли будет в этой функции тогда обращаться по API в ТК и получать стоимость доставки?



    А если выбрать режим отображения и карты и ПВЗ, то надо как-то показывать эту самую разную стоимость для каждого ПВЗ, где (файлик) её получить, в какой момент?

    [/quote]


  1. Поиском, возможно её уже заменили на что то другое.


  2. Это функционал ядра, каждая служба должна быть оформлена отдельным шипингом. Ваши эксперименты тут не помогут.


  3. Изучите как работает самовывоз, это маленький модуль, там мало файлов.

[quote]Правильно ли будет в этой функции тогда обращаться по API в ТК и получать стоимость доставки?[/quote]



Других вариантов то нету :)


[quote]У каждой ТК своя цена и своя зависимость этой цены от веса.

Как такие зависимости реализовать?[/quote]



Отправить цену и вес, получить стоимость.


[quote]А если выбрать режим отображения и карты и ПВЗ, то надо как-то показывать эту самую разную стоимость для каждого ПВЗ, где (файлик) её получить, в какой момент? [/quote]



в модуле “Самовывоз” для каждого пункта есть стоимость, однако там не реализованы зависимости.



P.S. То что Вы хотите сделать, пытались сделать eDost, shipla, multiship и другие агрегаторы. Идеально ни у кого не получилось, несмотря на работу целых команд и немалых бюджетов. Нужно выбирать меньшее из зол. Вы хотите разработать своего агрегатора.

Даниил, спасибо за ответы.



Могли бы уточнить:

  1. как оформить каждую службу отдельным шипингом?
  2. [color=#282828][font=arial, verdana, tahoma, sans-serif][size=3]_checkStoreCost - [/size][/font][/color]работает только на выбранный ПВЗ? Как тогда получается стоимость доставки по всем ПВЗ?



    P.S. Не думал, что я хочу сделать, что-то космическое. Реализовать ведь можно все что угодно, вопрос архитектуры.



    У меня простое нормальное желание, как хозяина магазина, так и покупателя. Когда я выбираю самовывоз в своем городе, то хочу видеть все пункты списком (картой) с ценой и сроками доставки. Всё! Просто ведь? Не так ли.



    А не выбирать ТК, которой везти, мне фиолетово, как покупателю, какой ТК повезет магазин. и не хочется тыкать в несколько мест или звонить по тел. и узнавать стоимость доставки.



    Разве многого хочется? Вроде нет, это естественное желание.



    В сегодняшней ситуации придется либо усреднять стоимость доставки (а это чревато работой в минус на больших заказах, и не факт, что этот минус перебьется работой в плюс от маленьких заказов) , либо отказываться от нескольких ТК (а это ограничение и не удобство для покупателей), либо убрать весь этот функционал по расчету доставок. Вообщем - не красиво получится.
  1. Это есть в видео на примере EMS.
  2. В базе данных у всех ПВЗ есть поле “Надбавка к стоимости” которая прибавляется к той стоимости которая задана в настройках способа доставки. Я рассказываю об этом в видео.


[quote]P.S. Не думал, что я хочу сделать, что-то космическое. Реализовать ведь можно все что угодно, вопрос архитектуры.[/quote]



Вы до сих пор не поняли, что у каждой ТК своя архитектура и не так просто причесать всех к одному формату.



Даже у агрегаторов служб доставок не всегда получается это сделать. Был такой проект MultiShip , помните? Знаете? Они сделали такой функционал как вы хотите и то не по всем доставкам и не на 100% . Их потом Яндекс за миллион долларов купил :)

[quote name='dbazhenov' timestamp='1437129999' post='223346']

Вы до сих пор не поняли, что у каждой ТК своя архитектура и не так просто причесать всех к одному формату.

[/quote]



Что у них у всех своя архитектура разной степени кривизны, в этом я даже не сомневался. Я просто не понимаю, почему нельзя реализовать то, что я хочу, когда для это есть все данные. Да, я многого не понимаю в архитектуре CS-Cart, здесь именно дело в CS-cart. Например, не понимаю, как можно средствами cs-cart при отображении пунктов самовывоза после их получения в processResponse отобразить стоимость доставки? Подразумеваю, что нужно обратиться по API к соответствующей ТК либо в _checkStoreCost, либо непосредственно в processResponse. Буду это пробовать.


[quote name=‘dbazhenov’ timestamp=‘1437129999’ post=‘223346’]

Даже у агрегаторов служб доставок не всегда получается это сделать. Был такой проект MultiShip , помните? Знаете? Они сделали такой функционал как вы хотите и то не по всем доставкам и не на 100% . Их потом Яндекс за миллион долларов купил :)

[/quote]



Да, знаю. Ну я за миллион долларов не продамся конечно, но половину … 8) :grin: 8)



В общем, понял, что ничего не понял. Буду себе копаться дальше …

[quote name='densvi' timestamp='1437132205' post='223353']

Например, не понимаю, как можно средствами cs-cart при отображении пунктов самовывоза после их получения в processResponse отобразить стоимость доставки? Подразумеваю, что нужно обратиться по API к соответствующей ТК либо в _checkStoreCost, либо непосредственно в processResponse. Буду это пробовать.

[/quote]



В видео это есть.



нужно вернуть cost


<br /> $pickup_surcharge = $this->_checkStoreCost($stores);<br /> $return[&#39;cost&#39;] = $pickup_surcharge;



Ну и конечно есть ещё func.php где через хуки делаются циклы по корзине и добавляются данные о пунктах.




<br /> function fn_rus_pickup_calculate_cart_taxes_pre(&$cart, $cart_products, &$product_groups)<br /> {

Пробую как раз в этом месте вернуть cost. Видео помогают. Спасибо

Какая то функция в контроллере получает стоимость и передаёт её на отображение.



Сколько способов перехватить и изменить что то вы знаете?



Просто вы начали лениться и не хотите изучить процесс :)

Даниил, а почему вы решили, что я начал лениться? <Дальше шли 33 строки оправдания, но решил это удалить, т.к. не зачем это.> Но поверьте, что на лень у меня времени просто нет.



Я ковыряюсь, изучаю, может не так быстро как хотелось бы, но все же …

[quote name=‘densvi’ timestamp=‘1437135934’ post=‘223372’]

Даниил, а почему вы решили, что я начал лениться? <Дальше шли 33 строки оправдания, но решил это удалить, т.к. не зачем это.> Но поверьте, что на лень у меня времени просто нет.



Я ковыряюсь, изучаю, может не так быстро как хотелось бы, но все же …

[/quote]



Быстро не получится.



Просто наступит момент когда вы будете читать код как книгу, вы уже начинаете это делать, только пока читаете медленно. Потом будете читать быстрее, будете ориентироваться в главах, какие то запомните.



Мы с Вами уже в той стадии взаимодействия, когда я читаю вам книгу в слух, хотя вы уже умеете читать и можете делать это сами.



Дело в том, что раньше вы задавали вопросы которые требуют помощи, сейчас ваши вопросы уже не требуют помощи, а требуют просто одобрения. Одобряю :) Любой вариант :)



Недавно тоже самое я написал ещё одному человеку. Он тоже разобрался в системе и начал пилить модули и тоже стал задавать сложные вопросы, которые нужно решать самому. :)

И таки сделал то, что хотел! Скромное ура. Даниил, спасибо.



Где там Яндекс с его миллионом … 8) :grin:

[quote name=‘densvi’ timestamp=‘1437509810’ post=‘223823’]

И таки сделал то, что хотел! Скромное ура. Даниил, спасибо.



Где там Яндекс с его миллионом … 8) :grin:

[/quote]



Теперь всё будет по другому :)

[quote name=‘densvi’ timestamp=‘1437509810’ post=‘223823’]

И таки сделал то, что хотел! Скромное ура. Даниил, спасибо.



Где там Яндекс с его миллионом … 8) :grin:

[/quote]



теперь только МаркетПлейс =}