我目前正在为PrestaShop开发支付模块,并且正在努力解决各种问题。 ID为3的状态为“正在处理”,看来我必须像这样硬编码:
$order = new Order($orderId);
$order->setCurrentState(3);
问题是...这些ID可以不同吗?就像在不同的prestashop安装中,或在经过很少重新配置后,ID 3的状态可以完全不同。有人知道在prestashop中是否定义了任何常量,通过该常量我可以获取“正在处理”状态的ID?
干杯!
答案 0 :(得分:2)
Processing in progress
是默认的订单状态,其ID不会更改,除非直接在数据库中更改它(我不知道为什么会这么做)。
但是,您可以检索配置值PS_OS_PREPARATION
而不是对数字进行硬编码以获得该订单状态ID。
$order = new Order($orderId);
$order->setCurrentState((int)Configuration::get('PS_OS_PREPARATION'));
通过查看configuration
表并找到带有name
前缀的带有PS_OS_
列的行,可以在配置中找到其他默认订单状态ID。