Здравствуйте! Во-первых, спасибо вам за интересную тему. Тарифные зоны — одна из тех вещей, которые мы планируем изучить и, возможно, переработать. Поэтому описанный вами сценарий очень полезен.
Сейчас тарифные зоны в CS-Cart и Multi-Vendor сейчас действительно работают, как вы описали. Они не наследуют ничего друг от друга, даже если одна из тарифных зон географически входит в другую. Проиллюстрировать это можно схемой:
Когда смотрите на эту схему, есть несколько важных нюансов:
-
Если бы тарифы всегда наследовались, то для возможности задать исключения (например, на схеме это Мексика, Аляска и вся Канада кроме Торонто) понадобился бы отдельный механизм. Сейчас принцип проще: “есть тариф для зоны — есть доставка туда; нет тарифа для зоны — нет доставки туда”.
-
CS-Cart не воспринимает тарифную зону с точки зрения географии. Принадлежность клиента к тарифной зоне определяется по адресу доставки. Чтобы отнести клиента к тарифной зоне, значения полей на чекауте должны совпасть с допустимыми значениями для тарифной зоны. То есть:
- CША = у поля A значение X
- Аляска = (у поля A значение X) и (у поля B значение Y)
Если выполняется только первое условие, то тарифная зона — США; если оба условия — то Аляска.
-
Все тарифные зоны создаёт владелец маркета, а продавцы через тарифы решают, куда доставляют, а куда — нет.
-
Способам доставки с расчётом в реальном времени тарифные зоны не нужны и почти не учитываются (кроме как для ваших надбавок к стоимости). Доступность, базовая стоимость и сроки доставки определяются сервером службы доставки после сравнения адресов отправителя и получателя.