Magento Admin Sales › Заказ › URL товара

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

Magento строит URL-адрес, как в примере ниже, где число представляет собой идентификатор заказа.

/index.php/admin/sales_order/view/order_id/12394/

Однако идентификатор заказа не равен номеру заказа, поскольку в счет включаются кредитные счета и т. д.

Есть ли другой способ сделать ссылку на страницу заказа, используя номер заказа.

Спасибо!


person Remy Nagelmaeker    schedule 06.12.2012    source источник


Ответы (1)


В magento есть 2 типа номера заказа

  1. Идентификатор приращения заказа
  2. Идентификатор заказа (в основном используется внутренний в magento).

Администратор использует идентификатор заказа, а номер в вашем счете — это идентификатор приращения заказа.

Самый быстрый способ обойти это — создать собственный модуль, который ищет идентификатор заказа по идентификатору приращения заказа и перенаправляет на страницу просмотра с использованием идентификатора заказа.

В /app/etc/modules/MageIgniter_OrderRedirect.xml

<?xml version="1.0"?>
<config>
  <modules>
    <MageIgniter_OrderRedirect>
      <active>true</active>
      <codePool>local</codePool>
    </MageIgniter_OrderRedirect>
  </modules>
</config>

В /app/code/local/MageIgniter/OrderRedirect/controllers/RedirectOrderController.php

<?php

class MageIgniter_OrderRedirect_RedirectOrderController extends Mage_Core_Controller_Front_Action
{
    public function viewAction(){

       $increment_id = Mage::app()->getRequest()->getParam('id');
       $order = Mage::getModel('sales/order')->loadByIncrementId($increment_id);
       $order_id = $order->getId();

       Mage::app()->getResponse()->setRedirect(Mage::helper('adminhtml')->getUrl("adminhtml/sales_order/view", array('order_id'=> $order_id)));
    }
 }

в /app/code/local/MageIgniter/OrderRedirect/etc/config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <MageIgniter_OrderRedirect>
      <version>0.1.0</version>
    </MageIgniter_OrderRedirect>
  </modules>
  <frontend>
    <routers>
        <orderredirect>
            <use>standard</use>
            <args>
                <module>MageIgniter_OrderRedirect</module>
                <frontName>orderredirect</frontName>
            </args>
        </orderredirect>
    </routers>
 </frontend>   
  <global>
    <helpers>
      <orderredirect>
        <class>MageIgniter_OrderRedirect_Helper</class>
      </orderredirect>
    </helpers>
  </global>
</config> 

URL

www.site.com/orderredirect/redirectOrder/view/id/101512486

person Renon Stewart    schedule 06.12.2012
comment
аргументы/модули, а не аргументы/модуль. - person benmarks; 07.12.2012
comment
Большое спасибо за подробный ответ, но как бы я использовал перенаправление заказа на практике, есть ли определенный URL-адрес, который мне нужно использовать? - person Remy Nagelmaeker; 07.12.2012
comment
site.com/index.php/admin/redirectorder/view/id/12394/ (где 12394 — идентификатор приращения заказа, номер заказа указан в счете-фактуре) - person Renon Stewart; 07.12.2012
comment
Привет Р.С.! Я получаю 404, модуль виден в конфигурации системы › расширенной. Чего я пытаюсь добиться, так это иметь URL-адрес, который переписывает идентификатор заказа в идентификатор приращения заказа и перенаправляет на /index.php/admin/sales_order/view/order_id/12394/, где 12394 - это идентификатор приращения заказа. - person Remy Nagelmaeker; 11.12.2012
comment
Я просто тестирую и обновляю приведенный выше код, и теперь он работает, я внес много изменений, поэтому лучше всего, если вы просто удалите предыдущий и начнете заново (должны быть контроллеры, а не папка контроллера) - person Renon Stewart; 11.12.2012
comment
Спасибо! Отлично работает, можно ли указать URL-адрес перенаправления после /admin, а не во внешнем интерфейсе? - person Remy Nagelmaeker; 14.12.2012
comment
Я не думаю, что это будет работать во всех случаях (например, если у вас есть «ключ URL-адреса» для вашего URL-адреса администратора). То, как я делал изначально в моем предыдущем примере - person Renon Stewart; 14.12.2012
comment
Привет Р.С. Мне нравится использовать расширение для перенаправления заказов. Я думаю разместить поле ввода на панели инструментов, которое таким же образом перенаправляет на страницу просмотра заказа. В нашем счете есть штрих-код, и это позволит использовать сканер штрих-кода для перехода на страницу заказа. Я не знаю, как использовать вашу функцию, которая пишется как маршрутизатор, для работы с вводом поля ввода. Спасибо большое за вашу помощь! - person Remy Nagelmaeker; 29.12.2012
comment
Взгляните @ stackoverflow.com/questions/9218970/ .. тогда вы можете использовать JS onchange для перенаправления - person Renon Stewart; 29.12.2012