Changeset 2965886
- Timestamp:
- 09/12/2023 12:38:55 PM (2 years ago)
- Location:
- shopping-feed
- Files:
-
- 2 added
- 34 edited
- 1 copied
-
tags/6.3.0 (copied) (copied from shopping-feed/trunk)
-
tags/6.3.0/readme.txt (modified) (3 diffs)
-
tags/6.3.0/shoppingfeed.php (modified) (2 diffs)
-
tags/6.3.0/src/Addons/Inventory/Inventory.php (modified) (2 diffs)
-
tags/6.3.0/src/Addons/Inventory/Marketplaces/Amazon.php (modified) (2 diffs)
-
tags/6.3.0/src/Addons/Inventory/Marketplaces/Cdiscount.php (modified) (2 diffs)
-
tags/6.3.0/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php (added)
-
tags/6.3.0/src/Addons/Inventory/Marketplaces/MonoMono.php (modified) (2 diffs)
-
tags/6.3.0/src/Addons/Marketplace.php (modified) (8 diffs)
-
tags/6.3.0/src/Admin/Options.php (modified) (4 diffs)
-
tags/6.3.0/src/Cli/FeedGeneration.php (modified) (1 diff)
-
tags/6.3.0/src/Orders/Order/Status.php (modified) (3 diffs)
-
tags/6.3.0/src/Orders/Orders.php (modified) (4 diffs)
-
tags/6.3.0/src/ShoppingFeedHelper.php (modified) (2 diffs)
-
tags/6.3.0/vendor/autoload.php (modified) (1 diff)
-
tags/6.3.0/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
tags/6.3.0/vendor/composer/autoload_real.php (modified) (5 diffs)
-
tags/6.3.0/vendor/composer/autoload_static.php (modified) (3 diffs)
-
tags/6.3.0/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/shoppingfeed.php (modified) (2 diffs)
-
trunk/src/Addons/Inventory/Inventory.php (modified) (2 diffs)
-
trunk/src/Addons/Inventory/Marketplaces/Amazon.php (modified) (2 diffs)
-
trunk/src/Addons/Inventory/Marketplaces/Cdiscount.php (modified) (2 diffs)
-
trunk/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php (added)
-
trunk/src/Addons/Inventory/Marketplaces/MonoMono.php (modified) (2 diffs)
-
trunk/src/Addons/Marketplace.php (modified) (8 diffs)
-
trunk/src/Admin/Options.php (modified) (4 diffs)
-
trunk/src/Cli/FeedGeneration.php (modified) (1 diff)
-
trunk/src/Orders/Order/Status.php (modified) (3 diffs)
-
trunk/src/Orders/Orders.php (modified) (4 diffs)
-
trunk/src/ShoppingFeedHelper.php (modified) (2 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (5 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
shopping-feed/tags/6.3.0/readme.txt
r2956157 r2965886 2 2 Contributors: ShoppingFeed, BeAPI 3 3 Tags: shoppingfeed, marketplace, woocommerce, woocommerce shoppingfeed, create woocommerce products shoppingfeed, products feed, generate shoppingfeed, amazon, Jet, Walmart, many marketplace, import orders 4 Stable tag: 6. 2.05 Version: 6. 2.04 Stable tag: 6.3.0 5 Version: 6.3.0 6 6 Requires PHP: 7.1 7 7 Requires at least: 5.7 … … 14 14 15 15 == Changelog == 16 * 6.3.0 17 * Orders : Don't import orders fulfilled by the marketplaces by default, see details in the description. 18 * WPCLI command : don't rerun the generation process when an error occurs. 16 19 * 6.2.0 17 20 * Rework feed generation process to better handle shop with large amount of products. … … 152 155 - In Settings, check that ShoppingFeed is enabled and save changes 153 156 157 ## Orders fulfilled by the marketplaces 158 159 The plugin won't import orders fulfilled by marketplaces by default. 160 161 Options are available in the plugin settings to include those orders during the import. 162 163 They can be found in the "Orders" tab : 164 165 * Orders fulfilled by marketplace : import orders even if they are fulfilled by the marketplace. 166 * Fulfilled by marketplace order's status : select the status used for orders fulfilled by marketplaces when they are imported. 167 154 168 ## Shipment tracking support 155 169 -
shopping-feed/tags/6.3.0/shoppingfeed.php
r2956157 r2965886 8 8 * Text Domain: shopping-feed 9 9 * Domain Path: /languages 10 * Version: 6. 2.010 * Version: 6.3.0 11 11 * Requires at least: 5.7 12 12 * Requires PHP: 7.1 … … 27 27 } 28 28 29 define( 'SF_VERSION', '6. 2.0' );29 define( 'SF_VERSION', '6.3.0' ); 30 30 define( 'SF_DB_VERSION_SLUG', 'SF_DB_VERSION' ); 31 31 define( 'SF_DB_VERSION', '1.0.0' ); -
shopping-feed/tags/6.3.0/src/Addons/Inventory/Inventory.php
r2339808 r2965886 8 8 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\Amazon; 9 9 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\Cdiscount; 10 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\FulfilledByChannel; 10 11 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\MonoMono; 11 12 … … 26 27 private $mono_mono; 27 28 29 /** 30 * @var FulfilledByChannel 31 */ 32 private $fulfilled_by_channel; 33 28 34 public function __construct() { 29 $this->amazon = new Amazon(); 30 $this->cdiscount = new Cdiscount(); 31 $this->mono_mono = new MonoMono(); 35 $this->amazon = new Amazon(); 36 $this->cdiscount = new Cdiscount(); 37 $this->mono_mono = new MonoMono(); 38 $this->fulfilled_by_channel = new FulfilledByChannel(); 32 39 } 33 40 } -
shopping-feed/tags/6.3.0/src/Addons/Inventory/Marketplaces/Amazon.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 true !== $this->is_amazon( $metas->sf_order ) ||24 'AFN' !== $metas->sf_order->getPaymentInformation()['method']25 ) {26 return;22 if ( $this->is_fulfilled_by_amazon( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 27 27 } 28 29 $metas->add_meta(30 Metas::$dont_update_inventory,31 true32 );33 28 } 34 29 } -
shopping-feed/tags/6.3.0/src/Addons/Inventory/Marketplaces/Cdiscount.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 true !== $this->is_cdiscount( $metas->sf_order ) ||24 'CLogistique' !== $metas->sf_order->getPaymentInformation()['method']25 ) {26 return;22 if ( $this->is_fulfilled_by_cdiscount( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 27 27 } 28 29 $metas->add_meta(30 Metas::$dont_update_inventory,31 true32 );33 28 } 34 29 } -
shopping-feed/tags/6.3.0/src/Addons/Inventory/Marketplaces/MonoMono.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 ( 24 true !== $this->is_mano_mano( $metas->sf_order ) && 25 empty( $metas->sf_order_array['additionalFields']['env'] ) 26 ) || 27 'epmm' !== $metas->sf_order_array['additionalFields']['env'] 28 ) { 29 return; 22 if ( $this->is_fulfilled_by_manomano( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 30 27 } 31 32 $metas->add_meta(33 Metas::$dont_update_inventory,34 true35 );36 28 } 37 29 } -
shopping-feed/tags/6.3.0/src/Addons/Marketplace.php
r2717483 r2965886 1 1 <?php 2 2 3 namespace ShoppingFeed\ShoppingFeedWC\Addons; 3 4 … … 13 14 trait Marketplace { 14 15 /** 15 * @param $sf_order OrderResource16 * @param OrderResource $sf_order 16 17 * 17 18 * @return bool … … 25 26 26 27 /** 27 * @param $sf_order OrderResource28 * @param OrderResource $sf_order 28 29 * 29 30 * @return bool … … 37 38 38 39 /** 39 * @param $sf_order OrderResource40 * @param OrderResource $sf_order 40 41 * 41 42 * @return bool … … 49 50 50 51 /** 51 * @param $sf_order OrderResource52 * @param OrderResource $sf_order 52 53 * 53 54 * @return bool … … 55 56 private function is_mano_mano( $sf_order ) { 56 57 return ( 57 strtoupper( $sf_order->getChannel()->getName() ) === 'M anoMano' ||58 strtoupper( $sf_order->getChannel()->getName() ) === 'MANOMANO' || 58 59 $sf_order->getChannel()->getId() === 259 59 60 ); … … 63 64 * Check if the current SF order is from the Zalando marketplace 64 65 * 65 * @param $sf_order OrderResource66 * @param OrderResource $sf_order 66 67 * 67 68 * @return bool 68 * @author Stéphane Gillot69 69 */ 70 70 private function is_zalando( $sf_order ) { … … 83 83 } 84 84 85 /** 86 * Check if the order is fulfilled by Amazon. 87 * 88 * @param OrderResource $sf_order 89 * 90 * @return bool 91 */ 92 private function is_fulfilled_by_amazon( $sf_order ) { 93 return $this->is_amazon( $sf_order ) && 'afn' === strtolower( $sf_order->getPaymentInformation()['method'] ); 94 } 95 96 /** 97 * Check if the order is fulfilled by CDiscount. 98 * 99 * @param OrderResource $sf_order 100 * 101 * @return bool 102 */ 103 private function is_fulfilled_by_cdiscount( $sf_order ) { 104 return $this->is_cdiscount( $sf_order ) && 'clogistique' === strtolower( $sf_order->getPaymentInformation()['method'] ); 105 } 106 107 /** 108 * Check if the order is fulfilled by ManoMano. 109 * 110 * @param OrderResource $sf_order 111 * 112 * @return bool 113 */ 114 private function is_fulfilled_by_manomano( $sf_order ) { 115 return $this->is_mano_mano( $sf_order ) && 'epmm' === strtolower( $sf_order->toArray()['additionalFields']['env'] ); 116 } 117 118 /** 119 * Check if the order is fulfilled by the channel. 120 * 121 * @param OrderResource $sf_order 122 * 123 * @return bool 124 */ 125 private function is_fulfilled_by_channel( $sf_order ) { 126 return ! empty( $sf_order->toArray()['fulfilledBy'] ) && 'channel' === strtolower( $sf_order->toArray()['fulfilledBy'] ); 127 } 128 129 /** 130 * Check if the order is fulfilled by a marketplace. 131 * 132 * @param OrderResource $sf_order 133 * 134 * @return bool 135 */ 136 private function is_fulfilled_by_marketplace( $sf_order ) { 137 138 if ( $this->is_fulfilled_by_amazon( $sf_order ) ) { 139 return true; 140 } 141 142 if ( $this->is_fulfilled_by_cdiscount( $sf_order ) ) { 143 return true; 144 } 145 146 if ( $this->is_fulfilled_by_manomano( $sf_order ) ) { 147 return true; 148 } 149 150 if ( $this->is_fulfilled_by_channel( $sf_order ) ) { 151 return true; 152 } 153 154 return false; 155 } 85 156 } -
shopping-feed/tags/6.3.0/src/Admin/Options.php
r2748452 r2965886 986 986 987 987 add_settings_section( 988 'sf_orders_settings_import_ frequency',988 'sf_orders_settings_import_options', 989 989 __( 'Import Options', 'shopping-feed' ), 990 990 function () { … … 1000 1000 $frequencies_options = []; 1001 1001 foreach ( $frequencies as $frequency ) { 1002 $frequencies_options[ $frequency * MINUTE_IN_SECONDS ] = sprintf( '%s %s', $frequency, __( 'min', 'shopping-feed' ) ); 1002 $frequencies_options[ $frequency * MINUTE_IN_SECONDS ] = sprintf( 1003 '%s %s', 1004 $frequency, 1005 __( 'min', 'shopping-feed' ) 1006 ); 1003 1007 } 1004 1008 … … 1013 1017 ?> 1014 1018 <option 1015 value="<?php echo esc_html( $frequency ); ?>" 1016 <?php selected( $frequency, $this->sf_orders_options['import_frequency'] ? $this->sf_orders_options['import_frequency'] : false ); ?> 1017 ><?php echo esc_html( $name ); ?></option> 1019 value="<?php echo esc_attr( $frequency ); ?>" 1020 <?php selected( $frequency, isset( $this->sf_orders_options['import_frequency'] ) ? $this->sf_orders_options['import_frequency'] : false ); ?>> 1021 <?php echo esc_html( $name ); ?> 1022 </option> 1018 1023 <?php 1019 1024 } 1020 1025 ?> 1021 1026 </select> 1022 <p class="description" 1023 id="tagline-description"><?php echo esc_attr_e( 'Frequency to import orders from SF', 'shopping-feed' ); ?></p> 1027 <p class="description" id="tagline-description"> 1028 <?php esc_html_e( 'Frequency to import orders from SF', 'shopping-feed' ); ?> 1029 </p> 1024 1030 <?php 1025 1031 }, 1026 1032 self::SF_ORDERS_SETTINGS_PAGE, 1027 'sf_orders_settings_import_ frequency'1033 'sf_orders_settings_import_options' 1028 1034 ); 1029 1035 1030 1036 //statuses settings 1031 1037 $wc_order_statuses = wc_get_order_statuses(); 1032 1033 //default status1034 add_settings_section(1035 'sf_orders_settings_default_status',1036 null,1037 function () {1038 },1039 self::SF_ORDERS_SETTINGS_PAGE1040 );1041 1038 1042 1039 add_settings_field( … … 1050 1047 ?> 1051 1048 <option 1052 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1053 <?php selected( $wc_order_statuse, $this->sf_orders_options['default_status'] ? $this->sf_orders_options['default_status'] : false ); ?> 1054 ><?php echo esc_html( $name ); ?></option> 1049 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1050 <?php selected( $wc_order_statuse, isset( $this->sf_orders_options['default_status'] ) ? $this->sf_orders_options['default_status'] : false ); ?>> 1051 <?php echo esc_html( $name ); ?> 1052 </option> 1055 1053 <?php 1056 1054 } 1057 1055 ?> 1058 1056 </select> 1059 <p class="description" 1060 id="tagline-description"><?php echo esc_attr_e( 'Default Status for orders imported from from SF', 'shopping-feed' ); ?></p> 1057 <p class="description" id="tagline-description"> 1058 <?php esc_html_e( 'Default Status for orders imported from from SF', 'shopping-feed' ); ?> 1059 </p> 1061 1060 <?php 1062 1061 }, 1063 1062 self::SF_ORDERS_SETTINGS_PAGE, 1064 'sf_orders_settings_default_status' 1063 'sf_orders_settings_import_options' 1064 ); 1065 1066 add_settings_field( 1067 'import_orders_fulfilled_by_marketplace', 1068 __( 'Orders fulfilled by marketplace', 'shopping-feed' ), 1069 function () { 1070 ?> 1071 <label for="import_order_fulfilled"> 1072 <input 1073 type="checkbox" 1074 id="import_order_fulfilled" 1075 name="<?php echo esc_attr( sprintf( '%s[import_order_fulfilled_by_marketplace]', self::SF_ORDERS_OPTIONS ) ); ?>" 1076 value="1" 1077 <?php checked( '1', isset( $this->sf_orders_options['import_order_fulfilled_by_marketplace'] ) ? $this->sf_orders_options['import_order_fulfilled_by_marketplace'] : '0' ); ?> 1078 > 1079 <?php esc_html_e( 'Import orders fulfilled by marketplace', 'shopping-feed' ); ?> 1080 </label> 1081 <p class="description" id="tagline-description"> 1082 <?php esc_html_e( 'Import orders even if they are fulfilled by the marketplace.', 'shopping-feed' ); ?> 1083 </p> 1084 <?php 1085 }, 1086 self::SF_ORDERS_SETTINGS_PAGE, 1087 'sf_orders_settings_import_options' 1088 ); 1089 1090 add_settings_field( 1091 'fulfilled_by_marketplace_order_status', 1092 __( "Fulfilled by marketplace order's status", 'shopping-feed' ), 1093 function () use ( $wc_order_statuses ) { 1094 ?> 1095 <select 1096 name="<?php echo esc_html( sprintf( '%s[fulfilled_by_marketplace_order_status]', self::SF_ORDERS_OPTIONS ) ); ?>" 1097 > 1098 <?php 1099 foreach ( $wc_order_statuses as $wc_order_statuse => $name ) { 1100 ?> 1101 <option 1102 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1103 <?php selected( $wc_order_statuse, isset( $this->sf_orders_options['fulfilled_by_marketplace_order_status'] ) ? $this->sf_orders_options['fulfilled_by_marketplace_order_status'] : 'wc-completed' ); ?>> 1104 <?php echo esc_html( $name ); ?> 1105 </option> 1106 <?php 1107 } 1108 ?> 1109 </select> 1110 <p class="description" id="tagline-description"> 1111 <?php esc_html_e( 'Status used for orders fulfilled by marketplaces when they are imported.', 'shopping-feed' ); ?> 1112 </p> 1113 <?php 1114 }, 1115 self::SF_ORDERS_SETTINGS_PAGE, 1116 'sf_orders_settings_import_options' 1065 1117 ); 1066 1118 -
shopping-feed/tags/6.3.0/src/Cli/FeedGeneration.php
r2339808 r2965886 16 16 public function __invoke() { 17 17 $generator = Generator::get_instance(); 18 if ( is_wp_error( $generator->generate() ) ) { 18 $return = $generator->generate(); 19 if ( is_wp_error( $return ) ) { 19 20 \WP_CLI::error( 20 21 sprintf( 21 22 /* translators: %s: Error message */ 22 23 __( 'Error during feed generation : %s', 'shopping-feed' ), 23 $ generator->generate()->get_error_message()24 $return->get_error_message() 24 25 ) 25 26 ); -
shopping-feed/tags/6.3.0/src/Orders/Order/Status.php
r2339808 r2965886 5 5 defined( 'ABSPATH' ) || exit; 6 6 7 8 7 use ShoppingFeed\Sdk\Api\Order\OrderResource; 8 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 9 use ShoppingFeed\ShoppingFeedWC\ShoppingFeedHelper; 10 10 … … 14 14 */ 15 15 class Status { 16 17 use Marketplace; 16 18 17 19 /** … … 40 42 $this->set_name( ShoppingFeedHelper::get_sf_default_order_status() ); 41 43 $this->set_note( sprintf( 'Order from : %s', $sf_order->getChannel()->getName() ) ); 44 45 if ( $this->is_fulfilled_by_marketplace( $sf_order ) ) { 46 $this->set_name( ShoppingFeedHelper::get_sf_fulfilled_by_channel_order_status() ); 47 } 42 48 } 43 49 -
shopping-feed/tags/6.3.0/src/Orders/Orders.php
r2785151 r2965886 6 6 defined( 'ABSPATH' ) || exit; 7 7 8 use ShoppingFeed\Sdk\Api\Order\OrderResource; 8 9 use ShoppingFeed\Sdk\Api\Store\StoreResource; 10 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 11 use ShoppingFeed\ShoppingFeedWC\Sdk\Sdk; 10 12 use ShoppingFeed\ShoppingFeedWC\ShoppingFeedHelper; … … 14 16 */ 15 17 class Orders { 18 19 use Marketplace; 16 20 17 21 /** … … 77 81 ShoppingFeedHelper::get_logger()->notice( 78 82 sprintf( 79 /* translators: %1$1s: Order reference. %2$2s: Order id. */ 80 __( 'Order already imported %1$1s => %2$2s', 'shopping-feed' ), 83 /* translators: 1: Order reference. 2: Order id. */ 84 __( 'Order already imported %1$1s (%2$2s)', 'shopping-feed' ), 85 $sf_order->getReference(), 86 $sf_order->getId() 87 ), 88 array( 89 'source' => 'shopping-feed', 90 ) 91 ); 92 continue; 93 } 94 95 if ( ! $this->can_import_order( $sf_order ) ) { 96 ShoppingFeedHelper::get_logger()->notice( 97 sprintf( 98 /* translators: 1: Order reference. 2: Order id. */ 99 __( 'Order fulfilled by channel %1$1s (%2$2s)', 'shopping-feed' ), 81 100 $sf_order->getReference(), 82 101 $sf_order->getId() … … 97 116 return true; 98 117 } 118 119 /** 120 * Check if the order can be imported. 121 * 122 * @param OrderResource $sf_order 123 * 124 * @return bool 125 */ 126 public function can_import_order( $sf_order ) { 127 // Allow user for force imports for orders fulfilled by the marketplaces. 128 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 129 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 130 return true; 131 } 132 133 return false === $this->is_fulfilled_by_marketplace( $sf_order ); 134 } 99 135 } -
shopping-feed/tags/6.3.0/src/ShoppingFeedHelper.php
r2956157 r2965886 376 376 377 377 /** 378 * Return SF fulfilled by marketplace order status. 379 * @return string 380 */ 381 public static function get_sf_fulfilled_by_channel_order_status() { 382 $orders_options = self::get_sf_orders_options(); 383 if ( ! is_array( $orders_options ) ) { 384 return 'wc-completed'; 385 } 386 387 return ! empty( $orders_options['fulfilled_by_marketplace_order_status'] ) 388 ? $orders_options['fulfilled_by_marketplace_order_status'] 389 : 'wc-completed'; 390 } 391 392 /** 378 393 * Return SF orders import 379 394 * default: 15 MINUTES … … 639 654 */ 640 655 public static function sf_order_statuses_to_import() { 641 return apply_filters( 'shopping_feed_orders_to_import', array( 'waiting_shipment' ) ); 656 $default_statuses = [ 'waiting_shipment' ]; 657 $orders_options = self::get_sf_orders_options(); 658 659 /** 660 * Add shipped status if importing fulfilled by marketplace orders 661 * @see https://support.beapi.fr/issues/60658 662 */ 663 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 664 $fullfilled_by_marketplace_statuses = [ 'shipped', 'refunded', 'cancelled' ]; 665 $default_statuses = array_merge( $default_statuses, $fullfilled_by_marketplace_statuses ); 666 } 667 668 return apply_filters( 'shopping_feed_orders_to_import', $default_statuses ); 642 669 } 643 670 -
shopping-feed/tags/6.3.0/vendor/autoload.php
r2956157 r2965886 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4::getLoader();7 return ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e::getLoader(); -
shopping-feed/tags/6.3.0/vendor/composer/autoload_classmap.php
r2785151 r2965886 305 305 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Amazon' => $baseDir . '/src/Addons/Inventory/Marketplaces/Amazon.php', 306 306 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Cdiscount' => $baseDir . '/src/Addons/Inventory/Marketplaces/Cdiscount.php', 307 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\FulfilledByChannel' => $baseDir . '/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php', 307 308 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\MonoMono' => $baseDir . '/src/Addons/Inventory/Marketplaces/MonoMono.php', 308 309 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Marketplace' => $baseDir . '/src/Addons/Marketplace.php', -
shopping-feed/tags/6.3.0/vendor/composer/autoload_real.php
r2956157 r2965886 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d45 class ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; … … 54 54 55 55 if ($useStaticLoader) { 56 $includeFiles = Composer\Autoload\ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$files;56 $includeFiles = Composer\Autoload\ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$files; 57 57 } else { 58 58 $includeFiles = require __DIR__ . '/autoload_files.php'; 59 59 } 60 60 foreach ($includeFiles as $fileIdentifier => $file) { 61 composerRequire 04b8226c92be02a57b9cd59a31bee5d4($fileIdentifier, $file);61 composerRequire6ae1c61023135e79f79b19c4ed257c4e($fileIdentifier, $file); 62 62 } 63 63 … … 71 71 * @return void 72 72 */ 73 function composerRequire 04b8226c92be02a57b9cd59a31bee5d4($fileIdentifier, $file)73 function composerRequire6ae1c61023135e79f79b19c4ed257c4e($fileIdentifier, $file) 74 74 { 75 75 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
shopping-feed/tags/6.3.0/vendor/composer/autoload_static.php
r2956157 r2965886 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d47 class ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e 8 8 { 9 9 public static $files = array ( … … 395 395 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Amazon' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/Amazon.php', 396 396 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Cdiscount' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/Cdiscount.php', 397 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\FulfilledByChannel' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php', 397 398 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\MonoMono' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/MonoMono.php', 398 399 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Marketplace' => __DIR__ . '/../..' . '/src/Addons/Marketplace.php', … … 449 450 { 450 451 return \Closure::bind(function () use ($loader) { 451 $loader->prefixLengthsPsr4 = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$prefixLengthsPsr4;452 $loader->prefixDirsPsr4 = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$prefixDirsPsr4;453 $loader->classMap = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$classMap;452 $loader->prefixLengthsPsr4 = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$prefixLengthsPsr4; 453 $loader->prefixDirsPsr4 = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$prefixDirsPsr4; 454 $loader->classMap = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$classMap; 454 455 455 456 }, null, ClassLoader::class); -
shopping-feed/tags/6.3.0/vendor/composer/installed.php
r2956157 r2965886 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 13d6fc50d163ede4c1a910d7b164b31527ed0250',8 'reference' => '44f93b44061d87eb2b3907fb30fa653c0b87cece', 9 9 'name' => 'shoppingfeed/shoppingfeed-for-woocommerce', 10 10 'dev' => false, … … 107 107 'install_path' => __DIR__ . '/../../', 108 108 'aliases' => array(), 109 'reference' => ' 13d6fc50d163ede4c1a910d7b164b31527ed0250',109 'reference' => '44f93b44061d87eb2b3907fb30fa653c0b87cece', 110 110 'dev_requirement' => false, 111 111 ), -
shopping-feed/trunk/readme.txt
r2956157 r2965886 2 2 Contributors: ShoppingFeed, BeAPI 3 3 Tags: shoppingfeed, marketplace, woocommerce, woocommerce shoppingfeed, create woocommerce products shoppingfeed, products feed, generate shoppingfeed, amazon, Jet, Walmart, many marketplace, import orders 4 Stable tag: 6. 2.05 Version: 6. 2.04 Stable tag: 6.3.0 5 Version: 6.3.0 6 6 Requires PHP: 7.1 7 7 Requires at least: 5.7 … … 14 14 15 15 == Changelog == 16 * 6.3.0 17 * Orders : Don't import orders fulfilled by the marketplaces by default, see details in the description. 18 * WPCLI command : don't rerun the generation process when an error occurs. 16 19 * 6.2.0 17 20 * Rework feed generation process to better handle shop with large amount of products. … … 152 155 - In Settings, check that ShoppingFeed is enabled and save changes 153 156 157 ## Orders fulfilled by the marketplaces 158 159 The plugin won't import orders fulfilled by marketplaces by default. 160 161 Options are available in the plugin settings to include those orders during the import. 162 163 They can be found in the "Orders" tab : 164 165 * Orders fulfilled by marketplace : import orders even if they are fulfilled by the marketplace. 166 * Fulfilled by marketplace order's status : select the status used for orders fulfilled by marketplaces when they are imported. 167 154 168 ## Shipment tracking support 155 169 -
shopping-feed/trunk/shoppingfeed.php
r2956157 r2965886 8 8 * Text Domain: shopping-feed 9 9 * Domain Path: /languages 10 * Version: 6. 2.010 * Version: 6.3.0 11 11 * Requires at least: 5.7 12 12 * Requires PHP: 7.1 … … 27 27 } 28 28 29 define( 'SF_VERSION', '6. 2.0' );29 define( 'SF_VERSION', '6.3.0' ); 30 30 define( 'SF_DB_VERSION_SLUG', 'SF_DB_VERSION' ); 31 31 define( 'SF_DB_VERSION', '1.0.0' ); -
shopping-feed/trunk/src/Addons/Inventory/Inventory.php
r2339808 r2965886 8 8 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\Amazon; 9 9 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\Cdiscount; 10 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\FulfilledByChannel; 10 11 use ShoppingFeed\ShoppingFeedWC\Addons\Inventory\Marketplaces\MonoMono; 11 12 … … 26 27 private $mono_mono; 27 28 29 /** 30 * @var FulfilledByChannel 31 */ 32 private $fulfilled_by_channel; 33 28 34 public function __construct() { 29 $this->amazon = new Amazon(); 30 $this->cdiscount = new Cdiscount(); 31 $this->mono_mono = new MonoMono(); 35 $this->amazon = new Amazon(); 36 $this->cdiscount = new Cdiscount(); 37 $this->mono_mono = new MonoMono(); 38 $this->fulfilled_by_channel = new FulfilledByChannel(); 32 39 } 33 40 } -
shopping-feed/trunk/src/Addons/Inventory/Marketplaces/Amazon.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 true !== $this->is_amazon( $metas->sf_order ) ||24 'AFN' !== $metas->sf_order->getPaymentInformation()['method']25 ) {26 return;22 if ( $this->is_fulfilled_by_amazon( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 27 27 } 28 29 $metas->add_meta(30 Metas::$dont_update_inventory,31 true32 );33 28 } 34 29 } -
shopping-feed/trunk/src/Addons/Inventory/Marketplaces/Cdiscount.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 true !== $this->is_cdiscount( $metas->sf_order ) ||24 'CLogistique' !== $metas->sf_order->getPaymentInformation()['method']25 ) {26 return;22 if ( $this->is_fulfilled_by_cdiscount( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 27 27 } 28 29 $metas->add_meta(30 Metas::$dont_update_inventory,31 true32 );33 28 } 34 29 } -
shopping-feed/trunk/src/Addons/Inventory/Marketplaces/MonoMono.php
r2339808 r2965886 13 13 14 14 public function __construct() { 15 add_action( 'sf_add_metas', array( $this, 'add_metas' ));15 add_action( 'sf_add_metas', [ $this, 'add_metas' ] ); 16 16 } 17 17 … … 20 20 */ 21 21 public function add_metas( $metas ) { 22 if ( 23 ( 24 true !== $this->is_mano_mano( $metas->sf_order ) && 25 empty( $metas->sf_order_array['additionalFields']['env'] ) 26 ) || 27 'epmm' !== $metas->sf_order_array['additionalFields']['env'] 28 ) { 29 return; 22 if ( $this->is_fulfilled_by_manomano( $metas->sf_order ) ) { 23 $metas->add_meta( 24 Metas::$dont_update_inventory, 25 true 26 ); 30 27 } 31 32 $metas->add_meta(33 Metas::$dont_update_inventory,34 true35 );36 28 } 37 29 } -
shopping-feed/trunk/src/Addons/Marketplace.php
r2717483 r2965886 1 1 <?php 2 2 3 namespace ShoppingFeed\ShoppingFeedWC\Addons; 3 4 … … 13 14 trait Marketplace { 14 15 /** 15 * @param $sf_order OrderResource16 * @param OrderResource $sf_order 16 17 * 17 18 * @return bool … … 25 26 26 27 /** 27 * @param $sf_order OrderResource28 * @param OrderResource $sf_order 28 29 * 29 30 * @return bool … … 37 38 38 39 /** 39 * @param $sf_order OrderResource40 * @param OrderResource $sf_order 40 41 * 41 42 * @return bool … … 49 50 50 51 /** 51 * @param $sf_order OrderResource52 * @param OrderResource $sf_order 52 53 * 53 54 * @return bool … … 55 56 private function is_mano_mano( $sf_order ) { 56 57 return ( 57 strtoupper( $sf_order->getChannel()->getName() ) === 'M anoMano' ||58 strtoupper( $sf_order->getChannel()->getName() ) === 'MANOMANO' || 58 59 $sf_order->getChannel()->getId() === 259 59 60 ); … … 63 64 * Check if the current SF order is from the Zalando marketplace 64 65 * 65 * @param $sf_order OrderResource66 * @param OrderResource $sf_order 66 67 * 67 68 * @return bool 68 * @author Stéphane Gillot69 69 */ 70 70 private function is_zalando( $sf_order ) { … … 83 83 } 84 84 85 /** 86 * Check if the order is fulfilled by Amazon. 87 * 88 * @param OrderResource $sf_order 89 * 90 * @return bool 91 */ 92 private function is_fulfilled_by_amazon( $sf_order ) { 93 return $this->is_amazon( $sf_order ) && 'afn' === strtolower( $sf_order->getPaymentInformation()['method'] ); 94 } 95 96 /** 97 * Check if the order is fulfilled by CDiscount. 98 * 99 * @param OrderResource $sf_order 100 * 101 * @return bool 102 */ 103 private function is_fulfilled_by_cdiscount( $sf_order ) { 104 return $this->is_cdiscount( $sf_order ) && 'clogistique' === strtolower( $sf_order->getPaymentInformation()['method'] ); 105 } 106 107 /** 108 * Check if the order is fulfilled by ManoMano. 109 * 110 * @param OrderResource $sf_order 111 * 112 * @return bool 113 */ 114 private function is_fulfilled_by_manomano( $sf_order ) { 115 return $this->is_mano_mano( $sf_order ) && 'epmm' === strtolower( $sf_order->toArray()['additionalFields']['env'] ); 116 } 117 118 /** 119 * Check if the order is fulfilled by the channel. 120 * 121 * @param OrderResource $sf_order 122 * 123 * @return bool 124 */ 125 private function is_fulfilled_by_channel( $sf_order ) { 126 return ! empty( $sf_order->toArray()['fulfilledBy'] ) && 'channel' === strtolower( $sf_order->toArray()['fulfilledBy'] ); 127 } 128 129 /** 130 * Check if the order is fulfilled by a marketplace. 131 * 132 * @param OrderResource $sf_order 133 * 134 * @return bool 135 */ 136 private function is_fulfilled_by_marketplace( $sf_order ) { 137 138 if ( $this->is_fulfilled_by_amazon( $sf_order ) ) { 139 return true; 140 } 141 142 if ( $this->is_fulfilled_by_cdiscount( $sf_order ) ) { 143 return true; 144 } 145 146 if ( $this->is_fulfilled_by_manomano( $sf_order ) ) { 147 return true; 148 } 149 150 if ( $this->is_fulfilled_by_channel( $sf_order ) ) { 151 return true; 152 } 153 154 return false; 155 } 85 156 } -
shopping-feed/trunk/src/Admin/Options.php
r2748452 r2965886 986 986 987 987 add_settings_section( 988 'sf_orders_settings_import_ frequency',988 'sf_orders_settings_import_options', 989 989 __( 'Import Options', 'shopping-feed' ), 990 990 function () { … … 1000 1000 $frequencies_options = []; 1001 1001 foreach ( $frequencies as $frequency ) { 1002 $frequencies_options[ $frequency * MINUTE_IN_SECONDS ] = sprintf( '%s %s', $frequency, __( 'min', 'shopping-feed' ) ); 1002 $frequencies_options[ $frequency * MINUTE_IN_SECONDS ] = sprintf( 1003 '%s %s', 1004 $frequency, 1005 __( 'min', 'shopping-feed' ) 1006 ); 1003 1007 } 1004 1008 … … 1013 1017 ?> 1014 1018 <option 1015 value="<?php echo esc_html( $frequency ); ?>" 1016 <?php selected( $frequency, $this->sf_orders_options['import_frequency'] ? $this->sf_orders_options['import_frequency'] : false ); ?> 1017 ><?php echo esc_html( $name ); ?></option> 1019 value="<?php echo esc_attr( $frequency ); ?>" 1020 <?php selected( $frequency, isset( $this->sf_orders_options['import_frequency'] ) ? $this->sf_orders_options['import_frequency'] : false ); ?>> 1021 <?php echo esc_html( $name ); ?> 1022 </option> 1018 1023 <?php 1019 1024 } 1020 1025 ?> 1021 1026 </select> 1022 <p class="description" 1023 id="tagline-description"><?php echo esc_attr_e( 'Frequency to import orders from SF', 'shopping-feed' ); ?></p> 1027 <p class="description" id="tagline-description"> 1028 <?php esc_html_e( 'Frequency to import orders from SF', 'shopping-feed' ); ?> 1029 </p> 1024 1030 <?php 1025 1031 }, 1026 1032 self::SF_ORDERS_SETTINGS_PAGE, 1027 'sf_orders_settings_import_ frequency'1033 'sf_orders_settings_import_options' 1028 1034 ); 1029 1035 1030 1036 //statuses settings 1031 1037 $wc_order_statuses = wc_get_order_statuses(); 1032 1033 //default status1034 add_settings_section(1035 'sf_orders_settings_default_status',1036 null,1037 function () {1038 },1039 self::SF_ORDERS_SETTINGS_PAGE1040 );1041 1038 1042 1039 add_settings_field( … … 1050 1047 ?> 1051 1048 <option 1052 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1053 <?php selected( $wc_order_statuse, $this->sf_orders_options['default_status'] ? $this->sf_orders_options['default_status'] : false ); ?> 1054 ><?php echo esc_html( $name ); ?></option> 1049 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1050 <?php selected( $wc_order_statuse, isset( $this->sf_orders_options['default_status'] ) ? $this->sf_orders_options['default_status'] : false ); ?>> 1051 <?php echo esc_html( $name ); ?> 1052 </option> 1055 1053 <?php 1056 1054 } 1057 1055 ?> 1058 1056 </select> 1059 <p class="description" 1060 id="tagline-description"><?php echo esc_attr_e( 'Default Status for orders imported from from SF', 'shopping-feed' ); ?></p> 1057 <p class="description" id="tagline-description"> 1058 <?php esc_html_e( 'Default Status for orders imported from from SF', 'shopping-feed' ); ?> 1059 </p> 1061 1060 <?php 1062 1061 }, 1063 1062 self::SF_ORDERS_SETTINGS_PAGE, 1064 'sf_orders_settings_default_status' 1063 'sf_orders_settings_import_options' 1064 ); 1065 1066 add_settings_field( 1067 'import_orders_fulfilled_by_marketplace', 1068 __( 'Orders fulfilled by marketplace', 'shopping-feed' ), 1069 function () { 1070 ?> 1071 <label for="import_order_fulfilled"> 1072 <input 1073 type="checkbox" 1074 id="import_order_fulfilled" 1075 name="<?php echo esc_attr( sprintf( '%s[import_order_fulfilled_by_marketplace]', self::SF_ORDERS_OPTIONS ) ); ?>" 1076 value="1" 1077 <?php checked( '1', isset( $this->sf_orders_options['import_order_fulfilled_by_marketplace'] ) ? $this->sf_orders_options['import_order_fulfilled_by_marketplace'] : '0' ); ?> 1078 > 1079 <?php esc_html_e( 'Import orders fulfilled by marketplace', 'shopping-feed' ); ?> 1080 </label> 1081 <p class="description" id="tagline-description"> 1082 <?php esc_html_e( 'Import orders even if they are fulfilled by the marketplace.', 'shopping-feed' ); ?> 1083 </p> 1084 <?php 1085 }, 1086 self::SF_ORDERS_SETTINGS_PAGE, 1087 'sf_orders_settings_import_options' 1088 ); 1089 1090 add_settings_field( 1091 'fulfilled_by_marketplace_order_status', 1092 __( "Fulfilled by marketplace order's status", 'shopping-feed' ), 1093 function () use ( $wc_order_statuses ) { 1094 ?> 1095 <select 1096 name="<?php echo esc_html( sprintf( '%s[fulfilled_by_marketplace_order_status]', self::SF_ORDERS_OPTIONS ) ); ?>" 1097 > 1098 <?php 1099 foreach ( $wc_order_statuses as $wc_order_statuse => $name ) { 1100 ?> 1101 <option 1102 value="<?php echo esc_html( $wc_order_statuse ); ?>" 1103 <?php selected( $wc_order_statuse, isset( $this->sf_orders_options['fulfilled_by_marketplace_order_status'] ) ? $this->sf_orders_options['fulfilled_by_marketplace_order_status'] : 'wc-completed' ); ?>> 1104 <?php echo esc_html( $name ); ?> 1105 </option> 1106 <?php 1107 } 1108 ?> 1109 </select> 1110 <p class="description" id="tagline-description"> 1111 <?php esc_html_e( 'Status used for orders fulfilled by marketplaces when they are imported.', 'shopping-feed' ); ?> 1112 </p> 1113 <?php 1114 }, 1115 self::SF_ORDERS_SETTINGS_PAGE, 1116 'sf_orders_settings_import_options' 1065 1117 ); 1066 1118 -
shopping-feed/trunk/src/Cli/FeedGeneration.php
r2339808 r2965886 16 16 public function __invoke() { 17 17 $generator = Generator::get_instance(); 18 if ( is_wp_error( $generator->generate() ) ) { 18 $return = $generator->generate(); 19 if ( is_wp_error( $return ) ) { 19 20 \WP_CLI::error( 20 21 sprintf( 21 22 /* translators: %s: Error message */ 22 23 __( 'Error during feed generation : %s', 'shopping-feed' ), 23 $ generator->generate()->get_error_message()24 $return->get_error_message() 24 25 ) 25 26 ); -
shopping-feed/trunk/src/Orders/Order/Status.php
r2339808 r2965886 5 5 defined( 'ABSPATH' ) || exit; 6 6 7 8 7 use ShoppingFeed\Sdk\Api\Order\OrderResource; 8 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 9 use ShoppingFeed\ShoppingFeedWC\ShoppingFeedHelper; 10 10 … … 14 14 */ 15 15 class Status { 16 17 use Marketplace; 16 18 17 19 /** … … 40 42 $this->set_name( ShoppingFeedHelper::get_sf_default_order_status() ); 41 43 $this->set_note( sprintf( 'Order from : %s', $sf_order->getChannel()->getName() ) ); 44 45 if ( $this->is_fulfilled_by_marketplace( $sf_order ) ) { 46 $this->set_name( ShoppingFeedHelper::get_sf_fulfilled_by_channel_order_status() ); 47 } 42 48 } 43 49 -
shopping-feed/trunk/src/Orders/Orders.php
r2785151 r2965886 6 6 defined( 'ABSPATH' ) || exit; 7 7 8 use ShoppingFeed\Sdk\Api\Order\OrderResource; 8 9 use ShoppingFeed\Sdk\Api\Store\StoreResource; 10 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 11 use ShoppingFeed\ShoppingFeedWC\Sdk\Sdk; 10 12 use ShoppingFeed\ShoppingFeedWC\ShoppingFeedHelper; … … 14 16 */ 15 17 class Orders { 18 19 use Marketplace; 16 20 17 21 /** … … 77 81 ShoppingFeedHelper::get_logger()->notice( 78 82 sprintf( 79 /* translators: %1$1s: Order reference. %2$2s: Order id. */ 80 __( 'Order already imported %1$1s => %2$2s', 'shopping-feed' ), 83 /* translators: 1: Order reference. 2: Order id. */ 84 __( 'Order already imported %1$1s (%2$2s)', 'shopping-feed' ), 85 $sf_order->getReference(), 86 $sf_order->getId() 87 ), 88 array( 89 'source' => 'shopping-feed', 90 ) 91 ); 92 continue; 93 } 94 95 if ( ! $this->can_import_order( $sf_order ) ) { 96 ShoppingFeedHelper::get_logger()->notice( 97 sprintf( 98 /* translators: 1: Order reference. 2: Order id. */ 99 __( 'Order fulfilled by channel %1$1s (%2$2s)', 'shopping-feed' ), 81 100 $sf_order->getReference(), 82 101 $sf_order->getId() … … 97 116 return true; 98 117 } 118 119 /** 120 * Check if the order can be imported. 121 * 122 * @param OrderResource $sf_order 123 * 124 * @return bool 125 */ 126 public function can_import_order( $sf_order ) { 127 // Allow user for force imports for orders fulfilled by the marketplaces. 128 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 129 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 130 return true; 131 } 132 133 return false === $this->is_fulfilled_by_marketplace( $sf_order ); 134 } 99 135 } -
shopping-feed/trunk/src/ShoppingFeedHelper.php
r2956157 r2965886 376 376 377 377 /** 378 * Return SF fulfilled by marketplace order status. 379 * @return string 380 */ 381 public static function get_sf_fulfilled_by_channel_order_status() { 382 $orders_options = self::get_sf_orders_options(); 383 if ( ! is_array( $orders_options ) ) { 384 return 'wc-completed'; 385 } 386 387 return ! empty( $orders_options['fulfilled_by_marketplace_order_status'] ) 388 ? $orders_options['fulfilled_by_marketplace_order_status'] 389 : 'wc-completed'; 390 } 391 392 /** 378 393 * Return SF orders import 379 394 * default: 15 MINUTES … … 639 654 */ 640 655 public static function sf_order_statuses_to_import() { 641 return apply_filters( 'shopping_feed_orders_to_import', array( 'waiting_shipment' ) ); 656 $default_statuses = [ 'waiting_shipment' ]; 657 $orders_options = self::get_sf_orders_options(); 658 659 /** 660 * Add shipped status if importing fulfilled by marketplace orders 661 * @see https://support.beapi.fr/issues/60658 662 */ 663 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 664 $fullfilled_by_marketplace_statuses = [ 'shipped', 'refunded', 'cancelled' ]; 665 $default_statuses = array_merge( $default_statuses, $fullfilled_by_marketplace_statuses ); 666 } 667 668 return apply_filters( 'shopping_feed_orders_to_import', $default_statuses ); 642 669 } 643 670 -
shopping-feed/trunk/vendor/autoload.php
r2956157 r2965886 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4::getLoader();7 return ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e::getLoader(); -
shopping-feed/trunk/vendor/composer/autoload_classmap.php
r2785151 r2965886 305 305 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Amazon' => $baseDir . '/src/Addons/Inventory/Marketplaces/Amazon.php', 306 306 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Cdiscount' => $baseDir . '/src/Addons/Inventory/Marketplaces/Cdiscount.php', 307 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\FulfilledByChannel' => $baseDir . '/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php', 307 308 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\MonoMono' => $baseDir . '/src/Addons/Inventory/Marketplaces/MonoMono.php', 308 309 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Marketplace' => $baseDir . '/src/Addons/Marketplace.php', -
shopping-feed/trunk/vendor/composer/autoload_real.php
r2956157 r2965886 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d45 class ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 04b8226c92be02a57b9cd59a31bee5d4', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit6ae1c61023135e79f79b19c4ed257c4e', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; … … 54 54 55 55 if ($useStaticLoader) { 56 $includeFiles = Composer\Autoload\ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$files;56 $includeFiles = Composer\Autoload\ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$files; 57 57 } else { 58 58 $includeFiles = require __DIR__ . '/autoload_files.php'; 59 59 } 60 60 foreach ($includeFiles as $fileIdentifier => $file) { 61 composerRequire 04b8226c92be02a57b9cd59a31bee5d4($fileIdentifier, $file);61 composerRequire6ae1c61023135e79f79b19c4ed257c4e($fileIdentifier, $file); 62 62 } 63 63 … … 71 71 * @return void 72 72 */ 73 function composerRequire 04b8226c92be02a57b9cd59a31bee5d4($fileIdentifier, $file)73 function composerRequire6ae1c61023135e79f79b19c4ed257c4e($fileIdentifier, $file) 74 74 { 75 75 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
shopping-feed/trunk/vendor/composer/autoload_static.php
r2956157 r2965886 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d47 class ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e 8 8 { 9 9 public static $files = array ( … … 395 395 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Amazon' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/Amazon.php', 396 396 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\Cdiscount' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/Cdiscount.php', 397 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\FulfilledByChannel' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/FulfilledByChannel.php', 397 398 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Inventory\\Marketplaces\\MonoMono' => __DIR__ . '/../..' . '/src/Addons/Inventory/Marketplaces/MonoMono.php', 398 399 'ShoppingFeed\\ShoppingFeedWC\\Addons\\Marketplace' => __DIR__ . '/../..' . '/src/Addons/Marketplace.php', … … 449 450 { 450 451 return \Closure::bind(function () use ($loader) { 451 $loader->prefixLengthsPsr4 = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$prefixLengthsPsr4;452 $loader->prefixDirsPsr4 = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$prefixDirsPsr4;453 $loader->classMap = ComposerStaticInit 04b8226c92be02a57b9cd59a31bee5d4::$classMap;452 $loader->prefixLengthsPsr4 = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$prefixLengthsPsr4; 453 $loader->prefixDirsPsr4 = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$prefixDirsPsr4; 454 $loader->classMap = ComposerStaticInit6ae1c61023135e79f79b19c4ed257c4e::$classMap; 454 455 455 456 }, null, ClassLoader::class); -
shopping-feed/trunk/vendor/composer/installed.php
r2956157 r2965886 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 13d6fc50d163ede4c1a910d7b164b31527ed0250',8 'reference' => '44f93b44061d87eb2b3907fb30fa653c0b87cece', 9 9 'name' => 'shoppingfeed/shoppingfeed-for-woocommerce', 10 10 'dev' => false, … … 107 107 'install_path' => __DIR__ . '/../../', 108 108 'aliases' => array(), 109 'reference' => ' 13d6fc50d163ede4c1a910d7b164b31527ed0250',109 'reference' => '44f93b44061d87eb2b3907fb30fa653c0b87cece', 110 110 'dev_requirement' => false, 111 111 ),
Note: See TracChangeset
for help on using the changeset viewer.