Magento - настройка носителя для каждого продукта - PullRequest
2 голосов
/ 28 июня 2011

Я работаю в магазине, в котором есть два типа продуктов: скоропортящиеся продукты и товары общего назначения.Продукты должны всегда доставляться в течение ночи через FedEx, а другие товары всегда должны отправляться через USPS.Если кто-то заказывает товары из обеих категорий, они должны быть отправлены отдельно.

Знаете ли вы о существующем модуле или настройках конфигурации, которые бы позволили это сделать?

Если нет, то похоже, что другой модуль - это пользовательский модуль.В этом случае, что является лучшим подходом?Я думаю, что это будет разделять заказ на многоадресную доставку, используя один и тот же адрес для обоих, но с разными способами доставки.К сожалению, я не уверен, как это сделать программно, поэтому любые учебники / примеры / ресурсы будут с благодарностью.

Ответы [ 2 ]

3 голосов
/ 29 июня 2011

Вероятно, sanest способ справиться с этим - создать два заказа для каждого типа продукта, каждый из которых будет отправляться по одному и тому же адресу.Это также IMO имеет больше смысла с точки зрения отслеживания магазинов, так как вы можете обращаться с каждым независимо друг от друга.

Чтобы вы выбрали правильный путь (поскольку Magento особенно загадочен в этой части себя), вы должны прочитать Inchoo программно создает заказ в Magento пост и от того же автора Программирует создание клиента и заказ в Magento с полным оформлением одной страницы оформления заказа .

В основном, как я вижу это происходитis:

  1. Получить заказ клиента
  2. Выполнить прохождение по каждому продукту внутри заказа и разделить его на два массива для каждого типа продукта
  3. Создать отдельный заказ длякаждый тип продукта и использовать разные способы доставки для каждого.

Возможно, вам придется расширить некоторые контроллеры ИЛИ сделать это нестандартным способом и использовать для этого вспомогательные функции, твердые детали будутинтеграция модулей оплаты / доставки в ваш процесс заказа.Пройдя этот путь, вы создадите полный процесс оформления заказа, так как одностраничный заказ, который предоставляет Magento, не будет работать и доставит слишком много хлопот тем, чтобы приступить к работе из-за того, как он использует AJAX.

Еще одна альтернативачтобы подключиться к событиям предварительного создания заказов Magento и создать там заказы, используя уже определенные данные заказа, разделить их на два заказа, но это то, что я никогда не слышал и не видел реализованным в данный момент, поэтому вам придется делать это "с завязанными глазами"так сказать.

Более простым подходом было бы использование настраиваемого поля, которое определяет способ доставки вашего продукта, таким образом, вы просто добавляете это и не заботитесь о пользовательских заказах.Вы просто реагируете на это, однако отслеживание станет в основном невозможным ИМО.

0 голосов
/ 01 июля 2011

Отмените модуль бесплатной доставки.

Вы можете установить правило продаж, которое применяется к определенным продуктам и делает их «бесплатной доставкой», оставляя другие продукты выбранному вами поставщику основной доставки.

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

...