Skip to content

Commit

Permalink
feat: Log an error when an order fails validtion and failOnValidation…
Browse files Browse the repository at this point in the history
… is false
  • Loading branch information
johnnynotsolucky committed Nov 13, 2024
1 parent 1fe0325 commit 363a5fd
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/services/Xml.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace fostercommerce\shipstationconnect\services;

use Craft;
use craft\base\Component;
use craft\commerce\elements\Order as CommerceOrder;
use DOMDocument;
Expand Down Expand Up @@ -52,16 +53,18 @@ public function generateXml(array $commerceOrders, int $pageCount): string

$orders = Orders::fromCollection($orders, $pageCount);

if ($failed->isNotEmpty() && (Plugin::getInstance()?->settings->failOnValidation ?? true)) {
// TODO store error logs somewhere

if ($failed->isNotEmpty()) {
/** @var Order $firstFailedOrder */
$firstFailedOrder = $failed->first();
$firstErrrors = $firstFailedOrder->getFirstErrors();
$attribute = key($firstErrrors);
$value = reset($firstErrrors);

throw new \RuntimeException("Invalid Order ID {$firstFailedOrder->getOrderId()}: {$attribute} - {$value}");
if (Plugin::getInstance()?->settings->failOnValidation ?? false) {
throw new \RuntimeException("Invalid Order ID {$firstFailedOrder->getOrderId()}: {$attribute} - {$value}");
}

Craft::error("Invalid Order ID {$firstFailedOrder->getOrderId()}: {$attribute} - {$value}", 'shipstationconnect');
}

$serializer = SerializerBuilder::create()->build();
Expand Down

0 comments on commit 363a5fd

Please sign in to comment.