Logo BrocksiNet

BrocksiNet

Try to clean the web

Magento2 $order->save() deprecated

Im Magento2 Core findet man noch einige solcher Code-Stellen:

<?php
$order = $clonedOrder;
$order->setId(
    null
)->setCustomerEmail(
    'customer@example.com'
)->setBillingAddress(
    $billingAddress
)->setShippingAddress(
    $shippingAddress
)->setPayment(
    $payment
);
$order->save();

Obwohl die save function von src/vendor/magento/framework/Model/AbstractModel.php deprecated ist (siehe hier) wird sie noch viel verwendet.

Da stellt sich natürlich die Frage wie das nun im Magento2 in Zukunft gemacht werden soll?

Vielleicht eher so?

<?php
$order = $this->orderRepository->get($order->getId());
$order->setOrderExported(1);
$returnSimpleXmlObject = $this->readResultOrderXml($result);
$order->addStatusHistoryComment($this->createMessageString($returnSimpleXmlObject));
$this->orderRepository->save($order);

Anstelle von $oder->save(); sollte sich also jeder das \Magento\Sales\Api\OrderRepositoryInterface anschauen und wie dieses in Magento2 verwendet wird. Das Magento Core Team arbeitet daran, dass nur noch das OrderRepositoryInterface in Zukunft Verwendung findet.

Siehe auch Magento2 Docu: Persistent entities

Released - 14.07.0207

Comments


About the author

Bild Bjoern
Björn MeyerSoftware Engineer
Björn is interested in the details of web technologies. He started with Joomla, Drupal, Typo3, vBulletin, Fireworks and Photoshop. Today his focus is on PHP for example with Magento 2, Shopware 6 and Symfony. He also likes JavaScript with Angular, React, VueJs and TypeScript. In his free time, he seeks constant balance with swimming, running and yoga.