Plugin Directory

Changeset 3366263


Ignore:
Timestamp:
09/23/2025 07:28:37 AM (6 months ago)
Author:
postiwp
Message:

Update to version 3.5.0 from GitHub

Location:
posti-warehouse
Files:
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • posti-warehouse/tags/3.5.0/README.md

    r3359034 r3366263  
    9898
    9999## Version history
     100- 3.5.0:
     101    - Changed ordering to use SKU only instead of SKU + EAN.
     102    - Changed ordering to ensure setting order failed status on unexpected error.
    100103- 3.4.0:
    101104    - Added HS tariff number, Country of origin fields to Posti tab in Product data.
  • posti-warehouse/tags/3.5.0/classes/class-api.php

    r3359034 r3366263  
    1212    private $test = false;
    1313    private $logger;
    14     private $last_status = false;
    1514    private $token_option = 'posti_wh_api_auth';
    16     private $user_agent = 'woo-wh-client/3.4.0';
     15    private $user_agent = 'woo-wh-client/3.5.0';
    1716
    1817    public function __construct(Posti_Warehouse_Logger $logger, array &$options) {
     
    4039    public function getUserAgent() {
    4140        return $this->user_agent;
    42     }
    43    
    44     public function getLastStatus() {
    45         return $this->last_status;
    4641    }
    4742
     
    9792        $response_body = wp_remote_retrieve_body($response);
    9893        $http_status = wp_remote_retrieve_response_code($response);
    99         $this->last_status = $http_status;
    10094
    10195        $env = $this->test ? 'TEST ': '';
  • posti-warehouse/tags/3.5.0/classes/class-order.php

    r3239423 r3366263  
    101101    public function getOrder( $order) {
    102102        $posti_order_id = $this->get_order_external_id_field($order);
    103         $this->logger->log('info', print_r($order, true));
    104103        if ($posti_order_id) {
    105104            return $this->api->getOrder($posti_order_id);
     
    128127        }
    129128
    130         $order_number = (string) $order->get_order_number();
     129        $added_order_id = '';
    131130        $existing_order_id = $this->get_order_external_id_field($order);
    132         if (!empty($existing_order_id)) {
    133             $existing_order = $this->api->getOrder($existing_order_id);
    134             if ($existing_order) {
    135                 $status = isset($existing_order['status']) && isset($existing_order['status']['value']) ? $existing_order['status']['value'] : '';
    136                 if ('Cancelled' !== $status && 'Delivered' !== $status) {
    137                     return [ 'error' => 'ERROR: Already ordered.' ];
    138                 }
    139             }
    140         }
    141 
    142         $external_id = empty($existing_order_id) ? $order_number : $existing_order_id;
    143         $data = null;
    144131        try {
     132            $order_number = (string) $order->get_order_number();
     133            if (!empty($existing_order_id)) {
     134                $existing_order = $this->api->getOrder($existing_order_id);
     135                if ($existing_order) {
     136                    $status = isset($existing_order['status']) && isset($existing_order['status']['value']) ? $existing_order['status']['value'] : '';
     137                    if ('Cancelled' !== $status && 'Delivered' !== $status) {
     138                        return [ 'error' => 'ERROR: Already ordered.' ];
     139                    }
     140                }
     141            }
     142   
     143            $external_id = empty($existing_order_id) ? $order_number : $existing_order_id;
     144            $data = null;
     145
    145146            $preferences = ['autoSubmit' => ($order_status !== 'on-hold')];
    146147            $data = $this->prepare_posti_order($external_id, $order, $order_services, $preferences);
    147148
     149            if (empty($existing_order_id)) {
     150                $result = $this->api->addOrder($data);
     151            }
     152            else {
     153                $result = $this->api->reopenOrder($existing_order_id, $data);
     154            }
     155
     156            if (false === $result) {
     157                for ($i = 0; $i < 3; $i++) {
     158                    sleep(1);
     159                    $result = $this->api->addOrder($data);
     160                    if (false === $result) {
     161                        break;
     162                    }
     163                }
     164            }
     165
     166            $added_order_id = isset($result['externalId']) ? $result['externalId'] : '';
     167
    148168        } catch (\Exception $e) {
    149169            $this->logger->log('error', $e->getMessage());
     170            $order->update_status('failed', Posti_Warehouse_Text::order_failed(), true);
    150171            return [ 'error' => $e->getMessage() ];
    151172        }
    152173
    153         if (empty($existing_order_id)) {
    154             $result = $this->api->addOrder($data);
    155         }
    156         else {
    157             $result = $this->api->reopenOrder($existing_order_id, $data);
    158         }
    159 
    160         $status = $this->api->getLastStatus();
    161         if (502 == $status || 503 == $status) {
    162             for ($i = 0; $i < 3; $i++) {
    163                 sleep(1);
    164                 $result = $this->api->addOrder($data);
    165                 $status = $this->api->getLastStatus();
    166                 if (200 == $status) {
    167                     break;
    168                 }
    169             }
    170         }
    171 
    172         if ($status >= 200 && $status < 300) {
    173             $order->update_meta_data('_posti_id', $order_number);
    174         } else {
     174        if (empty($added_order_id)) {
    175175            $order->update_status('failed', Posti_Warehouse_Text::order_failed(), true);
    176         }
     176            return [ 'error' => Posti_Warehouse_Text::error_order_not_placed() ];
     177        }
     178
     179        $order->update_meta_data('_posti_id', $order_number);
    177180        $order->save();
    178 
    179         if (false === $result) {
    180             return [ 'error' => Posti_Warehouse_Text::error_order_not_placed() ];
    181         }
    182 
    183181        $this->trigger_sync_order($order->get_id(), $existing_order_id);
    184182
     
    569567               
    570568                $external_id = $_product->get_meta('_posti_id', true);
    571                 $ean = $_product->get_meta('_ean', true);
    572569                $order_items[] = [
    573570                    'externalId' => (string) $item_counter,
    574571                    'externalProductId' => $external_id,
    575                     'productEANCode' => $ean,
    576572                    'productUnitOfMeasure' => 'KPL',
    577573                    'productDescription' => $item['name'],
     
    634630
    635631        if (isset($pickup_point) && $pickup_point) {
    636             $order['pickupPoint'] = $this->getPickupPoint($pickup_point);
     632            $order['pickupPoint'] = $this->getPickupPoint($pickup_point);
    637633        }
    638634
     
    716712    private static function getDeliveryAddress($order, $phone, $email) {
    717713        return array(
    718             'name' => $order->get_shipping_first_name() . ' ' . $order->get_shipping_last_name(),
     714            'name' => $order->get_shipping_first_name() . ' ' . $order->get_shipping_last_name(),
    719715            'streetAddress' => $order->get_shipping_address_1(),
    720716            'postalCode' => $order->get_shipping_postcode(),
     
    727723
    728724    private static function getPickupPoint($pickup_point) {
    729         return array(
    730             'externalId' => isset($pickup_point['externalId']) ? $pickup_point['externalId'] : null,
    731             'name' => isset($pickup_point['name']) ? $pickup_point['name'] : null,
    732             'streetAddress' => isset($pickup_point['streetAddress']) ? $pickup_point['streetAddress'] : null,
    733             'postalCode' => isset($pickup_point['postalCode']) ? $pickup_point['postalCode'] : null,
    734             'postOffice' => isset($pickup_point['postOffice']) ? $pickup_point['postOffice'] : null,
    735             'country' => isset($pickup_point['country']) ? $pickup_point['country'] : null
    736         );
     725        return array(
     726            'externalId' => isset($pickup_point['externalId']) ? $pickup_point['externalId'] : null,
     727            'name' => isset($pickup_point['name']) ? $pickup_point['name'] : null,
     728            'streetAddress' => isset($pickup_point['streetAddress']) ? $pickup_point['streetAddress'] : null,
     729            'postalCode' => isset($pickup_point['postalCode']) ? $pickup_point['postalCode'] : null,
     730            'postOffice' => isset($pickup_point['postOffice']) ? $pickup_point['postOffice'] : null,
     731            'country' => isset($pickup_point['country']) ? $pickup_point['country'] : null
     732        );
    737733    }
    738734
  • posti-warehouse/tags/3.5.0/posti-warehouse.php

    r3359034 r3366263  
    33/**
    44 * Plugin Name: Posti Warehouse
    5  * Version: 3.4.0
     5 * Version: 3.5.0
    66 * Description: Provides integration to Posti warehouse and dropshipping services.
    77 * Author: Posti
  • posti-warehouse/tags/3.5.0/readme.txt

    r3359034 r3366263  
    33Tags: woocommerce, warehouse, posti
    44Requires at least: 5.0
    5 Tested up to: 6.7
     5Tested up to: 6.8
    66Requires PHP: 7.1
    7 Stable tag: 3.4.0
     7Stable tag: 3.5.0
    88License: GPLv3 or later
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
  • posti-warehouse/trunk/README.md

    r3359034 r3366263  
    9898
    9999## Version history
     100- 3.5.0:
     101    - Changed ordering to use SKU only instead of SKU + EAN.
     102    - Changed ordering to ensure setting order failed status on unexpected error.
    100103- 3.4.0:
    101104    - Added HS tariff number, Country of origin fields to Posti tab in Product data.
  • posti-warehouse/trunk/classes/class-api.php

    r3359034 r3366263  
    1212    private $test = false;
    1313    private $logger;
    14     private $last_status = false;
    1514    private $token_option = 'posti_wh_api_auth';
    16     private $user_agent = 'woo-wh-client/3.4.0';
     15    private $user_agent = 'woo-wh-client/3.5.0';
    1716
    1817    public function __construct(Posti_Warehouse_Logger $logger, array &$options) {
     
    4039    public function getUserAgent() {
    4140        return $this->user_agent;
    42     }
    43    
    44     public function getLastStatus() {
    45         return $this->last_status;
    4641    }
    4742
     
    9792        $response_body = wp_remote_retrieve_body($response);
    9893        $http_status = wp_remote_retrieve_response_code($response);
    99         $this->last_status = $http_status;
    10094
    10195        $env = $this->test ? 'TEST ': '';
  • posti-warehouse/trunk/classes/class-order.php

    r3239423 r3366263  
    101101    public function getOrder( $order) {
    102102        $posti_order_id = $this->get_order_external_id_field($order);
    103         $this->logger->log('info', print_r($order, true));
    104103        if ($posti_order_id) {
    105104            return $this->api->getOrder($posti_order_id);
     
    128127        }
    129128
    130         $order_number = (string) $order->get_order_number();
     129        $added_order_id = '';
    131130        $existing_order_id = $this->get_order_external_id_field($order);
    132         if (!empty($existing_order_id)) {
    133             $existing_order = $this->api->getOrder($existing_order_id);
    134             if ($existing_order) {
    135                 $status = isset($existing_order['status']) && isset($existing_order['status']['value']) ? $existing_order['status']['value'] : '';
    136                 if ('Cancelled' !== $status && 'Delivered' !== $status) {
    137                     return [ 'error' => 'ERROR: Already ordered.' ];
    138                 }
    139             }
    140         }
    141 
    142         $external_id = empty($existing_order_id) ? $order_number : $existing_order_id;
    143         $data = null;
    144131        try {
     132            $order_number = (string) $order->get_order_number();
     133            if (!empty($existing_order_id)) {
     134                $existing_order = $this->api->getOrder($existing_order_id);
     135                if ($existing_order) {
     136                    $status = isset($existing_order['status']) && isset($existing_order['status']['value']) ? $existing_order['status']['value'] : '';
     137                    if ('Cancelled' !== $status && 'Delivered' !== $status) {
     138                        return [ 'error' => 'ERROR: Already ordered.' ];
     139                    }
     140                }
     141            }
     142   
     143            $external_id = empty($existing_order_id) ? $order_number : $existing_order_id;
     144            $data = null;
     145
    145146            $preferences = ['autoSubmit' => ($order_status !== 'on-hold')];
    146147            $data = $this->prepare_posti_order($external_id, $order, $order_services, $preferences);
    147148
     149            if (empty($existing_order_id)) {
     150                $result = $this->api->addOrder($data);
     151            }
     152            else {
     153                $result = $this->api->reopenOrder($existing_order_id, $data);
     154            }
     155
     156            if (false === $result) {
     157                for ($i = 0; $i < 3; $i++) {
     158                    sleep(1);
     159                    $result = $this->api->addOrder($data);
     160                    if (false === $result) {
     161                        break;
     162                    }
     163                }
     164            }
     165
     166            $added_order_id = isset($result['externalId']) ? $result['externalId'] : '';
     167
    148168        } catch (\Exception $e) {
    149169            $this->logger->log('error', $e->getMessage());
     170            $order->update_status('failed', Posti_Warehouse_Text::order_failed(), true);
    150171            return [ 'error' => $e->getMessage() ];
    151172        }
    152173
    153         if (empty($existing_order_id)) {
    154             $result = $this->api->addOrder($data);
    155         }
    156         else {
    157             $result = $this->api->reopenOrder($existing_order_id, $data);
    158         }
    159 
    160         $status = $this->api->getLastStatus();
    161         if (502 == $status || 503 == $status) {
    162             for ($i = 0; $i < 3; $i++) {
    163                 sleep(1);
    164                 $result = $this->api->addOrder($data);
    165                 $status = $this->api->getLastStatus();
    166                 if (200 == $status) {
    167                     break;
    168                 }
    169             }
    170         }
    171 
    172         if ($status >= 200 && $status < 300) {
    173             $order->update_meta_data('_posti_id', $order_number);
    174         } else {
     174        if (empty($added_order_id)) {
    175175            $order->update_status('failed', Posti_Warehouse_Text::order_failed(), true);
    176         }
     176            return [ 'error' => Posti_Warehouse_Text::error_order_not_placed() ];
     177        }
     178
     179        $order->update_meta_data('_posti_id', $order_number);
    177180        $order->save();
    178 
    179         if (false === $result) {
    180             return [ 'error' => Posti_Warehouse_Text::error_order_not_placed() ];
    181         }
    182 
    183181        $this->trigger_sync_order($order->get_id(), $existing_order_id);
    184182
     
    569567               
    570568                $external_id = $_product->get_meta('_posti_id', true);
    571                 $ean = $_product->get_meta('_ean', true);
    572569                $order_items[] = [
    573570                    'externalId' => (string) $item_counter,
    574571                    'externalProductId' => $external_id,
    575                     'productEANCode' => $ean,
    576572                    'productUnitOfMeasure' => 'KPL',
    577573                    'productDescription' => $item['name'],
     
    634630
    635631        if (isset($pickup_point) && $pickup_point) {
    636             $order['pickupPoint'] = $this->getPickupPoint($pickup_point);
     632            $order['pickupPoint'] = $this->getPickupPoint($pickup_point);
    637633        }
    638634
     
    716712    private static function getDeliveryAddress($order, $phone, $email) {
    717713        return array(
    718             'name' => $order->get_shipping_first_name() . ' ' . $order->get_shipping_last_name(),
     714            'name' => $order->get_shipping_first_name() . ' ' . $order->get_shipping_last_name(),
    719715            'streetAddress' => $order->get_shipping_address_1(),
    720716            'postalCode' => $order->get_shipping_postcode(),
     
    727723
    728724    private static function getPickupPoint($pickup_point) {
    729         return array(
    730             'externalId' => isset($pickup_point['externalId']) ? $pickup_point['externalId'] : null,
    731             'name' => isset($pickup_point['name']) ? $pickup_point['name'] : null,
    732             'streetAddress' => isset($pickup_point['streetAddress']) ? $pickup_point['streetAddress'] : null,
    733             'postalCode' => isset($pickup_point['postalCode']) ? $pickup_point['postalCode'] : null,
    734             'postOffice' => isset($pickup_point['postOffice']) ? $pickup_point['postOffice'] : null,
    735             'country' => isset($pickup_point['country']) ? $pickup_point['country'] : null
    736         );
     725        return array(
     726            'externalId' => isset($pickup_point['externalId']) ? $pickup_point['externalId'] : null,
     727            'name' => isset($pickup_point['name']) ? $pickup_point['name'] : null,
     728            'streetAddress' => isset($pickup_point['streetAddress']) ? $pickup_point['streetAddress'] : null,
     729            'postalCode' => isset($pickup_point['postalCode']) ? $pickup_point['postalCode'] : null,
     730            'postOffice' => isset($pickup_point['postOffice']) ? $pickup_point['postOffice'] : null,
     731            'country' => isset($pickup_point['country']) ? $pickup_point['country'] : null
     732        );
    737733    }
    738734
  • posti-warehouse/trunk/posti-warehouse.php

    r3359034 r3366263  
    33/**
    44 * Plugin Name: Posti Warehouse
    5  * Version: 3.4.0
     5 * Version: 3.5.0
    66 * Description: Provides integration to Posti warehouse and dropshipping services.
    77 * Author: Posti
  • posti-warehouse/trunk/readme.txt

    r3359034 r3366263  
    33Tags: woocommerce, warehouse, posti
    44Requires at least: 5.0
    5 Tested up to: 6.7
     5Tested up to: 6.8
    66Requires PHP: 7.1
    7 Stable tag: 3.4.0
     7Stable tag: 3.5.0
    88License: GPLv3 or later
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
Note: See TracChangeset for help on using the changeset viewer.