Разделите заказ на отдельные заказы и рассчитайте доставку отдельно с помощью UPS и FedEx и разных адресов происхождения
Когда клиент приходит в наш магазин и отправляется проверять несколько товаров, мне нужно написать модуль для расчета доставки на основе нескольких факторов. На основе своих исследований я определил, что должно произойти следующее:
Во-первых, мне нужно разделить товары в корзине на разные заказы для расчета доставки. Я хочу, чтобы заказы были отсортированы по значению атрибута "поставщик". "Поставщик" - это атрибут, который мы добавили в систему и который применим для всех простые продукты. Так, скажем, в корзине есть розовая рубашка со значением "поставщик" "1", карандаш со значением "поставщик" "1" и голубая рубашка со значением "поставщик" "2". Все товары со значением "поставщик" "1" должны быть одним заказом, в то время как товар со значением "поставщик" "2" должен быть другим заказом. Я вижу , что этот другой вопрос отвечает на эту дилемму, но затем поднимает другой. Как мне это сделать, но отображать отдельные заказы как один заказ во время оформления заказа клиентам и только собирать оплату один раз?
Во-вторых, мне нужно рассчитать доставку с помощью стандартных функций доставки UPS и Fedex Magento, но с адресом отправления, который определяется номером значения "поставщик" (хранится в отдельной таблице базы данных). Любые предложения приветствуются!
Я использую фрагменты кода, чтобы начать с здесь и здесь.
У меня, вероятно, возникнет несколько вопросов, но первые из них выделены жирным шрифтом выше.
ОБНОВЛЕНИЕ Я решил, что было бы лучше переопределить основной модуль magento с несколькими отправками, чтобы сделать то, что я пытаюсь сделать. Пожалуйста, помогите мне найти, где и что использовать для управления функциями Magento с несколькими отправками, чтобы разделить товары заказа на отгрузки на основе атрибута "поставщик"! Я борюсь с этим.
1 answers
Здесь следует учитывать, что вам, возможно, потребуется лишь внести некоторые косметические изменения в шаблоны множественной доставки (template/checkout/multishipping/
), чтобы два заказа просто отображались для клиента как один заказ. Шаблоны shipping.phtml
и overview.phtml
разделяют два заказа, каждый с заголовком (Адрес 1 из 2 и т. Д.) И другой копией, чтобы показать, что это два заказа.
Вместо значения по умолчанию я мог бы предложить немного проявить творческий подход к этим шаблонам, чтобы два заказа были просто разделены, чтобы они просто отображаются в виде двух отдельных позиций.
Следующим шагом будет обработка различных источников доставки на основе атрибута поставщика. Возможно, это можно было бы сделать в Mage_Shipping_Model_Shipping. Вы можете видеть прямо вверху, где Magento берет адрес источника доставки из конфигурации, а затем далее в методе requestToShipment()
элементы адреса источника назначаются запросу на доставку (который, я полагаю, будет использоваться позже в зависимости от вызываемого метода доставки).
Что может быть, по крайней мере, это направление, в котором можно двигаться. Перечитывая ваш вопрос и ваше обновление, у меня складывается впечатление, что вы делаете это более сложным, чем это необходимо. Всегда помните, что, как правило, лучше позволить Magento делать то, что он хочет, и изменять только небольшие фрагменты для обработки ваших конкретных случаев. Большая часть того, что вам требуется, уже выполнена в core, поэтому кажется немного глупым переписывать компоненты с несколькими отправками, когда могут быть более простые варианты.