среда, 23 марта 2011 г.

Как добавить свой статус для заказа в Magento 1.4

Как вы знаете Magento по умолчанию предоставляет следующие статусы для заказа.

  1. Pending
  2. Processing
  3. Complete

Просмотрев форум Magento удалось найти решения с помощью хаков. Но это не наш путь ! :D
Я покажу вам как можно с помощью простого модуля добавить свои статусы для заказа.



Создание модуля

Для начала нам нужно создать простой модуль. (Если у вас уже есть модуль то можете сразу переходить к config.xml)
Для создания модуля перейдем в /magento/app/code/local. Назовем наш модуль CustomStatuses и создадим его структуру.
Нам понадобится следующая структура


Теперь нам нужно внести изменения в файл config.xml


<?xml version="1.0" encoding="UTF-8"?>
<config>
 <modules>
        <MyProject_CustomStatuses>
            <version>1.0.0</version>
        </MyProject_CustomStatuses>
    </modules>
 <global>
    <!-- Добавляем статусы -->
        <sales>
            <order>
                <statuses>
                     <accepted translate="label"><label>Accepted</label>       </accepted>                    
                     <packaging translate="label"><label>Packaging</label></packaging>
                </statuses>
       <!-- Настраиваем состояния заказа -->
                <states>
                    <processing translate="label">
                        <label>Processing</label>
                        <statuses>
                             <processing default="1"/>
                             <accepted default="2" />
                             <packaging default="3" />
                        </statuses>
                        <visible_on_front/>
                    </processing>
                </states>                  
            </order>            
        </sales> 
 </global>
</config>

Для установки создадим файл MyProject_CustomStatuses.xml в папке /magento/app/etc/modules и добаим в него следующее содержимое

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

Теперь наши статусы будут видны на детальной станице заказа, а так же доступны для поиска на странице списка заказов.

Happy coding!

2 комментария:

  1. Здравствуйте, скажите а можно ли провернуть все тоже самое в magento 1.6.0?

    ОтветитьУдалить
  2. Здравсвуйте. Вроде как с версии 1.5 добавление статусов вынесено в админку.
    System->Order Statuses

    ОтветитьУдалить