Добавить нового перевозчика в Magento для отслеживания заказов (изначальный CityLink)

Я хочу использовать в качестве поставщика услуг курьерскую службу UK Initial CityLink. Кто-нибудь знает что-нибудь по интеграции с их системами, типа расширения или плагина?

Если нет, то как мы можем добавить нового перевозчика в список, чтобы мы могли вручную добавить номер отслеживания в заказ. Что может использовать клиент — отслеживать свой заказ на сайте СитиЛинк.


person mattpark22    schedule 12.07.2011    source источник


Ответы (5)


Добавить нового активного/неактивного перевозчика в конфиг

<default>
        <carriers>
            <your_carrier>
                <active>0|1</active>
                <model>your_module/your_carrier</model>
                <title>Your Carrier</title>
                <name>your_carrier</name>
                <price>0.00</price>
            </your_carrier>
        </carriers>
</default>

Затем в вашей модели your_module/your_carrier, которая расширяет Mage_Shipping_Model_Carrier_Abstract, перепишите метод isTrackingAvailable, чтобы он возвращал true:

public function isTrackingAvailable()
{
    return true;
}
person mimarcel    schedule 13.10.2014

Я надеюсь, что вы находитесь в шоке - большинство операторов связи хорошо работают, чтобы получить ваш бизнес и иметь серверные системы, которые работают хорошо. CityLink находится в эре специальных приложений Visual Basic, работающих на ПК 486 с матричным принтером. Я утрирую, но вы поняли.

Мы написали собственный модуль CityLink для работы с их зональными скоростями, принимая во внимание объемные измерения и проверяя, чтобы мы не превышали максимальные размеры.

Для этого требуется, чтобы тарифы вводились вручную, и не печатались этикетки или что-то необычное — однако клиент получает точную цитату.

Я думаю, что они привели свои расценки в порядок, чтобы они были достаточно разумными, чтобы использовать стандартные табличные расценки Magento, вы также можете ввести номер отслеживания во время доставки, когда вы «создаете доставку».

person ʍǝɥʇɐɯ    schedule 12.07.2011
comment
Мэтью, ты уже выпустил модуль? Можно ли вместо этого использовать существующий модуль таблиц тарифов? - person clockworkgeek; 12.07.2011
comment
@clockworkgeek Для большинства приложений «табличные тарифы» дадут точную цитату с CityLink, поскольку зоны довольно просты — я думаю, вы могли бы даже указать «лондонскую зону перегрузки» на почтовом индексе, чтобы учесть эту дополнительную плату. Что касается моего модуля, то он выполняет объемные заказы для международных заказов и имеет тарифы на перевозку негабаритных грузов. Для этого требуются атрибуты измерения, которых нет у большинства людей. Если бы я был немного более напористым, я бы заставил его печатать этикетки и размещать информацию о коллекции с помощью CityLink, но в то время я не мог убедить их в достоинствах «модуля Magento». - person ʍǝɥʇɐɯ; 12.07.2011

Лучше всего установить программное обеспечение Parcelhub, чтобы интегрировать несколько операторов в вашу учетную запись Magento.

person Liz Goldberg    schedule 14.04.2015

если вы собираетесь изменить функцию getCarriers(), как предложил Рашид, обратите внимание, что эта функция повторяется в нескольких местах:

 \app\code\core\Mage\Adminhtml\Block\Sales\Order\Invoice\Create\Tracking.php 
 \app\code\core\Mage\Adminhtml\Block\Sales\Order\Shipment\Create\Tracking.php 
 \app\code\core\Mage\Adminhtml\Block\Sales\Order\Shipment\View\Tracking.php 
 \app\code\core\Mage\Sales\Model\Order\Shipment\Api.php 
person Mustapha George    schedule 14.02.2013
comment
Ни при каких обстоятельствах вы не должны редактировать файлы ядра. Это приведет к тому, что ваш сайт не сможет безопасно обновляться, помимо других проблем. - person Mike; 17.01.2017

Чтобы добавить нового перевозчика в список, просто отредактируйте файл tracking.php из каталога app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Create/.

найти код

public function getCarriers()
    {
        $carriers = array();
        $carrierInstances = Mage::getSingleton('shipping/config')->getAllCarriers(
            $this->getShipment()->getStoreId()
        );
        $carriers['custom'] = Mage::helper('sales')->__('CustomValue');

а затем скопируйте последнюю строку, т.е.

$carriers['custom'] = Mage::helper('sales')->__('CustomValue');  

Теперь замените «custom» своим «customvalue» и «CustomValue» своей собственной пользовательской меткой, например.

$carriers['firstflight'] = Mage::helper('sales')->__('First Flight Courier');

Надеюсь вам поможет!!

person Rashid    schedule 28.12.2012
comment
Редактирование основных файлов в Magento не рекомендуется. Вы должны внести изменения через переписывание класса или наблюдателей. Я не проверял, но переписывание Mage::getSingleton('shipping/config')->getAllCarriers должно работать. - person mimarcel; 13.10.2014