From d55be00b75627e76bee1c5509b9667953ba6cefe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Apr 2026 07:57:27 +0000 Subject: [PATCH 1/4] Initial plan From 0be6d76d375648d5665f69e75bfc7b26708c98c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Apr 2026 08:25:53 +0000 Subject: [PATCH 2/4] Fix shipping_method: make optional for Amazon, add free text input, filter null values (PCMT-1474) Agent-Logs-Url: https://github.com/lengow/plugin-prestashop/sessions/394f4513-0fb6-4d73-989d-53395654c8d8 Co-authored-by: michaelmaslengow <147600733+michaelmaslengow@users.noreply.github.com> --- classes/controllers/LengowOrderController.php | 8 +++-- classes/models/LengowMarketplace.php | 11 ++++++- .../templates/hook/order/admin_order_side.tpl | 31 +++++++++++++++++-- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/classes/controllers/LengowOrderController.php b/classes/controllers/LengowOrderController.php index b491178f..6ddf485e 100755 --- a/classes/controllers/LengowOrderController.php +++ b/classes/controllers/LengowOrderController.php @@ -152,16 +152,18 @@ public function postProcess() break; case 'save_shipping_method': $idOrder = (int) Tools::getValue('id_order'); - $shippingMethod = Tools::getValue('method'); + $shippingMethod = Tools::getValue('method', null); $response = ['success' => false, 'message' => '']; - if (!$idOrder || !$shippingMethod) { + if (!$idOrder) { $response['message'] = 'Missing parameters'; } else { try { + // Allow empty string to clear the shipping method (saves NULL in DB) + $methodValue = ($shippingMethod !== null && $shippingMethod !== '') ? pSQL($shippingMethod) : null; $result = Db::getInstance()->update( 'lengow_orders', - ['method' => pSQL($shippingMethod)], + ['method' => $methodValue], 'id_order = ' . $idOrder ); diff --git a/classes/models/LengowMarketplace.php b/classes/models/LengowMarketplace.php index 797232a1..753654e2 100644 --- a/classes/models/LengowMarketplace.php +++ b/classes/models/LengowMarketplace.php @@ -505,7 +505,16 @@ protected function getAllParams($action, $lengowOrder, $marketplaceArguments) $params[$arg] = $carrierName; break; case LengowAction::ARG_SHIPPING_METHOD: - $params[$arg] = $shippingMethod; + // Only send shipping_method when it is a required argument, + // or when it is optional but has a non-empty value set by the merchant. + // This prevents sending Amazon-imported default values (e.g. "Standard", "SecondDay") + // when the merchant has not explicitly chosen a shipping method. + $isRequired = isset($actions['args']) && in_array(LengowAction::ARG_SHIPPING_METHOD, $actions['args'], true); + if ($isRequired) { + $params[$arg] = $shippingMethod ?? ''; + } elseif (!empty($shippingMethod)) { + $params[$arg] = $shippingMethod; + } break; case LengowAction::ARG_RETURN_CARRIER: $idReturnCarrier = LengowOrderDetail::getOrderReturnCarrier($lengowOrder->id); diff --git a/views/templates/hook/order/admin_order_side.tpl b/views/templates/hook/order/admin_order_side.tpl index 6eadd4d2..e1f231eb 100644 --- a/views/templates/hook/order/admin_order_side.tpl +++ b/views/templates/hook/order/admin_order_side.tpl @@ -23,16 +23,27 @@