Как я могу изменить жизненный цикл заказа в Magento? - PullRequest
2 голосов
/ 20 июня 2011

Я новичок в magento, и, насколько я вижу, состояния заказа помечены как "ожидающие", "обработка" и "завершено". Когда заказчик выписывается, состояние становится «ожидающим», а при выставлении счета-фактуры или отгрузки состояние «обрабатывается», а когда оба выполняются, состояние становится «завершенным». Пожалуйста, поправьте меня, если я ошибаюсь.

Итак, я хотел бы ввести новые состояния, но не состояния , мне удалось ввести новые состояния, когда он находится в одном из указанных выше состояний, или я мог изменить метки существующих состояний но я хочу узнать, как magento управляет состояниями и как их изменять / добавлять новые состояния. Я могу изменить основной код, если требуется.

Итак, мой вопрос: как я могу ввести новые состояния (не статусы) или как изменить / изменить жизненный цикл заказа?

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

PS: я сейчас использую v1.5.1.0.

1 Ответ

2 голосов
/ 21 июня 2011

Так что в вашем config.xml у вас будет что-то вроде ...

<config>
    <global>
        <sales>
            <order>
                <states>
                    <my_state translate="label">
                        <label>My State</label>
                        <statuses>
                            <pending default="1"/>
                        </statuses>
                        <visible_on_front/>
                    </my_state>
                </states>
            </order>
        </sales>
    </global>
</config>

Затем, когда вы захотите изменить состояние, вы можете переопределить ядро ​​или добавить наблюдателя для изменения состояния ( пожалуйста, не редактируйте ядро ​​напрямую! ) с чем-то вроде (при условии, что $order - это действительный заказ, уже загруженный и готовый к отправке) ....

$order->setState("my_state");
$order->save();

, который выполнитстатус по умолчанию для государства.если вы хотите установить статус, укажите это во втором параметре, так что ..

$order->setState("my_state","complete");
$order->save();

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...