Version Description
(2022-11-14) = * Fixed: Skroutz template additional image attribute tag * Added: Skroutz template multiple additional image attribute tag
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 4.5.10 |
Comparing to | |
See all releases |
Code changes from version 4.5.9 to 4.5.10
- README.txt +5 -1
- V5/API/V1/MerchantConfig.php +2 -2
- V5/Feed/Attributes.php +37 -0
- V5/Feed/Feed.php +22 -10
- V5/Feed/Product.php +43 -0
- V5/Filter/FilterInfo.php +232 -0
- V5/Helper/CommonHelper.php +0 -11
- V5/Helper/FeedHelper.php +31 -1
- V5/Helper/ProductHelper.php +63 -63
- V5/Merchant/MerchantAttributeReplaceFactory.php +7 -7
- V5/Merchant/MerchantAttributesFactory.php +599 -589
- V5/Query/BOTHQuery.php +6 -4
- V5/Query/QueryFactory.php +5 -5
- V5/Query/WCQuery.php +3 -2
- V5/Query/WPQuery.php +4 -4
- V5/{Feed/CustomFeed.php → Template/CustomTemplate.php} +4 -4
- V5/{Feed/Custom2Feed.php → Template/CustomXMLTemplate.php} +62 -62
- V5/{Feed/FacebookFeed.php → Template/FacebookTemplate.php} +4 -4
- V5/{Feed/GoogleReviewFeed.php → Template/GoogleReviewTemplate.php} +4 -4
- V5/{Feed/GoogleFeed.php → Template/GoogleTemplate.php} +3 -3
- V5/{Feed/PinterestFeed.php → Template/PinterestTemplate.php} +4 -4
- V5/Template/Template.php +22 -0
- V5/{Feed/FeedFactory.php → Template/TemplateFactory.php} +7 -7
- V5/{Feed/FeedInterface.php → Template/TemplateInterface.php} +2 -2
- V5/Utility/Config.php +305 -247
- includes/classes/class-woo-feed-constants.php +1 -1
- includes/classes/class-woo-feed-default-attributes.php +1289 -1269
- woo-feed.php +1 -1
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: WooCommerce Product Feed, WooCommerce, Google Shopping, Google Merchant, F
|
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 6.1
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.5.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -590,6 +590,10 @@ Using pro version:
|
|
590 |
|
591 |
== Changelog ==
|
592 |
|
|
|
|
|
|
|
|
|
593 |
= 4.5.9 (2022-11-08) =
|
594 |
* Fixed: PHP Warning: Uninitialized string offset.
|
595 |
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 6.1
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.5.10
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
590 |
|
591 |
== Changelog ==
|
592 |
|
593 |
+
= 4.5.10 (2022-11-14) =
|
594 |
+
* Fixed: Skroutz template additional image attribute tag
|
595 |
+
* Added: Skroutz template multiple additional image attribute tag
|
596 |
+
|
597 |
= 4.5.9 (2022-11-08) =
|
598 |
* Fixed: PHP Warning: Uninitialized string offset.
|
599 |
|
V5/API/V1/MerchantConfig.php
CHANGED
@@ -5,7 +5,7 @@ namespace CTXFeed\V5\API\V1;
|
|
5 |
namespace CTXFeed\V5\API\V1;
|
6 |
|
7 |
use CTXFeed\V5\API\RestController;
|
8 |
-
use CTXFeed\V5\Helper\
|
9 |
use CTXFeed\V5\Merchant\TemplateConfig;
|
10 |
use CTXFeed\V5\Utility\Config;
|
11 |
use WP_REST_Server;
|
@@ -140,7 +140,7 @@ class MerchantConfig extends RestController {
|
|
140 |
return rest_ensure_response( $this->response );
|
141 |
}
|
142 |
|
143 |
-
$feedName =
|
144 |
$feedInfo = get_option( 'wf_config' . $feedName, false );
|
145 |
|
146 |
if ( $feedInfo ) {
|
5 |
namespace CTXFeed\V5\API\V1;
|
6 |
|
7 |
use CTXFeed\V5\API\RestController;
|
8 |
+
use CTXFeed\V5\Helper\FeedHelper;
|
9 |
use CTXFeed\V5\Merchant\TemplateConfig;
|
10 |
use CTXFeed\V5\Utility\Config;
|
11 |
use WP_REST_Server;
|
140 |
return rest_ensure_response( $this->response );
|
141 |
}
|
142 |
|
143 |
+
$feedName = FeedHelper::get_feed_option_name( $feedName );
|
144 |
$feedInfo = get_option( 'wf_config' . $feedName, false );
|
145 |
|
146 |
if ( $feedInfo ) {
|
V5/Feed/Attributes.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CTXFeed\V5\Feed;
|
4 |
+
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class ProductAttribute
|
8 |
+
*
|
9 |
+
* @package CTXFeed
|
10 |
+
* @subpackage CTXFeed\V5\Feed
|
11 |
+
* @author Ohidul Islam <wahid0003@gmail.com>
|
12 |
+
* @link https://webappick.com
|
13 |
+
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
|
14 |
+
* @category MyCategory
|
15 |
+
*/
|
16 |
+
class Attributes {
|
17 |
+
/**
|
18 |
+
* @return void
|
19 |
+
*/
|
20 |
+
public static function getAttributes( ) {
|
21 |
+
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @return void
|
26 |
+
*/
|
27 |
+
public static function saveAttributes( ) {
|
28 |
+
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* @return void
|
33 |
+
*/
|
34 |
+
public static function updateAttributes( ) {
|
35 |
+
|
36 |
+
}
|
37 |
+
}
|
V5/Feed/Feed.php
CHANGED
@@ -1,22 +1,34 @@
|
|
1 |
<?php
|
|
|
2 |
namespace CTXFeed\V5\Feed;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
class Feed {
|
4 |
-
private $template;
|
5 |
|
6 |
-
public function
|
7 |
-
|
8 |
}
|
9 |
|
10 |
-
public function
|
11 |
-
|
12 |
}
|
13 |
|
14 |
-
public function
|
15 |
-
|
16 |
}
|
17 |
|
18 |
-
public function
|
19 |
-
|
20 |
}
|
21 |
|
22 |
-
}
|
1 |
<?php
|
2 |
+
|
3 |
namespace CTXFeed\V5\Feed;
|
4 |
+
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class Feed
|
8 |
+
*
|
9 |
+
* @package CTXFeed
|
10 |
+
* @subpackage CTXFeed\V5\Feed
|
11 |
+
* @author Ohidul Islam <wahid0003@gmail.com>
|
12 |
+
* @link https://webappick.com
|
13 |
+
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
|
14 |
+
* @category MyCategory
|
15 |
+
*/
|
16 |
class Feed {
|
|
|
17 |
|
18 |
+
public static function getFeed( ) {
|
19 |
+
|
20 |
}
|
21 |
|
22 |
+
public static function makeFeed( ) {
|
23 |
+
|
24 |
}
|
25 |
|
26 |
+
public static function updateFeed( ) {
|
27 |
+
|
28 |
}
|
29 |
|
30 |
+
public static function deleteFeed( ) {
|
31 |
+
|
32 |
}
|
33 |
|
34 |
+
}
|
V5/Feed/Product.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CTXFeed\V5\Feed;
|
4 |
+
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class Product
|
8 |
+
*
|
9 |
+
* @package CTXFeed
|
10 |
+
* @subpackage CTXFeed\V5\Feed
|
11 |
+
* @author Ohidul Islam <wahid0003@gmail.com>
|
12 |
+
* @link https://webappick.com
|
13 |
+
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
|
14 |
+
* @category MyCategory
|
15 |
+
*/
|
16 |
+
class Product {
|
17 |
+
|
18 |
+
public static function addProduct() {
|
19 |
+
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function addProducts() {
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
public static function updateProduct() {
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
public static function updateProducts() {
|
31 |
+
|
32 |
+
}
|
33 |
+
|
34 |
+
public static function deleteProduct( ) {
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
public static function deleteProducts( ) {
|
39 |
+
|
40 |
+
}
|
41 |
+
|
42 |
+
|
43 |
+
}
|
V5/Filter/FilterInfo.php
CHANGED
@@ -2,6 +2,238 @@
|
|
2 |
|
3 |
namespace CTXFeed\V5\Filter;
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
class FilterInfo {
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
}
|
2 |
|
3 |
namespace CTXFeed\V5\Filter;
|
4 |
|
5 |
+
use CTXFeed\V5\Helper\ProductHelper;
|
6 |
+
use CTXFeed\V5\Utility\Config;
|
7 |
+
use CTXFeed\V5\Utility\Settings;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Class FilterInfo
|
11 |
+
*
|
12 |
+
* @package CTXFeed
|
13 |
+
* @subpackage CTXFeed\V5\Filter
|
14 |
+
* @author Ohidul Islam <wahid0003@gmail.com>
|
15 |
+
* @link https://webappick.com
|
16 |
+
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
|
17 |
+
* @category Filter
|
18 |
+
*/
|
19 |
class FilterInfo {
|
20 |
|
21 |
+
/**
|
22 |
+
* Get Product Ids or count product ids via WC_Product_Query
|
23 |
+
* @param $args
|
24 |
+
* @param bool $count
|
25 |
+
*
|
26 |
+
* @return array|int|null
|
27 |
+
*/
|
28 |
+
public function getProductsWC( $args = [], $count = true ) {
|
29 |
+
$config = new Config( [] );
|
30 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
31 |
+
Settings::set( 'product_query_type', 'wc' );
|
32 |
+
$default_args = [
|
33 |
+
'limit' => - 1,
|
34 |
+
'status' => 'publish',
|
35 |
+
'return' => 'ids',
|
36 |
+
];
|
37 |
+
|
38 |
+
$args = wp_parse_args( $args, $default_args );
|
39 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
40 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
41 |
+
|
42 |
+
if ( $count ) {
|
43 |
+
return count( $Ids );
|
44 |
+
}
|
45 |
+
|
46 |
+
return $Ids;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Get Product Ids or count product ids via WP_Query
|
51 |
+
* @param $args
|
52 |
+
* @param $count
|
53 |
+
*
|
54 |
+
* @return array|int|null
|
55 |
+
*/
|
56 |
+
public function getProductsWP( $args = [], $count = true ) {
|
57 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
58 |
+
Settings::set( 'product_query_type', 'wp' );
|
59 |
+
$config = new Config( [] );
|
60 |
+
$default_args = [
|
61 |
+
'posts_per_page' => - 1,
|
62 |
+
'post_type' => [ 'product', 'product_variation' ],
|
63 |
+
'post_status' => 'publish',
|
64 |
+
'fields' => 'ids',
|
65 |
+
];
|
66 |
+
$args = wp_parse_args( $args, $default_args );
|
67 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
68 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
69 |
+
|
70 |
+
if ( $count ) {
|
71 |
+
return count( $Ids );
|
72 |
+
}
|
73 |
+
|
74 |
+
return $Ids;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Count out of stock products.
|
79 |
+
*
|
80 |
+
* @return array|int|null
|
81 |
+
*/
|
82 |
+
public function getOutOfStockProducts( $count = true ) {
|
83 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
84 |
+
Settings::set( 'product_query_type', 'wc' );
|
85 |
+
$config = new Config( [] );
|
86 |
+
$args = [
|
87 |
+
'limit' => - 1,
|
88 |
+
'stock_status' => 'outofstock',
|
89 |
+
'status' => 'publish',
|
90 |
+
'return' => 'ids',
|
91 |
+
];
|
92 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
93 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
94 |
+
|
95 |
+
if ( $count ) {
|
96 |
+
return count( $Ids );
|
97 |
+
}
|
98 |
+
|
99 |
+
return $Ids;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Count on back order products.
|
104 |
+
*
|
105 |
+
* @return int|null
|
106 |
+
*/
|
107 |
+
public function getBackOrderProducts() {
|
108 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
109 |
+
Settings::set( 'product_query_type', 'wc' );
|
110 |
+
$config = new Config( [] );
|
111 |
+
$args = [
|
112 |
+
'limit' => - 1,
|
113 |
+
'stock_status' => 'onbackorder',
|
114 |
+
'status' => 'publish',
|
115 |
+
'return' => 'ids',
|
116 |
+
];
|
117 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
118 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
119 |
+
|
120 |
+
return count( $Ids );
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Count Hidden products.
|
125 |
+
*
|
126 |
+
* @return int|null
|
127 |
+
*/
|
128 |
+
public function getHiddenProducts() {
|
129 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
130 |
+
Settings::set( 'product_query_type', 'wc' );
|
131 |
+
$config = new Config( [] );
|
132 |
+
$args = [
|
133 |
+
'limit' => - 1,
|
134 |
+
'visibility' => 'hidden',
|
135 |
+
'status' => 'publish',
|
136 |
+
'return' => 'ids',
|
137 |
+
];
|
138 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
139 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
140 |
+
|
141 |
+
return count( $Ids );
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Count empty title products.
|
146 |
+
*
|
147 |
+
* @return int|null
|
148 |
+
*/
|
149 |
+
public function getEmptyTitleProducts() {
|
150 |
+
global $wpdb;
|
151 |
+
$emptyPosts = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title ='' AND post_type='product' AND 'post_status'='publish'" ) );
|
152 |
+
|
153 |
+
return count( $emptyPosts );
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* Count empty description products.
|
158 |
+
*
|
159 |
+
* @return int|null
|
160 |
+
*/
|
161 |
+
public function getDescriptionProducts() {
|
162 |
+
global $wpdb;
|
163 |
+
$emptyPosts = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_content ='' AND post_type='product' AND 'post_status'='publish'" ) );
|
164 |
+
|
165 |
+
return count( $emptyPosts );
|
166 |
+
}
|
167 |
+
|
168 |
+
public function getEmptyPriceProducts() {
|
169 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
170 |
+
Settings::set( 'product_query_type', 'wp' );
|
171 |
+
$config = new Config( [] );
|
172 |
+
$args = [
|
173 |
+
'posts_per_page' => - 1,
|
174 |
+
'post_type' => [ 'product', 'product_variation' ],
|
175 |
+
'post_status' => 'publish',
|
176 |
+
'fields' => 'ids',
|
177 |
+
];
|
178 |
+
|
179 |
+
$args['meta_query'] = array( // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
|
180 |
+
array(
|
181 |
+
'key' => '_regular_price',
|
182 |
+
'compare' => '>',
|
183 |
+
'value' => '0'
|
184 |
+
),
|
185 |
+
);
|
186 |
+
|
187 |
+
$args2 = [
|
188 |
+
'posts_per_page' => - 1,
|
189 |
+
'post_type' => [ 'product', 'product_variation' ],
|
190 |
+
'post_status' => 'publish',
|
191 |
+
'fields' => 'ids',
|
192 |
+
];
|
193 |
+
|
194 |
+
$allIds = ProductHelper::get_ids( $config, $args2 );
|
195 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
196 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
197 |
+
|
198 |
+
return count( $allIds ) - count( $Ids );
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* Count empty image products.
|
203 |
+
*
|
204 |
+
* @return int|null
|
205 |
+
*/
|
206 |
+
public function getEmptyImageProducts() {
|
207 |
+
$oldQueryType = Settings::get( 'product_query_type' );
|
208 |
+
Settings::set( 'product_query_type', 'wp' );
|
209 |
+
$config = new Config( [] );
|
210 |
+
$args = [
|
211 |
+
'posts_per_page' => - 1,
|
212 |
+
'post_type' => 'product',
|
213 |
+
'post_status' => 'publish',
|
214 |
+
'fields' => 'ids',
|
215 |
+
];
|
216 |
+
|
217 |
+
$args['meta_query'] = array( // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
|
218 |
+
array(
|
219 |
+
'key' => '_thumbnail_id',
|
220 |
+
'compare' => '>',
|
221 |
+
'value' => '0'
|
222 |
+
),
|
223 |
+
);
|
224 |
+
|
225 |
+
$args2 = [
|
226 |
+
'posts_per_page' => - 1,
|
227 |
+
'post_type' => 'product',
|
228 |
+
'post_status' => 'publish',
|
229 |
+
'fields' => 'ids',
|
230 |
+
];
|
231 |
+
|
232 |
+
$allIds = ProductHelper::get_ids( $config, $args2 );
|
233 |
+
$Ids = ProductHelper::get_ids( $config, $args );
|
234 |
+
Settings::set( 'product_query_type', $oldQueryType );
|
235 |
+
|
236 |
+
return count( $allIds ) - count( $Ids );
|
237 |
+
}
|
238 |
+
|
239 |
}
|
V5/Helper/CommonHelper.php
CHANGED
@@ -58,17 +58,6 @@ class CommonHelper {
|
|
58 |
return $url;
|
59 |
}
|
60 |
|
61 |
-
/**
|
62 |
-
* Remove Feed Option Name Prefix and return the slug
|
63 |
-
*
|
64 |
-
* @param string $feed
|
65 |
-
*
|
66 |
-
* @return string
|
67 |
-
*/
|
68 |
-
public static function get_feed_option_name( $feed ) {
|
69 |
-
return str_replace( [ 'wf_feed_', 'wf_config' ], '', $feed );
|
70 |
-
}
|
71 |
-
|
72 |
/**
|
73 |
* Check WooCommerce Version
|
74 |
*
|
58 |
return $url;
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
/**
|
62 |
* Check WooCommerce Version
|
63 |
*
|
V5/Helper/FeedHelper.php
CHANGED
@@ -1,7 +1,37 @@
|
|
1 |
<?php
|
|
|
2 |
namespace CTXFeed\V5\Helper;
|
3 |
class FeedHelper {
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
-
}
|
1 |
<?php
|
2 |
+
|
3 |
namespace CTXFeed\V5\Helper;
|
4 |
class FeedHelper {
|
5 |
|
6 |
+
/** Sanitize Feed Configs
|
7 |
+
* @param $data
|
8 |
+
*
|
9 |
+
* @return mixed
|
10 |
+
*/
|
11 |
+
public static function sanitize_form_fields( $data ) {
|
12 |
+
foreach ( $data as $k => $v ) {
|
13 |
+
if ( true === apply_filters( 'woo_feed_sanitize_form_fields', true, $k, $v, $data ) ) {
|
14 |
+
if ( is_array( $v ) ) {
|
15 |
+
$v = woo_feed_sanitize_form_fields( $v );
|
16 |
+
} else {
|
17 |
+
// $v = sanitize_text_field( $v ); #TODO should not trim Prefix and Suffix field
|
18 |
+
}
|
19 |
+
}
|
20 |
+
$data[ $k ] = apply_filters( 'woo_feed_sanitize_form_field', $v, $k );
|
21 |
+
}
|
22 |
+
|
23 |
+
return $data;
|
24 |
+
}
|
25 |
|
26 |
+
/**
|
27 |
+
* Remove Feed Option Name Prefix and return the slug
|
28 |
+
*
|
29 |
+
* @param string $feed
|
30 |
+
*
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
public static function get_feed_option_name( $feed ) {
|
34 |
+
return str_replace( [ 'wf_feed_', 'wf_config' ], '', $feed );
|
35 |
+
}
|
36 |
|
37 |
+
}
|
V5/Helper/ProductHelper.php
CHANGED
@@ -80,16 +80,17 @@ class ProductHelper {
|
|
80 |
* @var string
|
81 |
*/
|
82 |
const PRODUCT_CUSTOM_IDENTIFIER = 'woo_feed_';
|
83 |
-
|
84 |
/**
|
85 |
* @param Config $config Feed Configuration.
|
|
|
86 |
*
|
87 |
-
* @return
|
88 |
*/
|
89 |
-
public static function get_ids( $config ) {
|
90 |
-
return QueryFactory::get_ids( $config );
|
91 |
}
|
92 |
-
|
93 |
/**
|
94 |
* Get Product Gallery Items (URL) array.
|
95 |
* This can contains empty array values
|
@@ -102,7 +103,7 @@ class ProductHelper {
|
|
102 |
public static function get_product_gallery( $product ) {
|
103 |
$imgUrls = [];
|
104 |
$attachmentIds = [];
|
105 |
-
|
106 |
if ( $product->is_type( 'variation' ) ) {
|
107 |
if ( class_exists( 'Woo_Variation_Gallery' ) ) {
|
108 |
/**
|
@@ -137,7 +138,7 @@ class ProductHelper {
|
|
137 |
*/
|
138 |
$var_id = $product->get_id();
|
139 |
$parent_id = $product->get_parent_id();
|
140 |
-
|
141 |
$variation_obj = get_post_meta( $parent_id, 'woodmart_variation_gallery_data', true );
|
142 |
if ( isset( $variation_obj, $variation_obj[ $var_id ] ) ) {
|
143 |
$attachmentIds = explode( ',', $variation_obj[ $var_id ] );
|
@@ -151,7 +152,7 @@ class ProductHelper {
|
|
151 |
$attachmentIds = wc_get_product( $product->get_parent_id() )->get_gallery_image_ids();
|
152 |
}
|
153 |
}
|
154 |
-
|
155 |
/**
|
156 |
* Get Variable Product Gallery Image ids if Product is not a variation
|
157 |
* or variation does not have any gallery images
|
@@ -159,7 +160,7 @@ class ProductHelper {
|
|
159 |
if ( empty( $attachmentIds ) ) {
|
160 |
$attachmentIds = $product->get_gallery_image_ids();
|
161 |
}
|
162 |
-
|
163 |
if ( $attachmentIds && is_array( $attachmentIds ) ) {
|
164 |
$mKey = 1;
|
165 |
foreach ( $attachmentIds as $attachmentId ) {
|
@@ -167,10 +168,10 @@ class ProductHelper {
|
|
167 |
$mKey ++;
|
168 |
}
|
169 |
}
|
170 |
-
|
171 |
return $imgUrls;
|
172 |
}
|
173 |
-
|
174 |
/**
|
175 |
* Get Product Meta Value.
|
176 |
*
|
@@ -186,10 +187,10 @@ class ProductHelper {
|
|
186 |
if ( '' === $value && $product->is_type( 'variation' ) ) {
|
187 |
$value = get_post_meta( $product->get_parent_id(), $meta, true );
|
188 |
}
|
189 |
-
|
190 |
return apply_filters( 'woo_feed_filter_product_meta', $value, $product, $config );
|
191 |
}
|
192 |
-
|
193 |
/**
|
194 |
* Get Product Custom Field values.
|
195 |
*
|
@@ -204,9 +205,9 @@ class ProductHelper {
|
|
204 |
if ( $product->is_type( 'variation' ) ) {
|
205 |
$meta = $field . '_var';
|
206 |
}
|
207 |
-
|
208 |
$meta = apply_filters( 'woo_feed_custom_field_meta', $meta, $product, $config );
|
209 |
-
|
210 |
if ( strpos( $meta, '_identifier' ) !== false ) {
|
211 |
$old_meta_key = $meta;
|
212 |
$new_meta_key = str_replace( '_identifier', '', $meta );
|
@@ -214,25 +215,25 @@ class ProductHelper {
|
|
214 |
$new_meta_key = $meta;
|
215 |
$old_meta_key = str_replace( 'woo_feed_', 'woo_feed_identifier_', $meta );
|
216 |
}
|
217 |
-
|
218 |
$new_meta_value = self::get_product_meta( $new_meta_key, $product, $config );
|
219 |
$old_meta_value = self::get_product_meta( $old_meta_key, $product, $config );
|
220 |
-
|
221 |
if ( empty( $new_meta_value ) ) {
|
222 |
return self::format_custom_field_value( $old_meta_value, $meta );
|
223 |
}
|
224 |
-
|
225 |
return self::format_custom_field_value( $new_meta_value, $meta );
|
226 |
}
|
227 |
-
|
228 |
private static function format_custom_field_value( $value, $meta ) {
|
229 |
if ( strpos( $meta, 'availability_date' ) ) {
|
230 |
return date( 'c', strtotime( $value ) );
|
231 |
}
|
232 |
-
|
233 |
return $value;
|
234 |
}
|
235 |
-
|
236 |
/**
|
237 |
* Get Product Taxonomy.
|
238 |
*
|
@@ -246,15 +247,15 @@ class ProductHelper {
|
|
246 |
$id = woo_feed_parent_product_id( $product );
|
247 |
$separator = apply_filters( 'woo_feed_product_taxonomy_term_list_separator', ',', $config, $product );
|
248 |
$term_list = get_the_term_list( $id, $taxonomy, '', $separator, '' );
|
249 |
-
|
250 |
if ( is_object( $term_list ) && get_class( $term_list ) === 'WP_Error' ) {
|
251 |
$term_list = '';
|
252 |
}
|
253 |
$getTaxonomy = woo_feed_strip_all_tags( $term_list );
|
254 |
-
|
255 |
return apply_filters( 'woo_feed_filter_product_taxonomy', $getTaxonomy, $product, $config );
|
256 |
}
|
257 |
-
|
258 |
/**
|
259 |
* Ger Product Attribute
|
260 |
*
|
@@ -268,29 +269,28 @@ class ProductHelper {
|
|
268 |
*/
|
269 |
public static function get_product_attribute( $attr, $product, $config ) {
|
270 |
$id = $product->get_id();
|
271 |
-
|
272 |
if ( woo_feed_wc_version_check( 3.2 ) ) {
|
273 |
if ( woo_feed_wc_version_check( 3.6 ) ) {
|
274 |
$attr = str_replace( 'pa_', '', $attr );
|
275 |
}
|
276 |
$value = $product->get_attribute( $attr );
|
277 |
-
|
278 |
// if empty get attribute of parent post
|
279 |
if ( '' === $value && $product->is_type( 'variation' ) ) {
|
280 |
$product = wc_get_product( $product->get_parent_id() );
|
281 |
$value = $product->get_attribute( $attr );
|
282 |
}
|
283 |
-
|
284 |
$getAttribute = $value;
|
285 |
} else {
|
286 |
$getAttribute = implode( ',', wc_get_product_terms( $id, $attr, array( 'fields' => 'names' ) ) );
|
287 |
}
|
288 |
-
|
289 |
return apply_filters( 'woo_feed_filter_product_attribute', $getAttribute, $attr, $product, $config );
|
290 |
}
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
/**
|
295 |
* Get ACF Field values
|
296 |
*
|
@@ -307,10 +307,10 @@ class ProductHelper {
|
|
307 |
if ( class_exists( 'ACF' ) ) {
|
308 |
return get_field( $field, $product->get_id() );
|
309 |
}
|
310 |
-
|
311 |
return '';
|
312 |
}
|
313 |
-
|
314 |
/**
|
315 |
* Return Category Mapping Values by Product Id [Parent Product for variation]
|
316 |
*
|
@@ -333,21 +333,21 @@ class ProductHelper {
|
|
333 |
'bing_local_inventory',
|
334 |
'snapchat'
|
335 |
);
|
336 |
-
|
337 |
if ( ! isset( $getValue['cmapping'] ) && ! isset( $getValue['gcl-cmapping'] ) ) {
|
338 |
return '';
|
339 |
}
|
340 |
-
|
341 |
//get product terms
|
342 |
$categories = get_the_terms( $product_id, 'product_cat' );
|
343 |
-
|
344 |
//get cmapping value
|
345 |
if ( isset( $getValue['gcl-cmapping'] ) && in_array( $getValue['mappingprovider'], $suggestive_category_list_merchants, true ) ) {
|
346 |
$cmapping = is_array( $getValue['gcl-cmapping'] ) ? array_reverse( $getValue['gcl-cmapping'], true ) : $getValue['gcl-cmapping'];
|
347 |
} else {
|
348 |
$cmapping = is_array( $getValue['cmapping'] ) ? array_reverse( $getValue['cmapping'], true ) : $getValue['cmapping'];
|
349 |
}
|
350 |
-
|
351 |
// Fixes empty mapped category issue
|
352 |
if ( ! empty( $categories ) && is_array( $categories ) && count( $categories ) ) {
|
353 |
$categories = array_reverse( $categories );
|
@@ -358,10 +358,10 @@ class ProductHelper {
|
|
358 |
}
|
359 |
}
|
360 |
}
|
361 |
-
|
362 |
return $cat_map_value;
|
363 |
}
|
364 |
-
|
365 |
/**
|
366 |
* Get Attribute Mapping Value.
|
367 |
*
|
@@ -380,7 +380,7 @@ class ProductHelper {
|
|
380 |
$attributes = get_option( $attribute );
|
381 |
$glue = ! empty( $attributes['glue'] ) ? $attributes['glue'] : " ";
|
382 |
$output = '';
|
383 |
-
|
384 |
if ( isset( $attributes['mapping'] ) ) {
|
385 |
foreach ( $attributes['mapping'] as $map ) {
|
386 |
$get_value = $getAttributeValueByType->get_value( $map );
|
@@ -389,16 +389,16 @@ class ProductHelper {
|
|
389 |
}
|
390 |
}
|
391 |
}
|
392 |
-
|
393 |
//trim extra glue
|
394 |
$output = trim( $output, $glue );
|
395 |
-
|
396 |
// remove extra whitespace
|
397 |
$output = preg_replace( '!\s\s+!', ' ', $output );
|
398 |
-
|
399 |
return apply_filters( 'woo_feed_filter_attribute_mapping', $output, $attribute, $product, $config );
|
400 |
}
|
401 |
-
|
402 |
/**
|
403 |
* Get the value of a dynamic attribute
|
404 |
*
|
@@ -421,19 +421,19 @@ class ProductHelper {
|
|
421 |
$condition = isset( $getValue['condition'] ) ? (array) $getValue['condition'] : array();
|
422 |
$compare = isset( $getValue['compare'] ) ? (array) $getValue['compare'] : array();
|
423 |
$type = isset( $getValue['type'] ) ? (array) $getValue['type'] : array();
|
424 |
-
|
425 |
$prefix = isset( $getValue['prefix'] ) ? (array) $getValue['prefix'] : array();
|
426 |
$suffix = isset( $getValue['suffix'] ) ? (array) $getValue['suffix'] : array();
|
427 |
-
|
428 |
$value_attribute = isset( $getValue['value_attribute'] ) ? (array) $getValue['value_attribute'] : array();
|
429 |
$value_pattern = isset( $getValue['value_pattern'] ) ? (array) $getValue['value_pattern'] : array();
|
430 |
-
|
431 |
$default_type = isset( $getValue['default_type'] ) ? $getValue['default_type'] : 'attribute';
|
432 |
$default_value_attribute = isset( $getValue['default_value_attribute'] ) ? $getValue['default_value_attribute'] : '';
|
433 |
$default_value_pattern = isset( $getValue['default_value_pattern'] ) ? $getValue['default_value_pattern'] : '';
|
434 |
-
|
435 |
$result = '';
|
436 |
-
|
437 |
// Check If Attribute Code exist
|
438 |
if ( $wfDAttributeCode && count( $attribute ) ) {
|
439 |
foreach ( $attribute as $key => $name ) {
|
@@ -445,10 +445,10 @@ class ProductHelper {
|
|
445 |
$conditionName = (float) str_replace( $unit, '', $conditionName );
|
446 |
}
|
447 |
}
|
448 |
-
|
449 |
$conditionCompare = $compare[ $key ];
|
450 |
$conditionOperator = $condition[ $key ];
|
451 |
-
|
452 |
if ( ! empty( $conditionCompare ) ) {
|
453 |
$conditionCompare = trim( $conditionCompare );
|
454 |
}
|
@@ -460,7 +460,7 @@ class ProductHelper {
|
|
460 |
} elseif ( 'remove' === $type[ $key ] ) {
|
461 |
$conditionValue = '';
|
462 |
}
|
463 |
-
|
464 |
switch ( $conditionOperator ) {
|
465 |
case '==':
|
466 |
if ( $conditionName == $conditionCompare ) {
|
@@ -485,7 +485,7 @@ class ProductHelper {
|
|
485 |
$result = $prefix[ $key ] . $result . $suffix[ $key ];
|
486 |
}
|
487 |
}
|
488 |
-
|
489 |
break;
|
490 |
case '<=':
|
491 |
if ( $conditionName <= $conditionCompare ) {
|
@@ -529,7 +529,7 @@ class ProductHelper {
|
|
529 |
break;
|
530 |
case 'between':
|
531 |
$compare_items = explode( ',', $conditionCompare );
|
532 |
-
|
533 |
if ( isset( $compare_items[1] ) && is_numeric( $compare_items[0] ) && is_numeric( $compare_items[1] ) ) {
|
534 |
if ( $conditionName >= $compare_items[0] && $conditionName <= $compare_items[1] ) {
|
535 |
$result = self::price_format( $name, $conditionName, $conditionValue );
|
@@ -547,7 +547,7 @@ class ProductHelper {
|
|
547 |
}
|
548 |
}
|
549 |
}
|
550 |
-
|
551 |
if ( '' === $result ) {
|
552 |
if ( 'pattern' === $default_type ) {
|
553 |
$result = $default_value_pattern;
|
@@ -559,10 +559,10 @@ class ProductHelper {
|
|
559 |
$result = '';
|
560 |
}
|
561 |
}
|
562 |
-
|
563 |
return apply_filters( 'woo_feed_after_dynamic_attribute_value', $result, $product, $attributeName, $merchant_attribute, $config );
|
564 |
}
|
565 |
-
|
566 |
/**
|
567 |
* Format price value
|
568 |
*
|
@@ -619,10 +619,10 @@ class ProductHelper {
|
|
619 |
}
|
620 |
}
|
621 |
}
|
622 |
-
|
623 |
return $result;
|
624 |
}
|
625 |
-
|
626 |
/**
|
627 |
* Get attribute value by type
|
628 |
*
|
@@ -638,7 +638,7 @@ class ProductHelper {
|
|
638 |
) {
|
639 |
return ( new AttributeValueByType( $attribute, $product, $config, $merchant_attribute ) )->get_value();
|
640 |
}
|
641 |
-
|
642 |
/**
|
643 |
* @param string $output
|
644 |
* @param string $productAttribute
|
@@ -655,14 +655,14 @@ class ProductHelper {
|
|
655 |
if ( empty( $str_replace['subject'] ) || $productAttribute !== $str_replace['subject'] ) {
|
656 |
continue;
|
657 |
}
|
658 |
-
|
659 |
if ( strpos( $str_replace['search'], '/' ) === false ) {
|
660 |
$output = preg_replace( stripslashes( '/' . $str_replace['search'] . '/mi' ), $str_replace['replace'], $output );
|
661 |
} else {
|
662 |
$output = str_replace( $str_replace['search'], $str_replace['replace'], $output );
|
663 |
}
|
664 |
}
|
665 |
-
|
666 |
return $output;
|
667 |
}
|
668 |
-
}
|
80 |
* @var string
|
81 |
*/
|
82 |
const PRODUCT_CUSTOM_IDENTIFIER = 'woo_feed_';
|
83 |
+
|
84 |
/**
|
85 |
* @param Config $config Feed Configuration.
|
86 |
+
* @param array $args Query Arguments
|
87 |
*
|
88 |
+
* @return array
|
89 |
*/
|
90 |
+
public static function get_ids( $config, $args = [], $settings = null ) {
|
91 |
+
return QueryFactory::get_ids( $config, $args, $settings );
|
92 |
}
|
93 |
+
|
94 |
/**
|
95 |
* Get Product Gallery Items (URL) array.
|
96 |
* This can contains empty array values
|
103 |
public static function get_product_gallery( $product ) {
|
104 |
$imgUrls = [];
|
105 |
$attachmentIds = [];
|
106 |
+
|
107 |
if ( $product->is_type( 'variation' ) ) {
|
108 |
if ( class_exists( 'Woo_Variation_Gallery' ) ) {
|
109 |
/**
|
138 |
*/
|
139 |
$var_id = $product->get_id();
|
140 |
$parent_id = $product->get_parent_id();
|
141 |
+
|
142 |
$variation_obj = get_post_meta( $parent_id, 'woodmart_variation_gallery_data', true );
|
143 |
if ( isset( $variation_obj, $variation_obj[ $var_id ] ) ) {
|
144 |
$attachmentIds = explode( ',', $variation_obj[ $var_id ] );
|
152 |
$attachmentIds = wc_get_product( $product->get_parent_id() )->get_gallery_image_ids();
|
153 |
}
|
154 |
}
|
155 |
+
|
156 |
/**
|
157 |
* Get Variable Product Gallery Image ids if Product is not a variation
|
158 |
* or variation does not have any gallery images
|
160 |
if ( empty( $attachmentIds ) ) {
|
161 |
$attachmentIds = $product->get_gallery_image_ids();
|
162 |
}
|
163 |
+
|
164 |
if ( $attachmentIds && is_array( $attachmentIds ) ) {
|
165 |
$mKey = 1;
|
166 |
foreach ( $attachmentIds as $attachmentId ) {
|
168 |
$mKey ++;
|
169 |
}
|
170 |
}
|
171 |
+
|
172 |
return $imgUrls;
|
173 |
}
|
174 |
+
|
175 |
/**
|
176 |
* Get Product Meta Value.
|
177 |
*
|
187 |
if ( '' === $value && $product->is_type( 'variation' ) ) {
|
188 |
$value = get_post_meta( $product->get_parent_id(), $meta, true );
|
189 |
}
|
190 |
+
|
191 |
return apply_filters( 'woo_feed_filter_product_meta', $value, $product, $config );
|
192 |
}
|
193 |
+
|
194 |
/**
|
195 |
* Get Product Custom Field values.
|
196 |
*
|
205 |
if ( $product->is_type( 'variation' ) ) {
|
206 |
$meta = $field . '_var';
|
207 |
}
|
208 |
+
|
209 |
$meta = apply_filters( 'woo_feed_custom_field_meta', $meta, $product, $config );
|
210 |
+
|
211 |
if ( strpos( $meta, '_identifier' ) !== false ) {
|
212 |
$old_meta_key = $meta;
|
213 |
$new_meta_key = str_replace( '_identifier', '', $meta );
|
215 |
$new_meta_key = $meta;
|
216 |
$old_meta_key = str_replace( 'woo_feed_', 'woo_feed_identifier_', $meta );
|
217 |
}
|
218 |
+
|
219 |
$new_meta_value = self::get_product_meta( $new_meta_key, $product, $config );
|
220 |
$old_meta_value = self::get_product_meta( $old_meta_key, $product, $config );
|
221 |
+
|
222 |
if ( empty( $new_meta_value ) ) {
|
223 |
return self::format_custom_field_value( $old_meta_value, $meta );
|
224 |
}
|
225 |
+
|
226 |
return self::format_custom_field_value( $new_meta_value, $meta );
|
227 |
}
|
228 |
+
|
229 |
private static function format_custom_field_value( $value, $meta ) {
|
230 |
if ( strpos( $meta, 'availability_date' ) ) {
|
231 |
return date( 'c', strtotime( $value ) );
|
232 |
}
|
233 |
+
|
234 |
return $value;
|
235 |
}
|
236 |
+
|
237 |
/**
|
238 |
* Get Product Taxonomy.
|
239 |
*
|
247 |
$id = woo_feed_parent_product_id( $product );
|
248 |
$separator = apply_filters( 'woo_feed_product_taxonomy_term_list_separator', ',', $config, $product );
|
249 |
$term_list = get_the_term_list( $id, $taxonomy, '', $separator, '' );
|
250 |
+
|
251 |
if ( is_object( $term_list ) && get_class( $term_list ) === 'WP_Error' ) {
|
252 |
$term_list = '';
|
253 |
}
|
254 |
$getTaxonomy = woo_feed_strip_all_tags( $term_list );
|
255 |
+
|
256 |
return apply_filters( 'woo_feed_filter_product_taxonomy', $getTaxonomy, $product, $config );
|
257 |
}
|
258 |
+
|
259 |
/**
|
260 |
* Ger Product Attribute
|
261 |
*
|
269 |
*/
|
270 |
public static function get_product_attribute( $attr, $product, $config ) {
|
271 |
$id = $product->get_id();
|
272 |
+
|
273 |
if ( woo_feed_wc_version_check( 3.2 ) ) {
|
274 |
if ( woo_feed_wc_version_check( 3.6 ) ) {
|
275 |
$attr = str_replace( 'pa_', '', $attr );
|
276 |
}
|
277 |
$value = $product->get_attribute( $attr );
|
278 |
+
|
279 |
// if empty get attribute of parent post
|
280 |
if ( '' === $value && $product->is_type( 'variation' ) ) {
|
281 |
$product = wc_get_product( $product->get_parent_id() );
|
282 |
$value = $product->get_attribute( $attr );
|
283 |
}
|
284 |
+
|
285 |
$getAttribute = $value;
|
286 |
} else {
|
287 |
$getAttribute = implode( ',', wc_get_product_terms( $id, $attr, array( 'fields' => 'names' ) ) );
|
288 |
}
|
289 |
+
|
290 |
return apply_filters( 'woo_feed_filter_product_attribute', $getAttribute, $attr, $product, $config );
|
291 |
}
|
292 |
+
|
293 |
+
|
|
|
294 |
/**
|
295 |
* Get ACF Field values
|
296 |
*
|
307 |
if ( class_exists( 'ACF' ) ) {
|
308 |
return get_field( $field, $product->get_id() );
|
309 |
}
|
310 |
+
|
311 |
return '';
|
312 |
}
|
313 |
+
|
314 |
/**
|
315 |
* Return Category Mapping Values by Product Id [Parent Product for variation]
|
316 |
*
|
333 |
'bing_local_inventory',
|
334 |
'snapchat'
|
335 |
);
|
336 |
+
|
337 |
if ( ! isset( $getValue['cmapping'] ) && ! isset( $getValue['gcl-cmapping'] ) ) {
|
338 |
return '';
|
339 |
}
|
340 |
+
|
341 |
//get product terms
|
342 |
$categories = get_the_terms( $product_id, 'product_cat' );
|
343 |
+
|
344 |
//get cmapping value
|
345 |
if ( isset( $getValue['gcl-cmapping'] ) && in_array( $getValue['mappingprovider'], $suggestive_category_list_merchants, true ) ) {
|
346 |
$cmapping = is_array( $getValue['gcl-cmapping'] ) ? array_reverse( $getValue['gcl-cmapping'], true ) : $getValue['gcl-cmapping'];
|
347 |
} else {
|
348 |
$cmapping = is_array( $getValue['cmapping'] ) ? array_reverse( $getValue['cmapping'], true ) : $getValue['cmapping'];
|
349 |
}
|
350 |
+
|
351 |
// Fixes empty mapped category issue
|
352 |
if ( ! empty( $categories ) && is_array( $categories ) && count( $categories ) ) {
|
353 |
$categories = array_reverse( $categories );
|
358 |
}
|
359 |
}
|
360 |
}
|
361 |
+
|
362 |
return $cat_map_value;
|
363 |
}
|
364 |
+
|
365 |
/**
|
366 |
* Get Attribute Mapping Value.
|
367 |
*
|
380 |
$attributes = get_option( $attribute );
|
381 |
$glue = ! empty( $attributes['glue'] ) ? $attributes['glue'] : " ";
|
382 |
$output = '';
|
383 |
+
|
384 |
if ( isset( $attributes['mapping'] ) ) {
|
385 |
foreach ( $attributes['mapping'] as $map ) {
|
386 |
$get_value = $getAttributeValueByType->get_value( $map );
|
389 |
}
|
390 |
}
|
391 |
}
|
392 |
+
|
393 |
//trim extra glue
|
394 |
$output = trim( $output, $glue );
|
395 |
+
|
396 |
// remove extra whitespace
|
397 |
$output = preg_replace( '!\s\s+!', ' ', $output );
|
398 |
+
|
399 |
return apply_filters( 'woo_feed_filter_attribute_mapping', $output, $attribute, $product, $config );
|
400 |
}
|
401 |
+
|
402 |
/**
|
403 |
* Get the value of a dynamic attribute
|
404 |
*
|
421 |
$condition = isset( $getValue['condition'] ) ? (array) $getValue['condition'] : array();
|
422 |
$compare = isset( $getValue['compare'] ) ? (array) $getValue['compare'] : array();
|
423 |
$type = isset( $getValue['type'] ) ? (array) $getValue['type'] : array();
|
424 |
+
|
425 |
$prefix = isset( $getValue['prefix'] ) ? (array) $getValue['prefix'] : array();
|
426 |
$suffix = isset( $getValue['suffix'] ) ? (array) $getValue['suffix'] : array();
|
427 |
+
|
428 |
$value_attribute = isset( $getValue['value_attribute'] ) ? (array) $getValue['value_attribute'] : array();
|
429 |
$value_pattern = isset( $getValue['value_pattern'] ) ? (array) $getValue['value_pattern'] : array();
|
430 |
+
|
431 |
$default_type = isset( $getValue['default_type'] ) ? $getValue['default_type'] : 'attribute';
|
432 |
$default_value_attribute = isset( $getValue['default_value_attribute'] ) ? $getValue['default_value_attribute'] : '';
|
433 |
$default_value_pattern = isset( $getValue['default_value_pattern'] ) ? $getValue['default_value_pattern'] : '';
|
434 |
+
|
435 |
$result = '';
|
436 |
+
|
437 |
// Check If Attribute Code exist
|
438 |
if ( $wfDAttributeCode && count( $attribute ) ) {
|
439 |
foreach ( $attribute as $key => $name ) {
|
445 |
$conditionName = (float) str_replace( $unit, '', $conditionName );
|
446 |
}
|
447 |
}
|
448 |
+
|
449 |
$conditionCompare = $compare[ $key ];
|
450 |
$conditionOperator = $condition[ $key ];
|
451 |
+
|
452 |
if ( ! empty( $conditionCompare ) ) {
|
453 |
$conditionCompare = trim( $conditionCompare );
|
454 |
}
|
460 |
} elseif ( 'remove' === $type[ $key ] ) {
|
461 |
$conditionValue = '';
|
462 |
}
|
463 |
+
|
464 |
switch ( $conditionOperator ) {
|
465 |
case '==':
|
466 |
if ( $conditionName == $conditionCompare ) {
|
485 |
$result = $prefix[ $key ] . $result . $suffix[ $key ];
|
486 |
}
|
487 |
}
|
488 |
+
|
489 |
break;
|
490 |
case '<=':
|
491 |
if ( $conditionName <= $conditionCompare ) {
|
529 |
break;
|
530 |
case 'between':
|
531 |
$compare_items = explode( ',', $conditionCompare );
|
532 |
+
|
533 |
if ( isset( $compare_items[1] ) && is_numeric( $compare_items[0] ) && is_numeric( $compare_items[1] ) ) {
|
534 |
if ( $conditionName >= $compare_items[0] && $conditionName <= $compare_items[1] ) {
|
535 |
$result = self::price_format( $name, $conditionName, $conditionValue );
|
547 |
}
|
548 |
}
|
549 |
}
|
550 |
+
|
551 |
if ( '' === $result ) {
|
552 |
if ( 'pattern' === $default_type ) {
|
553 |
$result = $default_value_pattern;
|
559 |
$result = '';
|
560 |
}
|
561 |
}
|
562 |
+
|
563 |
return apply_filters( 'woo_feed_after_dynamic_attribute_value', $result, $product, $attributeName, $merchant_attribute, $config );
|
564 |
}
|
565 |
+
|
566 |
/**
|
567 |
* Format price value
|
568 |
*
|
619 |
}
|
620 |
}
|
621 |
}
|
622 |
+
|
623 |
return $result;
|
624 |
}
|
625 |
+
|
626 |
/**
|
627 |
* Get attribute value by type
|
628 |
*
|
638 |
) {
|
639 |
return ( new AttributeValueByType( $attribute, $product, $config, $merchant_attribute ) )->get_value();
|
640 |
}
|
641 |
+
|
642 |
/**
|
643 |
* @param string $output
|
644 |
* @param string $productAttribute
|
655 |
if ( empty( $str_replace['subject'] ) || $productAttribute !== $str_replace['subject'] ) {
|
656 |
continue;
|
657 |
}
|
658 |
+
|
659 |
if ( strpos( $str_replace['search'], '/' ) === false ) {
|
660 |
$output = preg_replace( stripslashes( '/' . $str_replace['search'] . '/mi' ), $str_replace['replace'], $output );
|
661 |
} else {
|
662 |
$output = str_replace( $str_replace['search'], $str_replace['replace'], $output );
|
663 |
}
|
664 |
}
|
665 |
+
|
666 |
return $output;
|
667 |
}
|
668 |
+
}
|
V5/Merchant/MerchantAttributeReplaceFactory.php
CHANGED
@@ -106,7 +106,7 @@ class MerchantAttributeReplaceFactory {
|
|
106 |
'attribute_name' => array( 'g:attribute_name', true ),
|
107 |
'attribute_value' => array( 'g:attribute_value', true ),
|
108 |
'product_highlight' => array( 'g:product_highlight', true ),
|
109 |
-
|
110 |
'material_1' => array( 'g:material', true ),
|
111 |
'material_2' => array( 'g:material', true ),
|
112 |
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
@@ -604,7 +604,7 @@ class MerchantAttributeReplaceFactory {
|
|
604 |
'description' => array( 'description', true ),
|
605 |
'link' => array( 'link', true ),
|
606 |
'image' => array( 'image', true ),
|
607 |
-
'
|
608 |
'category' => array( 'category', true ),
|
609 |
'price' => array( 'price', false ),
|
610 |
'price_with_vat' => array( 'price_with_vat', false ),
|
@@ -635,19 +635,19 @@ class MerchantAttributeReplaceFactory {
|
|
635 |
'CSV' => [],
|
636 |
'JSON' => [],
|
637 |
],
|
638 |
-
|
639 |
];
|
640 |
-
|
641 |
return $data[ $template ][ strtoupper( $file_type ) ];
|
642 |
}
|
643 |
-
|
644 |
public static function replace_attribute( $attribute, $config ) {
|
645 |
$feedType = ( 'xml' === $config->feedType ) ? 'xml' : 'csv';
|
646 |
$data = self::data( $config->provider, $feedType );
|
647 |
if ( isset( $data[ $attribute ] ) ) {
|
648 |
return $data[ $attribute ][0];
|
649 |
}
|
650 |
-
|
651 |
return $attribute;
|
652 |
}
|
653 |
-
}
|
106 |
'attribute_name' => array( 'g:attribute_name', true ),
|
107 |
'attribute_value' => array( 'g:attribute_value', true ),
|
108 |
'product_highlight' => array( 'g:product_highlight', true ),
|
109 |
+
|
110 |
'material_1' => array( 'g:material', true ),
|
111 |
'material_2' => array( 'g:material', true ),
|
112 |
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
604 |
'description' => array( 'description', true ),
|
605 |
'link' => array( 'link', true ),
|
606 |
'image' => array( 'image', true ),
|
607 |
+
'additional_imageurl' => array( 'additional_imageurl', true ),
|
608 |
'category' => array( 'category', true ),
|
609 |
'price' => array( 'price', false ),
|
610 |
'price_with_vat' => array( 'price_with_vat', false ),
|
635 |
'CSV' => [],
|
636 |
'JSON' => [],
|
637 |
],
|
638 |
+
|
639 |
];
|
640 |
+
|
641 |
return $data[ $template ][ strtoupper( $file_type ) ];
|
642 |
}
|
643 |
+
|
644 |
public static function replace_attribute( $attribute, $config ) {
|
645 |
$feedType = ( 'xml' === $config->feedType ) ? 'xml' : 'csv';
|
646 |
$data = self::data( $config->provider, $feedType );
|
647 |
if ( isset( $data[ $attribute ] ) ) {
|
648 |
return $data[ $attribute ][0];
|
649 |
}
|
650 |
+
|
651 |
return $attribute;
|
652 |
}
|
653 |
+
}
|
V5/Merchant/MerchantAttributesFactory.php
CHANGED
@@ -1,41 +1,41 @@
|
|
1 |
<?php
|
2 |
|
3 |
namespace CTXFeed\V5\Merchant;
|
|
|
4 |
class MerchantAttributesFactory {
|
5 |
-
|
6 |
public static function get( $template = null ) {
|
7 |
$data = self::data();
|
8 |
-
|
9 |
if ( $template === null ) {
|
10 |
return $data;
|
11 |
}
|
12 |
-
|
13 |
// Override Merchant Template.
|
14 |
-
|
15 |
-
if ( in_array( $template,
|
16 |
$template = 'google';
|
17 |
-
} elseif ( in_array( $template,
|
18 |
$template = 'become';
|
19 |
} elseif ( $template === 'fruugo.au' ) {
|
20 |
$template = 'fruugo';
|
21 |
} elseif ( $template === 'shopalike.fr' ) {
|
22 |
$template = 'kijiji.ca';
|
23 |
}
|
24 |
-
|
25 |
-
|
26 |
if ( isset( $data[ $template ] ) ) {
|
27 |
return $data[ $template ];
|
28 |
}
|
29 |
-
|
30 |
return false;
|
31 |
}
|
32 |
-
|
33 |
private static function data() {
|
34 |
-
return
|
35 |
-
'google' =>
|
36 |
-
1 =>
|
37 |
'optionGroup' => 'Basic Information',
|
38 |
-
'options' =>
|
39 |
'id' => 'Product Id[id]',
|
40 |
'webitemid' => 'Product WebItemId[webitemid]',
|
41 |
'region_id' => 'Region Id[region_id]',
|
@@ -59,11 +59,11 @@ class MerchantAttributesFactory {
|
|
59 |
'images_9' => 'Additional Image 9 [additional_image_link]',
|
60 |
'images_10' => 'Additional Image 10 [additional_image_link]',
|
61 |
'condition' => 'Condition[condition]',
|
62 |
-
|
63 |
-
|
64 |
-
2 =>
|
65 |
'optionGroup' => 'Availability & Price',
|
66 |
-
'options' =>
|
67 |
'availability' => 'Stock Status[availability]',
|
68 |
'availability_date' => 'Availability Date[availability_date]',
|
69 |
'inventory' => 'Facebook Inventory[inventory]',
|
@@ -72,20 +72,20 @@ class MerchantAttributesFactory {
|
|
72 |
'sale_price' => 'Sale Price[sale_price]',
|
73 |
'cost_of_goods_sold' => 'Cost of Goods Sold[cost_of_goods_sold]',
|
74 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
75 |
-
|
76 |
-
|
77 |
-
3 =>
|
78 |
'optionGroup' => 'Unique Product Identifiers',
|
79 |
-
'options' =>
|
80 |
'brand' => 'Manufacturer[brand]',
|
81 |
'upc' => 'GTIN[gtin]',
|
82 |
'sku' => 'MPN[mpn]',
|
83 |
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
84 |
-
|
85 |
-
|
86 |
-
4 =>
|
87 |
'optionGroup' => 'Detailed Product Attributes',
|
88 |
-
'options' =>
|
89 |
'item_group_id' => 'Item Group Id[item_group_id]',
|
90 |
'external_seller_id' => 'External seller ID[external_seller_id]',
|
91 |
'color' => 'Color[color]',
|
@@ -113,11 +113,11 @@ class MerchantAttributesFactory {
|
|
113 |
'section_name' => 'Section Name (Product Detail)[section_name]',
|
114 |
'attribute_name' => 'Attribute Name (Product Detail)[attribute_name]',
|
115 |
'attribute_value' => 'Attribute Value (Product Detail)[attribute_value]',
|
116 |
-
|
117 |
-
|
118 |
-
5 =>
|
119 |
'optionGroup' => 'Tax & Shipping',
|
120 |
-
'options' =>
|
121 |
'tax' => 'Tax[tax]',
|
122 |
'tax_category' => 'Tax[tax_category]',
|
123 |
'shipping' => 'Shipping',
|
@@ -136,50 +136,50 @@ class MerchantAttributesFactory {
|
|
136 |
'material_1' => 'The primary material',
|
137 |
'material_2' => 'The secondary material',
|
138 |
'material_3' => 'The tertiary material',
|
139 |
-
|
140 |
-
|
141 |
-
6 =>
|
142 |
'optionGroup' => 'Product Combinations',
|
143 |
-
'options' =>
|
144 |
'multipack' => 'Multipack[multipack]',
|
145 |
'is_bundle' => 'Is Bundle[is_bundle]',
|
146 |
-
|
147 |
-
|
148 |
-
7 =>
|
149 |
'optionGroup' => 'Adult Products',
|
150 |
-
'options' =>
|
151 |
'adult' => 'Adult[adult]',
|
152 |
-
|
153 |
-
|
154 |
-
8 =>
|
155 |
'optionGroup' => 'Ads Attributes',
|
156 |
-
'options' =>
|
157 |
'ads_redirect' => 'Ads Redirect[ads_redirect]',
|
158 |
-
|
159 |
-
|
160 |
-
9 =>
|
161 |
'optionGroup' => 'Custom Label Attributes',
|
162 |
-
'options' =>
|
163 |
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
164 |
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
165 |
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
166 |
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
167 |
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
168 |
-
|
169 |
-
|
170 |
-
10 =>
|
171 |
'optionGroup' => 'Additional Attributes',
|
172 |
-
'options' =>
|
173 |
'excluded_destination' => 'Excluded Destination[excluded_destination]',
|
174 |
'shopping_ads_excluded_country' => 'Shopping Ads Excluded Country[shopping_ads_excluded_country]',
|
175 |
'included_destination' => 'Included Destination[included_destination]',
|
176 |
'expiration_date' => 'Expiration Date [expiration_date]',
|
177 |
'transit_time_label' => 'Transit Time [transit_time_label]',
|
178 |
-
|
179 |
-
|
180 |
-
11 =>
|
181 |
'optionGroup' => 'Unit Prices, Subscription, and Installment',
|
182 |
-
'options' =>
|
183 |
'unit_pricing_measure' => 'Unit Pricing Measure[unit_pricing_measure]',
|
184 |
'unit_pricing_base_measure' => 'Unit Pricing Base Measure[unit_pricing_base_measure]',
|
185 |
'installment_months' => 'Installment Months[months]',
|
@@ -187,31 +187,31 @@ class MerchantAttributesFactory {
|
|
187 |
'subscription_period' => 'Subscription Period[period]',
|
188 |
'subscription_period_length' => 'Subscription Period Length[period_length]',
|
189 |
'subscription_amount' => 'Subscription Amount[amount]',
|
190 |
-
|
191 |
-
|
192 |
-
12 =>
|
193 |
'optionGroup' => 'Energy Labels',
|
194 |
-
'options' =>
|
195 |
'energy_efficiency_class' => 'Energy Efficiency Class[energy_efficiency_class]',
|
196 |
'min_energy_efficiency_class' => 'Min Energy Efficiency Class[energy_efficiency_class]',
|
197 |
'max_energy_efficiency_class' => 'Max Energy Efficiency Class[energy_efficiency_class]',
|
198 |
-
|
199 |
-
|
200 |
-
13 =>
|
201 |
'optionGroup' => 'Loyalty Points (Japan Only)',
|
202 |
-
'options' =>
|
203 |
'loyalty_points' => 'loyalty_points[loyalty_points]',
|
204 |
-
|
205 |
-
|
206 |
-
14 =>
|
207 |
'optionGroup' => 'Multiple Installments (Brazil Only)',
|
208 |
-
'options' =>
|
209 |
'installment' => 'Installment[installment]',
|
210 |
-
|
211 |
-
|
212 |
-
15 =>
|
213 |
'optionGroup' => 'Merchant Promotions Attributes',
|
214 |
-
'options' =>
|
215 |
'promotion_id' => 'Promotion Id[promotion_id]',
|
216 |
'product_applicability' => 'Product Applicability[product_applicability]',
|
217 |
'offer_type' => 'Offer Type[offer_type]',
|
@@ -238,20 +238,20 @@ class MerchantAttributesFactory {
|
|
238 |
'product_type_exclusion' => 'Product Type Exclusion[product_type_exclusion]',
|
239 |
'brand_exclusion' => 'Brand Exclusion[brand_exclusion]',
|
240 |
'item_group_id_exclusion' => 'Item Group Exclusion[item_group_id_exclusion]',
|
241 |
-
|
242 |
-
|
243 |
-
16 =>
|
244 |
'optionGroup' => 'Shopping Action Attributes',
|
245 |
-
'options' =>
|
246 |
-
'sell_on_google_quantity'
|
247 |
-
'return_address_label'
|
248 |
-
'return_policy_label'
|
249 |
'google_funded_promotion_eligibility' => 'Google Funded Promotion Eligibility [google_funded_promotion_eligibility]',
|
250 |
-
|
251 |
-
|
252 |
-
17 =>
|
253 |
'optionGroup' => 'Local Inventory / Product Inventory',
|
254 |
-
'options' =>
|
255 |
'store_code' => 'Store Code [store_code]',
|
256 |
'quantity' => 'Quantity [quantity]',
|
257 |
'pickup_method' => 'Pickup Method [pickup_method]',
|
@@ -260,23 +260,23 @@ class MerchantAttributesFactory {
|
|
260 |
'link_template' => 'Link Template [link_template]',
|
261 |
'mobile_link_template' => 'Mobile Link Template [mobile_link_template]',
|
262 |
'mobile_pickup_link_template' => 'Mobile Pickup Link Template [mobile_pickup_link_template]',
|
263 |
-
|
264 |
-
|
265 |
-
18 =>
|
266 |
'optionGroup' => 'Pinterest Catalog Attributes',
|
267 |
-
'options' =>
|
268 |
'free_shipping_label' => 'Free Shipping Label[free_shipping_label]',
|
269 |
'free_shipping_limit' => 'Free Shipping Limit[free_shipping_limit]',
|
270 |
'average_review_rating' => 'Average Review Rating[average_review_rating]',
|
271 |
'number_of_ratings' => 'Number of Ratings[number_of_ratings]',
|
272 |
'number_of_reviews' => 'Number of Reviews[number_of_reviews]',
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
'facebook' =>
|
277 |
-
1 =>
|
278 |
'optionGroup' => 'Basic Information',
|
279 |
-
'options' =>
|
280 |
'id' => 'Product Id[id]',
|
281 |
'title' => 'Product Title[title]',
|
282 |
'description' => 'Product Description[description]',
|
@@ -298,30 +298,30 @@ class MerchantAttributesFactory {
|
|
298 |
'images_9' => 'Additional Image 9 [additional_image_link]',
|
299 |
'images_10' => 'Additional Image 10 [additional_image_link]',
|
300 |
'condition' => 'Condition[condition]',
|
301 |
-
|
302 |
-
|
303 |
-
2 =>
|
304 |
'optionGroup' => 'Availability & Price',
|
305 |
-
'options' =>
|
306 |
'availability' => 'Stock Status[availability]',
|
307 |
'availability_date' => 'Availability Date[availability_date]',
|
308 |
'price' => 'Regular Price[price]',
|
309 |
'sale_price' => 'Sale Price[sale_price]',
|
310 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
311 |
-
|
312 |
-
|
313 |
-
3 =>
|
314 |
'optionGroup' => 'Unique Product Identifiers',
|
315 |
-
'options' =>
|
316 |
'brand' => 'Manufacturer[brand]',
|
317 |
'gtin' => 'GTIN[gtin]',
|
318 |
'mpn' => 'MPN[mpn]',
|
319 |
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
320 |
-
|
321 |
-
|
322 |
-
4 =>
|
323 |
'optionGroup' => 'Detailed Product Attributes',
|
324 |
-
'options' =>
|
325 |
'item_group_id' => 'Item Group Id[item_group_id]',
|
326 |
'color' => 'Color[color]',
|
327 |
'gender' => 'Gender[gender]',
|
@@ -329,11 +329,11 @@ class MerchantAttributesFactory {
|
|
329 |
'material' => 'Material[material]',
|
330 |
'pattern' => 'Pattern[pattern]',
|
331 |
'size' => 'Size of the item[size]',
|
332 |
-
|
333 |
-
|
334 |
-
5 =>
|
335 |
'optionGroup' => 'Tax & Shipping',
|
336 |
-
'options' =>
|
337 |
'tax' => 'Tax[tax]',
|
338 |
'tax_country' => 'Tax Country[tax_country]',
|
339 |
'tax_region' => 'Tax Region[tax_region]',
|
@@ -342,21 +342,21 @@ class MerchantAttributesFactory {
|
|
342 |
'tax_category' => 'Tax[tax_category]',
|
343 |
'shipping' => 'Shipping',
|
344 |
'shipping_weight' => 'Shipping Weight[shipping_weight]',
|
345 |
-
|
346 |
-
|
347 |
-
6 =>
|
348 |
'optionGroup' => 'Custom Label Attributes',
|
349 |
-
'options' =>
|
350 |
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
351 |
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
352 |
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
353 |
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
354 |
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
355 |
-
|
356 |
-
|
357 |
-
7 =>
|
358 |
'optionGroup' => 'Additional Attributes',
|
359 |
-
'options' =>
|
360 |
'inventory' => 'Facebook Inventory[inventory]',
|
361 |
'override' => 'Facebook Override[override]',
|
362 |
'status' => 'Status [status]',
|
@@ -378,22 +378,22 @@ class MerchantAttributesFactory {
|
|
378 |
'importer_address' => 'Importer Address [importer_address]',
|
379 |
'manufacturer_info' => 'Manufacturer Info [manufacturer_info]',
|
380 |
'return_policy_info' => 'Return Policy Info [return_policy_info]',
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
'google_dynamic_ads' =>
|
385 |
-
1 =>
|
386 |
'optionGroup' => 'Basic Information',
|
387 |
-
'options' =>
|
388 |
'Page URL' => 'Page URL[Page URL]',
|
389 |
'Custom Label' => 'Custom Label [Custom Label]',
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
'bing' =>
|
394 |
-
1 =>
|
395 |
'optionGroup' => 'Basic Information',
|
396 |
-
'options' =>
|
397 |
'id' => 'Product Id[id]',
|
398 |
'title' => 'Product Title[title]',
|
399 |
'link' => 'Product URL[link]',
|
@@ -408,31 +408,31 @@ class MerchantAttributesFactory {
|
|
408 |
'mpn' => 'MPN[mpn]',
|
409 |
'brand' => 'Brand[brand]',
|
410 |
'identifier_exists' => 'Identifier Exists[identifier_exists]',
|
411 |
-
|
412 |
-
|
413 |
-
2 =>
|
414 |
'optionGroup' => 'Apparel Products',
|
415 |
-
'options' =>
|
416 |
'gender' => 'Gender[gender]',
|
417 |
'age_group' => 'Age Group[age_group]',
|
418 |
'color' => 'Color[color]',
|
419 |
'size' => 'Size[size]',
|
420 |
'size_type' => 'Size Type[size_type]',
|
421 |
'size_system' => 'Size System[size_system]',
|
422 |
-
|
423 |
-
|
424 |
-
3 =>
|
425 |
'optionGroup' => 'Product Variants',
|
426 |
-
'options' =>
|
427 |
'item_group_id' => 'Item Group ID[item_group_id]',
|
428 |
'material' => 'Material[material]',
|
429 |
'pattern' => 'Pattern[pattern]',
|
430 |
'additional_image_link' => 'Additional Image Link[additional_image_link]',
|
431 |
-
|
432 |
-
|
433 |
-
4 =>
|
434 |
'optionGroup' => 'Other Information',
|
435 |
-
'options' =>
|
436 |
'adult' => 'Adult[adult]',
|
437 |
'availability' => 'Availability[availability]',
|
438 |
'product_category' => 'Product Category[product_category]',
|
@@ -454,58 +454,58 @@ class MerchantAttributesFactory {
|
|
454 |
'custom_label_2' => 'Custom Label 2[custom_label_2]',
|
455 |
'custom_label_3' => 'Custom Label 3[custom_label_3]',
|
456 |
'custom_label_4' => 'Custom Label 4[custom_label_4]',
|
457 |
-
|
458 |
-
|
459 |
-
5 =>
|
460 |
'optionGroup' => 'Sales & Promotions',
|
461 |
-
'options' =>
|
462 |
'sale_price' => 'Sale Price[sale_price]',
|
463 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
464 |
'promotion_ID' => 'Promotion ID[promotion_ID]',
|
465 |
-
|
466 |
-
|
467 |
-
6 =>
|
468 |
'optionGroup' => 'Local Product Inventory',
|
469 |
-
'options' =>
|
470 |
'store_code' => 'Store Code[store_code]',
|
471 |
'itemid' => 'Item ID[itemid]',
|
472 |
'quantity' => 'Quantity[quantity]',
|
473 |
'weeks_of_supply' => 'Weeks Of Supply[weeks_of_supply]',
|
474 |
'pick_up_method' => 'Pick Up Method[pick_up_method]',
|
475 |
'pick_up_sla' => 'Pick Up SLA[pick_up_sla]',
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
'pinterest_rss' =>
|
480 |
-
1 =>
|
481 |
'optionGroup' => 'Basic Information',
|
482 |
-
'options' =>
|
483 |
'title' => 'Product Title[title]',
|
484 |
'description' => 'Product Description[description]',
|
485 |
'link' => 'Product URL[link]',
|
486 |
'image' => 'Main Image[image]',
|
487 |
'pubDate' => 'Publish Date[pubDate]',
|
488 |
'guid' => 'GUID[guid]',
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
'googlereview' =>
|
493 |
-
1 =>
|
494 |
'optionGroup' => 'Basic Information',
|
495 |
-
'options' =>
|
496 |
'product_name' => 'Product Title [product_name]',
|
497 |
'product_url' => 'Product URL [product_url]',
|
498 |
'review_temp_gtin' => 'GTIN [gtin]',
|
499 |
'review_temp_mpn' => 'MPN [mpn]',
|
500 |
'review_temp_sku' => 'SKU [sku]',
|
501 |
'review_temp_brand' => 'Brand [brand]',
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
'wine_searcher' =>
|
506 |
-
1 =>
|
507 |
'optionGroup' => 'Basic Information',
|
508 |
-
'options' =>
|
509 |
'name' => 'Product Title[name]',
|
510 |
'description' => 'Product description[description]',
|
511 |
'vintage' => 'Vintage[vintage]',
|
@@ -518,13 +518,13 @@ class MerchantAttributesFactory {
|
|
518 |
'offer-type' => 'Offer Type[offer-type]',
|
519 |
'delivery-time' => 'Delivery Time[delivery-time]',
|
520 |
'stock-level' => 'Stock Level[stock-level]',
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
'tiktok' =>
|
525 |
-
1 =>
|
526 |
'optionGroup' => 'Basic Information',
|
527 |
-
'options' =>
|
528 |
'sku_id' => 'SKU ID[id]',
|
529 |
'title' => 'Product Title[title]',
|
530 |
'description' => 'Product description[description]',
|
@@ -571,13 +571,13 @@ class MerchantAttributesFactory {
|
|
571 |
'merchant_brand' => 'Merchant Brand[merchant_brand]',
|
572 |
'productHisEval' => 'Purchase Count:FeedBack[productHisEval]',
|
573 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
'modalova' =>
|
578 |
-
1 =>
|
579 |
'optionGroup' => 'Basic Information',
|
580 |
-
'options' =>
|
581 |
'id' => 'Product ID[id]',
|
582 |
'title' => 'Product Title[title]',
|
583 |
'slug' => 'Product URL Slug[slug]',
|
@@ -604,13 +604,13 @@ class MerchantAttributesFactory {
|
|
604 |
'category_path' => 'Category Path[category_path]',
|
605 |
'created_at' => 'Created At[created_at]',
|
606 |
'updated_at' => 'Updated At[updated_at]',
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
'catchdotcom' =>
|
611 |
-
1 =>
|
612 |
'optionGroup' => 'Basic Information',
|
613 |
-
'options' =>
|
614 |
'product-id' => 'Product ID [product-id]',
|
615 |
'title' => 'Product title [title]',
|
616 |
'product-description' => 'Product Description[product-description]',
|
@@ -639,13 +639,13 @@ class MerchantAttributesFactory {
|
|
639 |
'leadtime-to-ship' => 'Lead Time to Ship[leadtime-to-ship]',
|
640 |
'club-catch-eligible' => 'Club Catch eligible[club-catch-eligible]',
|
641 |
'tax-au' => 'GST %[tax-au]',
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
'fashionchick' =>
|
646 |
-
1 =>
|
647 |
'optionGroup' => 'Basic Information',
|
648 |
-
'options' =>
|
649 |
'Product ID' => 'Product ID [Product ID]',
|
650 |
'Titel' => 'Product Titel [Titel]',
|
651 |
'Omschrijving' => 'Product Description [Omschrijving]',
|
@@ -666,13 +666,13 @@ class MerchantAttributesFactory {
|
|
666 |
'Materiaal' => 'Material [Materiaal]',
|
667 |
'Geslacht' => 'Gender [Geslacht]',
|
668 |
'Kleur' => 'Color [Kleur]',
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
'goedgeplaatst' =>
|
673 |
-
1 =>
|
674 |
'optionGroup' => 'Basic Information',
|
675 |
-
'options' =>
|
676 |
'title' => 'Product Title [title]',
|
677 |
'description' => 'Product Description [description]',
|
678 |
'type' => 'Product Type [type]',
|
@@ -696,13 +696,13 @@ class MerchantAttributesFactory {
|
|
696 |
'directForwardToMp' => 'Direct Forward Mp [directForwardToMp]',
|
697 |
'priceBidMinimal' => 'Price Bid Minimal [priceBidMinimal]',
|
698 |
'priceBidAsking' => 'Price Bid Asking [priceBidAsking]',
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
'skroutz' =>
|
703 |
-
1 =>
|
704 |
'optionGroup' => 'Required Information',
|
705 |
-
'options' =>
|
706 |
'id' => 'Unique ID',
|
707 |
'name' => 'Product Title',
|
708 |
'description' => 'Product Description',
|
@@ -714,35 +714,45 @@ class MerchantAttributesFactory {
|
|
714 |
'manufacturer' => 'Manufacturer',
|
715 |
'mpn' => 'MPN / ISBN',
|
716 |
'availability' => 'Availability',
|
717 |
-
|
718 |
-
|
719 |
-
2 =>
|
720 |
'optionGroup' => 'Additional Information',
|
721 |
-
'options' =>
|
722 |
-
'instock'
|
723 |
-
'ean'
|
724 |
-
'
|
725 |
-
'
|
726 |
-
'
|
727 |
-
'
|
728 |
-
'
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
734 |
'optionGroup' => 'Required Attributes',
|
735 |
-
'option' =>
|
736 |
'sku' => 'Unique Product ID [SKU]',
|
737 |
'description' => 'Description',
|
738 |
'link' => 'Product URL',
|
739 |
'price' => 'Price[Current/Sale Price]',
|
740 |
'title' => 'Product Title',
|
741 |
-
|
742 |
-
|
743 |
-
2 =>
|
744 |
'optionGroup' => 'Highly Recommended Attributes',
|
745 |
-
'option' =>
|
746 |
'image_link_1' => 'Main Image',
|
747 |
'brand' => 'Brand of the product',
|
748 |
'category' => 'Main category',
|
@@ -753,11 +763,11 @@ class MerchantAttributesFactory {
|
|
753 |
'in_stock' => 'Stock status',
|
754 |
'in_stock_amount' => 'Amount of items in stock',
|
755 |
'price_old' => 'Old price [Regular Price (in case of discount prices)]',
|
756 |
-
|
757 |
-
|
758 |
-
3 =>
|
759 |
'optionGroup' => 'Recommended Attributes',
|
760 |
-
'option' =>
|
761 |
'color_primary' => 'Primary color of the product',
|
762 |
'condition' => 'Product Condition',
|
763 |
'gender_target' => 'Gender Target',
|
@@ -770,11 +780,11 @@ class MerchantAttributesFactory {
|
|
770 |
'image_link_7' => 'Image 7',
|
771 |
'image_link_8' => 'Image 8',
|
772 |
'image_link_9' => 'Image 9',
|
773 |
-
|
774 |
-
|
775 |
-
4 =>
|
776 |
'optionGroup' => 'Optional Attributes',
|
777 |
-
'option' =>
|
778 |
'additional_costs' => 'Additional costs',
|
779 |
'brand_logo' => 'Brand Logo URL',
|
780 |
'delivery_description' => 'Description of the delivery method',
|
@@ -787,390 +797,390 @@ class MerchantAttributesFactory {
|
|
787 |
'size' => 'General Size field',
|
788 |
'size_description' => 'Description for the “size” field',
|
789 |
'terms_conditions' => 'Full terms and conditions',
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
'daisycon_automotive' =>
|
794 |
-
1 =>
|
795 |
'optionGroup' => 'Required Attributes',
|
796 |
-
'option' =>
|
797 |
-
'description' =>
|
798 |
-
'link' =>
|
799 |
-
'price' =>
|
800 |
-
'sku' =>
|
801 |
-
'title' =>
|
802 |
-
|
803 |
-
|
804 |
-
2 =>
|
805 |
'optionGroup' => 'Highly Recommended Attributes',
|
806 |
-
'option' =>
|
807 |
-
'brand' =>
|
808 |
-
'category' =>
|
809 |
-
'category_path' =>
|
810 |
-
'color_primary' =>
|
811 |
-
'delivery_time' =>
|
812 |
-
'ean' =>
|
813 |
-
'google_category_id' =>
|
814 |
-
'in_stock' =>
|
815 |
-
'in_stock_amount' =>
|
816 |
-
'price_old' =>
|
817 |
-
'image_link_1' =>
|
818 |
-
|
819 |
-
|
820 |
-
3 =>
|
821 |
'optionGroup' => 'Recommended Attributes',
|
822 |
-
'option' =>
|
823 |
-
'condition' =>
|
824 |
-
'price_shipping' =>
|
825 |
-
'image_link_2' =>
|
826 |
-
'image_link_3' =>
|
827 |
-
'image_link_4' =>
|
828 |
-
'image_link_5' =>
|
829 |
-
'image_link_6' =>
|
830 |
-
'image_link_7' =>
|
831 |
-
'image_link_8' =>
|
832 |
-
'image_link_9' =>
|
833 |
-
|
834 |
-
|
835 |
-
4 =>
|
836 |
'optionGroup' => 'Optional Attributes',
|
837 |
-
'option' =>
|
838 |
-
'additional_costs' =>
|
839 |
-
'brake_system' =>
|
840 |
-
'brand_logo' =>
|
841 |
-
'delivery_description' =>
|
842 |
-
'fuel_type' =>
|
843 |
-
'gear_system' =>
|
844 |
-
'gender_target' =>
|
845 |
-
'has_airco' =>
|
846 |
-
'keywords' =>
|
847 |
-
'model' =>
|
848 |
-
'material_1' =>
|
849 |
-
'material_2' =>
|
850 |
-
'material_3' =>
|
851 |
-
'priority' =>
|
852 |
'rental_location_city' => "City of a rental car's pick up location (if applicable)",
|
853 |
'rental_location_country' => "Country of a rental car's pick up location (if applicable)",
|
854 |
'rental_location_region' => "Region of a rental car's pick up location (if applicable)",
|
855 |
-
'size' =>
|
856 |
-
'size_description' =>
|
857 |
-
'tire_size' =>
|
858 |
-
'year_built' =>
|
859 |
-
'terms_conditions' =>
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
'daisycon_books' =>
|
864 |
-
1 =>
|
865 |
'optionGroup' => 'Required Attributes',
|
866 |
-
'option' =>
|
867 |
-
'description' =>
|
868 |
-
'link' =>
|
869 |
-
'price' =>
|
870 |
-
'sku' =>
|
871 |
-
'title' =>
|
872 |
-
|
873 |
-
|
874 |
-
2 =>
|
875 |
'optionGroup' => 'Highly Recommended Attributes',
|
876 |
-
'option' =>
|
877 |
-
'author' =>
|
878 |
-
'category' =>
|
879 |
-
'category_path' =>
|
880 |
-
'delivery_time' =>
|
881 |
-
'ean' =>
|
882 |
-
'google_category_id' =>
|
883 |
-
'in_stock' =>
|
884 |
-
'in_stock_amount' =>
|
885 |
-
'isbn' =>
|
886 |
-
'price_old' =>
|
887 |
-
'image_link_1' =>
|
888 |
-
|
889 |
-
|
890 |
-
3 =>
|
891 |
'optionGroup' => 'Recommended Attributes',
|
892 |
-
'option' =>
|
893 |
-
'book_publisher' =>
|
894 |
-
'book_type' =>
|
895 |
-
'price_shipping' =>
|
896 |
-
'image_link_2' =>
|
897 |
-
'image_link_3' =>
|
898 |
-
'image_link_4' =>
|
899 |
-
'image_link_5' =>
|
900 |
-
'image_link_6' =>
|
901 |
-
'image_link_7' =>
|
902 |
-
'image_link_8' =>
|
903 |
-
'image_link_9' =>
|
904 |
-
|
905 |
-
|
906 |
-
4 =>
|
907 |
'optionGroup' => 'Low Priority Attributes',
|
908 |
-
'option' =>
|
909 |
-
'condition' =>
|
910 |
-
'gender_target' =>
|
911 |
-
'number_of_pages' =>
|
912 |
-
'release_date' =>
|
913 |
-
|
914 |
-
|
915 |
-
5 =>
|
916 |
'optionGroup' => 'Optional Attributes',
|
917 |
-
'option' =>
|
918 |
-
'additional_costs' =>
|
919 |
-
'book_edition' =>
|
920 |
-
'brand' =>
|
921 |
-
'brand_logo' =>
|
922 |
-
'color_primary' =>
|
923 |
-
'delivery_description' =>
|
924 |
-
'file_size' =>
|
925 |
-
'file_type' =>
|
926 |
-
'keywords' =>
|
927 |
-
'language' =>
|
928 |
-
'model' =>
|
929 |
-
'priority' =>
|
930 |
-
'size' =>
|
931 |
-
'size_description' =>
|
932 |
-
'size_length' =>
|
933 |
-
'size_width' =>
|
934 |
-
'weight' =>
|
935 |
-
'material_1' =>
|
936 |
-
'material_2' =>
|
937 |
-
'material_3' =>
|
938 |
-
'terms_conditions' =>
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
'daisycon_cosmetics' =>
|
943 |
-
1 =>
|
944 |
'optionGroup' => 'Required Attributes',
|
945 |
-
'option' =>
|
946 |
-
'description' =>
|
947 |
-
'link' =>
|
948 |
-
'price' =>
|
949 |
-
'sku' =>
|
950 |
-
'title' =>
|
951 |
-
|
952 |
-
|
953 |
-
2 =>
|
954 |
'optionGroup' => 'Highly Recommended Attributes',
|
955 |
-
'option' =>
|
956 |
-
'allergic_info' =>
|
957 |
-
'amount_content' =>
|
958 |
-
'amount_description' =>
|
959 |
-
'category' =>
|
960 |
-
'category_path' =>
|
961 |
-
'delivery_time' =>
|
962 |
-
'ean' =>
|
963 |
-
'google_category_id' =>
|
964 |
-
'in_stock' =>
|
965 |
-
'in_stock_amount' =>
|
966 |
-
'price_old' =>
|
967 |
-
'image_link_1' =>
|
968 |
-
|
969 |
-
|
970 |
-
3 =>
|
971 |
'optionGroup' => 'Recommended Attributes',
|
972 |
-
'option' =>
|
973 |
-
'description_ingredients' =>
|
974 |
-
'gender_target' =>
|
975 |
-
'price_shipping' =>
|
976 |
-
'skin_type' =>
|
977 |
-
'image_link_2' =>
|
978 |
-
'image_link_3' =>
|
979 |
-
'image_link_4' =>
|
980 |
-
'image_link_5' =>
|
981 |
-
'image_link_6' =>
|
982 |
-
'image_link_7' =>
|
983 |
-
'image_link_8' =>
|
984 |
-
'image_link_9' =>
|
985 |
-
|
986 |
-
|
987 |
-
4 =>
|
988 |
'optionGroup' => 'Low Priority Attributes',
|
989 |
-
'option' =>
|
990 |
-
'color_primary' =>
|
991 |
-
|
992 |
-
|
993 |
-
5 =>
|
994 |
'optionGroup' => 'Optional Attributes',
|
995 |
-
'option' =>
|
996 |
-
'additional_costs' =>
|
997 |
-
'brand_logo' =>
|
998 |
-
'condition' =>
|
999 |
-
'delivery_description' =>
|
1000 |
-
'keywords' =>
|
1001 |
-
'made_in_country' =>
|
1002 |
-
'model' =>
|
1003 |
-
'priority' =>
|
1004 |
-
'size' =>
|
1005 |
-
'size_description' =>
|
1006 |
-
'weight' =>
|
1007 |
-
'material_1' =>
|
1008 |
-
'material_2' =>
|
1009 |
-
'material_3' =>
|
1010 |
-
'terms_conditions' =>
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
'daisycon_daily_offers' =>
|
1015 |
-
1 =>
|
1016 |
'optionGroup' => 'Required Attributes',
|
1017 |
-
'option' =>
|
1018 |
-
'description' =>
|
1019 |
-
'link' =>
|
1020 |
-
'price' =>
|
1021 |
-
'sku' =>
|
1022 |
-
'title' =>
|
1023 |
-
|
1024 |
-
|
1025 |
-
2 =>
|
1026 |
'optionGroup' => 'Highly Recommended Attributes',
|
1027 |
-
'option' =>
|
1028 |
-
'brand' =>
|
1029 |
-
'category' =>
|
1030 |
-
'category_path' =>
|
1031 |
-
'delivery_time' =>
|
1032 |
-
'ean' =>
|
1033 |
-
'in_stock' =>
|
1034 |
-
'in_stock_amount' =>
|
1035 |
-
'price_old' =>
|
1036 |
-
'image_link_1' =>
|
1037 |
-
|
1038 |
-
|
1039 |
-
3 =>
|
1040 |
'optionGroup' => 'Recommended Attributes',
|
1041 |
-
'option' =>
|
1042 |
-
'google_category_id' =>
|
1043 |
-
'price_shipping' =>
|
1044 |
-
'image_link_2' =>
|
1045 |
-
'image_link_3' =>
|
1046 |
-
'image_link_4' =>
|
1047 |
-
'image_link_5' =>
|
1048 |
-
'image_link_6' =>
|
1049 |
-
'image_link_7' =>
|
1050 |
-
'image_link_8' =>
|
1051 |
-
'image_link_9' =>
|
1052 |
-
|
1053 |
-
|
1054 |
-
4 =>
|
1055 |
'optionGroup' => 'Optional Attributes',
|
1056 |
-
'option' =>
|
1057 |
-
'additional_costs' =>
|
1058 |
-
'brand_logo' =>
|
1059 |
-
'color_primary' =>
|
1060 |
-
'condition' =>
|
1061 |
-
'delivery_description' =>
|
1062 |
'discount_amount' => "Amount of discount in euro's",
|
1063 |
-
'discount_percentage' =>
|
1064 |
-
'gender_target' =>
|
1065 |
-
'keywords' =>
|
1066 |
-
'model' =>
|
1067 |
-
'offer_datetime_end' =>
|
1068 |
-
'offer_datetime_start' =>
|
1069 |
-
'size' =>
|
1070 |
-
'size_description' =>
|
1071 |
-
'material_1' =>
|
1072 |
-
'material_2' =>
|
1073 |
-
'material_3' =>
|
1074 |
-
'terms_conditions' =>
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
'daisycon_electronics' =>
|
1079 |
-
1 =>
|
1080 |
'optionGroup' => 'Required Attributes',
|
1081 |
-
'option' =>
|
1082 |
-
'description' =>
|
1083 |
-
'link' =>
|
1084 |
-
'price' =>
|
1085 |
-
'sku' =>
|
1086 |
-
'title' =>
|
1087 |
-
|
1088 |
-
|
1089 |
-
2 =>
|
1090 |
'optionGroup' => 'Highly Recommended Attributes',
|
1091 |
-
'option' =>
|
1092 |
-
'brand' =>
|
1093 |
-
'category' =>
|
1094 |
-
'category_path' =>
|
1095 |
-
'delivery_time' =>
|
1096 |
-
'ean' =>
|
1097 |
-
'google_category_id' =>
|
1098 |
-
'in_stock' =>
|
1099 |
-
'in_stock_amount' =>
|
1100 |
-
'model' =>
|
1101 |
-
'price_old' =>
|
1102 |
-
'image_link_1' =>
|
1103 |
-
|
1104 |
-
|
1105 |
-
3 =>
|
1106 |
'optionGroup' => 'Recommended Attributes',
|
1107 |
-
'option' =>
|
1108 |
-
'color_primary' =>
|
1109 |
-
'price_shipping' =>
|
1110 |
-
'image_link_2' =>
|
1111 |
-
'image_link_3' =>
|
1112 |
-
'image_link_4' =>
|
1113 |
-
'image_link_5' =>
|
1114 |
-
'image_link_6' =>
|
1115 |
-
'image_link_7' =>
|
1116 |
-
'image_link_8' =>
|
1117 |
-
'image_link_9' =>
|
1118 |
-
|
1119 |
-
|
1120 |
-
4 =>
|
1121 |
'optionGroup' => 'Low Priority Attributes',
|
1122 |
-
'option' =>
|
1123 |
-
'condition' =>
|
1124 |
-
|
1125 |
-
|
1126 |
-
5 =>
|
1127 |
'optionGroup' => 'Optional Attributes',
|
1128 |
-
'option' =>
|
1129 |
-
'additional_costs' =>
|
1130 |
-
'audio_surround' =>
|
1131 |
-
'batteries_included' =>
|
1132 |
-
'brand_logo' =>
|
1133 |
-
'connection_type' =>
|
1134 |
-
'delivery_description' =>
|
1135 |
-
'device_max_content' =>
|
1136 |
-
'device_max_temperature' =>
|
1137 |
-
'device_serve_amount' =>
|
1138 |
-
'device_watt' =>
|
1139 |
-
'dishwasher_safe' =>
|
1140 |
-
'disposal_fee' =>
|
1141 |
-
'file_types_supported' =>
|
1142 |
-
'gender_target' =>
|
1143 |
-
'has_alarm' =>
|
1144 |
-
'has_grill' =>
|
1145 |
-
'has_microwave' =>
|
1146 |
-
'has_oven' =>
|
1147 |
-
'has_radio' =>
|
1148 |
-
'has_remote_control' =>
|
1149 |
-
'has_timer' =>
|
1150 |
-
'has_wifi' =>
|
1151 |
-
'keywords' =>
|
1152 |
-
'made_in_country' =>
|
1153 |
-
'partnumber' =>
|
1154 |
-
'power_type' =>
|
1155 |
-
'price_suggested_retail' =>
|
1156 |
-
'priority' =>
|
1157 |
-
'resolution_record' =>
|
1158 |
-
'resolution_screen' =>
|
1159 |
-
'screen_size' =>
|
1160 |
-
'screen_type' =>
|
1161 |
-
'size' =>
|
1162 |
-
'size_description' =>
|
1163 |
-
'size_length' =>
|
1164 |
-
'size_width' =>
|
1165 |
-
'specs' =>
|
1166 |
-
'terms_conditions' =>
|
1167 |
-
'material_1' =>
|
1168 |
-
'material_2' =>
|
1169 |
-
'material_3' =>
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
'name' =>
|
1174 |
-
|
1175 |
}
|
1176 |
-
}
|
1 |
<?php
|
2 |
|
3 |
namespace CTXFeed\V5\Merchant;
|
4 |
+
|
5 |
class MerchantAttributesFactory {
|
6 |
+
|
7 |
public static function get( $template = null ) {
|
8 |
$data = self::data();
|
9 |
+
|
10 |
if ( $template === null ) {
|
11 |
return $data;
|
12 |
}
|
13 |
+
|
14 |
// Override Merchant Template.
|
15 |
+
|
16 |
+
if ( in_array( $template, array( 'pinterest', 'adroll', 'smartly.io' ) ) ) {
|
17 |
$template = 'google';
|
18 |
+
} elseif ( in_array( $template, array( 'connexity', 'shopzilla' ) ) ) {
|
19 |
$template = 'become';
|
20 |
} elseif ( $template === 'fruugo.au' ) {
|
21 |
$template = 'fruugo';
|
22 |
} elseif ( $template === 'shopalike.fr' ) {
|
23 |
$template = 'kijiji.ca';
|
24 |
}
|
25 |
+
|
|
|
26 |
if ( isset( $data[ $template ] ) ) {
|
27 |
return $data[ $template ];
|
28 |
}
|
29 |
+
|
30 |
return false;
|
31 |
}
|
32 |
+
|
33 |
private static function data() {
|
34 |
+
return array(
|
35 |
+
'google' => array(
|
36 |
+
1 => array(
|
37 |
'optionGroup' => 'Basic Information',
|
38 |
+
'options' => array(
|
39 |
'id' => 'Product Id[id]',
|
40 |
'webitemid' => 'Product WebItemId[webitemid]',
|
41 |
'region_id' => 'Region Id[region_id]',
|
59 |
'images_9' => 'Additional Image 9 [additional_image_link]',
|
60 |
'images_10' => 'Additional Image 10 [additional_image_link]',
|
61 |
'condition' => 'Condition[condition]',
|
62 |
+
),
|
63 |
+
),
|
64 |
+
2 => array(
|
65 |
'optionGroup' => 'Availability & Price',
|
66 |
+
'options' => array(
|
67 |
'availability' => 'Stock Status[availability]',
|
68 |
'availability_date' => 'Availability Date[availability_date]',
|
69 |
'inventory' => 'Facebook Inventory[inventory]',
|
72 |
'sale_price' => 'Sale Price[sale_price]',
|
73 |
'cost_of_goods_sold' => 'Cost of Goods Sold[cost_of_goods_sold]',
|
74 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
75 |
+
),
|
76 |
+
),
|
77 |
+
3 => array(
|
78 |
'optionGroup' => 'Unique Product Identifiers',
|
79 |
+
'options' => array(
|
80 |
'brand' => 'Manufacturer[brand]',
|
81 |
'upc' => 'GTIN[gtin]',
|
82 |
'sku' => 'MPN[mpn]',
|
83 |
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
84 |
+
),
|
85 |
+
),
|
86 |
+
4 => array(
|
87 |
'optionGroup' => 'Detailed Product Attributes',
|
88 |
+
'options' => array(
|
89 |
'item_group_id' => 'Item Group Id[item_group_id]',
|
90 |
'external_seller_id' => 'External seller ID[external_seller_id]',
|
91 |
'color' => 'Color[color]',
|
113 |
'section_name' => 'Section Name (Product Detail)[section_name]',
|
114 |
'attribute_name' => 'Attribute Name (Product Detail)[attribute_name]',
|
115 |
'attribute_value' => 'Attribute Value (Product Detail)[attribute_value]',
|
116 |
+
),
|
117 |
+
),
|
118 |
+
5 => array(
|
119 |
'optionGroup' => 'Tax & Shipping',
|
120 |
+
'options' => array(
|
121 |
'tax' => 'Tax[tax]',
|
122 |
'tax_category' => 'Tax[tax_category]',
|
123 |
'shipping' => 'Shipping',
|
136 |
'material_1' => 'The primary material',
|
137 |
'material_2' => 'The secondary material',
|
138 |
'material_3' => 'The tertiary material',
|
139 |
+
),
|
140 |
+
),
|
141 |
+
6 => array(
|
142 |
'optionGroup' => 'Product Combinations',
|
143 |
+
'options' => array(
|
144 |
'multipack' => 'Multipack[multipack]',
|
145 |
'is_bundle' => 'Is Bundle[is_bundle]',
|
146 |
+
),
|
147 |
+
),
|
148 |
+
7 => array(
|
149 |
'optionGroup' => 'Adult Products',
|
150 |
+
'options' => array(
|
151 |
'adult' => 'Adult[adult]',
|
152 |
+
),
|
153 |
+
),
|
154 |
+
8 => array(
|
155 |
'optionGroup' => 'Ads Attributes',
|
156 |
+
'options' => array(
|
157 |
'ads_redirect' => 'Ads Redirect[ads_redirect]',
|
158 |
+
),
|
159 |
+
),
|
160 |
+
9 => array(
|
161 |
'optionGroup' => 'Custom Label Attributes',
|
162 |
+
'options' => array(
|
163 |
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
164 |
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
165 |
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
166 |
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
167 |
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
168 |
+
),
|
169 |
+
),
|
170 |
+
10 => array(
|
171 |
'optionGroup' => 'Additional Attributes',
|
172 |
+
'options' => array(
|
173 |
'excluded_destination' => 'Excluded Destination[excluded_destination]',
|
174 |
'shopping_ads_excluded_country' => 'Shopping Ads Excluded Country[shopping_ads_excluded_country]',
|
175 |
'included_destination' => 'Included Destination[included_destination]',
|
176 |
'expiration_date' => 'Expiration Date [expiration_date]',
|
177 |
'transit_time_label' => 'Transit Time [transit_time_label]',
|
178 |
+
),
|
179 |
+
),
|
180 |
+
11 => array(
|
181 |
'optionGroup' => 'Unit Prices, Subscription, and Installment',
|
182 |
+
'options' => array(
|
183 |
'unit_pricing_measure' => 'Unit Pricing Measure[unit_pricing_measure]',
|
184 |
'unit_pricing_base_measure' => 'Unit Pricing Base Measure[unit_pricing_base_measure]',
|
185 |
'installment_months' => 'Installment Months[months]',
|
187 |
'subscription_period' => 'Subscription Period[period]',
|
188 |
'subscription_period_length' => 'Subscription Period Length[period_length]',
|
189 |
'subscription_amount' => 'Subscription Amount[amount]',
|
190 |
+
),
|
191 |
+
),
|
192 |
+
12 => array(
|
193 |
'optionGroup' => 'Energy Labels',
|
194 |
+
'options' => array(
|
195 |
'energy_efficiency_class' => 'Energy Efficiency Class[energy_efficiency_class]',
|
196 |
'min_energy_efficiency_class' => 'Min Energy Efficiency Class[energy_efficiency_class]',
|
197 |
'max_energy_efficiency_class' => 'Max Energy Efficiency Class[energy_efficiency_class]',
|
198 |
+
),
|
199 |
+
),
|
200 |
+
13 => array(
|
201 |
'optionGroup' => 'Loyalty Points (Japan Only)',
|
202 |
+
'options' => array(
|
203 |
'loyalty_points' => 'loyalty_points[loyalty_points]',
|
204 |
+
),
|
205 |
+
),
|
206 |
+
14 => array(
|
207 |
'optionGroup' => 'Multiple Installments (Brazil Only)',
|
208 |
+
'options' => array(
|
209 |
'installment' => 'Installment[installment]',
|
210 |
+
),
|
211 |
+
),
|
212 |
+
15 => array(
|
213 |
'optionGroup' => 'Merchant Promotions Attributes',
|
214 |
+
'options' => array(
|
215 |
'promotion_id' => 'Promotion Id[promotion_id]',
|
216 |
'product_applicability' => 'Product Applicability[product_applicability]',
|
217 |
'offer_type' => 'Offer Type[offer_type]',
|
238 |
'product_type_exclusion' => 'Product Type Exclusion[product_type_exclusion]',
|
239 |
'brand_exclusion' => 'Brand Exclusion[brand_exclusion]',
|
240 |
'item_group_id_exclusion' => 'Item Group Exclusion[item_group_id_exclusion]',
|
241 |
+
),
|
242 |
+
),
|
243 |
+
16 => array(
|
244 |
'optionGroup' => 'Shopping Action Attributes',
|
245 |
+
'options' => array(
|
246 |
+
'sell_on_google_quantity' => 'Number of Product Sold On Google [sell_on_google_quantity]',
|
247 |
+
'return_address_label' => 'Return Address [return_address_label]',
|
248 |
+
'return_policy_label' => 'Return Policy [return_policy_label]',
|
249 |
'google_funded_promotion_eligibility' => 'Google Funded Promotion Eligibility [google_funded_promotion_eligibility]',
|
250 |
+
),
|
251 |
+
),
|
252 |
+
17 => array(
|
253 |
'optionGroup' => 'Local Inventory / Product Inventory',
|
254 |
+
'options' => array(
|
255 |
'store_code' => 'Store Code [store_code]',
|
256 |
'quantity' => 'Quantity [quantity]',
|
257 |
'pickup_method' => 'Pickup Method [pickup_method]',
|
260 |
'link_template' => 'Link Template [link_template]',
|
261 |
'mobile_link_template' => 'Mobile Link Template [mobile_link_template]',
|
262 |
'mobile_pickup_link_template' => 'Mobile Pickup Link Template [mobile_pickup_link_template]',
|
263 |
+
),
|
264 |
+
),
|
265 |
+
18 => array(
|
266 |
'optionGroup' => 'Pinterest Catalog Attributes',
|
267 |
+
'options' => array(
|
268 |
'free_shipping_label' => 'Free Shipping Label[free_shipping_label]',
|
269 |
'free_shipping_limit' => 'Free Shipping Limit[free_shipping_limit]',
|
270 |
'average_review_rating' => 'Average Review Rating[average_review_rating]',
|
271 |
'number_of_ratings' => 'Number of Ratings[number_of_ratings]',
|
272 |
'number_of_reviews' => 'Number of Reviews[number_of_reviews]',
|
273 |
+
),
|
274 |
+
),
|
275 |
+
),
|
276 |
+
'facebook' => array(
|
277 |
+
1 => array(
|
278 |
'optionGroup' => 'Basic Information',
|
279 |
+
'options' => array(
|
280 |
'id' => 'Product Id[id]',
|
281 |
'title' => 'Product Title[title]',
|
282 |
'description' => 'Product Description[description]',
|
298 |
'images_9' => 'Additional Image 9 [additional_image_link]',
|
299 |
'images_10' => 'Additional Image 10 [additional_image_link]',
|
300 |
'condition' => 'Condition[condition]',
|
301 |
+
),
|
302 |
+
),
|
303 |
+
2 => array(
|
304 |
'optionGroup' => 'Availability & Price',
|
305 |
+
'options' => array(
|
306 |
'availability' => 'Stock Status[availability]',
|
307 |
'availability_date' => 'Availability Date[availability_date]',
|
308 |
'price' => 'Regular Price[price]',
|
309 |
'sale_price' => 'Sale Price[sale_price]',
|
310 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
311 |
+
),
|
312 |
+
),
|
313 |
+
3 => array(
|
314 |
'optionGroup' => 'Unique Product Identifiers',
|
315 |
+
'options' => array(
|
316 |
'brand' => 'Manufacturer[brand]',
|
317 |
'gtin' => 'GTIN[gtin]',
|
318 |
'mpn' => 'MPN[mpn]',
|
319 |
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
320 |
+
),
|
321 |
+
),
|
322 |
+
4 => array(
|
323 |
'optionGroup' => 'Detailed Product Attributes',
|
324 |
+
'options' => array(
|
325 |
'item_group_id' => 'Item Group Id[item_group_id]',
|
326 |
'color' => 'Color[color]',
|
327 |
'gender' => 'Gender[gender]',
|
329 |
'material' => 'Material[material]',
|
330 |
'pattern' => 'Pattern[pattern]',
|
331 |
'size' => 'Size of the item[size]',
|
332 |
+
),
|
333 |
+
),
|
334 |
+
5 => array(
|
335 |
'optionGroup' => 'Tax & Shipping',
|
336 |
+
'options' => array(
|
337 |
'tax' => 'Tax[tax]',
|
338 |
'tax_country' => 'Tax Country[tax_country]',
|
339 |
'tax_region' => 'Tax Region[tax_region]',
|
342 |
'tax_category' => 'Tax[tax_category]',
|
343 |
'shipping' => 'Shipping',
|
344 |
'shipping_weight' => 'Shipping Weight[shipping_weight]',
|
345 |
+
),
|
346 |
+
),
|
347 |
+
6 => array(
|
348 |
'optionGroup' => 'Custom Label Attributes',
|
349 |
+
'options' => array(
|
350 |
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
351 |
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
352 |
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
353 |
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
354 |
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
355 |
+
),
|
356 |
+
),
|
357 |
+
7 => array(
|
358 |
'optionGroup' => 'Additional Attributes',
|
359 |
+
'options' => array(
|
360 |
'inventory' => 'Facebook Inventory[inventory]',
|
361 |
'override' => 'Facebook Override[override]',
|
362 |
'status' => 'Status [status]',
|
378 |
'importer_address' => 'Importer Address [importer_address]',
|
379 |
'manufacturer_info' => 'Manufacturer Info [manufacturer_info]',
|
380 |
'return_policy_info' => 'Return Policy Info [return_policy_info]',
|
381 |
+
),
|
382 |
+
),
|
383 |
+
),
|
384 |
+
'google_dynamic_ads' => array(
|
385 |
+
1 => array(
|
386 |
'optionGroup' => 'Basic Information',
|
387 |
+
'options' => array(
|
388 |
'Page URL' => 'Page URL[Page URL]',
|
389 |
'Custom Label' => 'Custom Label [Custom Label]',
|
390 |
+
),
|
391 |
+
),
|
392 |
+
),
|
393 |
+
'bing' => array(
|
394 |
+
1 => array(
|
395 |
'optionGroup' => 'Basic Information',
|
396 |
+
'options' => array(
|
397 |
'id' => 'Product Id[id]',
|
398 |
'title' => 'Product Title[title]',
|
399 |
'link' => 'Product URL[link]',
|
408 |
'mpn' => 'MPN[mpn]',
|
409 |
'brand' => 'Brand[brand]',
|
410 |
'identifier_exists' => 'Identifier Exists[identifier_exists]',
|
411 |
+
),
|
412 |
+
),
|
413 |
+
2 => array(
|
414 |
'optionGroup' => 'Apparel Products',
|
415 |
+
'options' => array(
|
416 |
'gender' => 'Gender[gender]',
|
417 |
'age_group' => 'Age Group[age_group]',
|
418 |
'color' => 'Color[color]',
|
419 |
'size' => 'Size[size]',
|
420 |
'size_type' => 'Size Type[size_type]',
|
421 |
'size_system' => 'Size System[size_system]',
|
422 |
+
),
|
423 |
+
),
|
424 |
+
3 => array(
|
425 |
'optionGroup' => 'Product Variants',
|
426 |
+
'options' => array(
|
427 |
'item_group_id' => 'Item Group ID[item_group_id]',
|
428 |
'material' => 'Material[material]',
|
429 |
'pattern' => 'Pattern[pattern]',
|
430 |
'additional_image_link' => 'Additional Image Link[additional_image_link]',
|
431 |
+
),
|
432 |
+
),
|
433 |
+
4 => array(
|
434 |
'optionGroup' => 'Other Information',
|
435 |
+
'options' => array(
|
436 |
'adult' => 'Adult[adult]',
|
437 |
'availability' => 'Availability[availability]',
|
438 |
'product_category' => 'Product Category[product_category]',
|
454 |
'custom_label_2' => 'Custom Label 2[custom_label_2]',
|
455 |
'custom_label_3' => 'Custom Label 3[custom_label_3]',
|
456 |
'custom_label_4' => 'Custom Label 4[custom_label_4]',
|
457 |
+
),
|
458 |
+
),
|
459 |
+
5 => array(
|
460 |
'optionGroup' => 'Sales & Promotions',
|
461 |
+
'options' => array(
|
462 |
'sale_price' => 'Sale Price[sale_price]',
|
463 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
464 |
'promotion_ID' => 'Promotion ID[promotion_ID]',
|
465 |
+
),
|
466 |
+
),
|
467 |
+
6 => array(
|
468 |
'optionGroup' => 'Local Product Inventory',
|
469 |
+
'options' => array(
|
470 |
'store_code' => 'Store Code[store_code]',
|
471 |
'itemid' => 'Item ID[itemid]',
|
472 |
'quantity' => 'Quantity[quantity]',
|
473 |
'weeks_of_supply' => 'Weeks Of Supply[weeks_of_supply]',
|
474 |
'pick_up_method' => 'Pick Up Method[pick_up_method]',
|
475 |
'pick_up_sla' => 'Pick Up SLA[pick_up_sla]',
|
476 |
+
),
|
477 |
+
),
|
478 |
+
),
|
479 |
+
'pinterest_rss' => array(
|
480 |
+
1 => array(
|
481 |
'optionGroup' => 'Basic Information',
|
482 |
+
'options' => array(
|
483 |
'title' => 'Product Title[title]',
|
484 |
'description' => 'Product Description[description]',
|
485 |
'link' => 'Product URL[link]',
|
486 |
'image' => 'Main Image[image]',
|
487 |
'pubDate' => 'Publish Date[pubDate]',
|
488 |
'guid' => 'GUID[guid]',
|
489 |
+
),
|
490 |
+
),
|
491 |
+
),
|
492 |
+
'googlereview' => array(
|
493 |
+
1 => array(
|
494 |
'optionGroup' => 'Basic Information',
|
495 |
+
'options' => array(
|
496 |
'product_name' => 'Product Title [product_name]',
|
497 |
'product_url' => 'Product URL [product_url]',
|
498 |
'review_temp_gtin' => 'GTIN [gtin]',
|
499 |
'review_temp_mpn' => 'MPN [mpn]',
|
500 |
'review_temp_sku' => 'SKU [sku]',
|
501 |
'review_temp_brand' => 'Brand [brand]',
|
502 |
+
),
|
503 |
+
),
|
504 |
+
),
|
505 |
+
'wine_searcher' => array(
|
506 |
+
1 => array(
|
507 |
'optionGroup' => 'Basic Information',
|
508 |
+
'options' => array(
|
509 |
'name' => 'Product Title[name]',
|
510 |
'description' => 'Product description[description]',
|
511 |
'vintage' => 'Vintage[vintage]',
|
518 |
'offer-type' => 'Offer Type[offer-type]',
|
519 |
'delivery-time' => 'Delivery Time[delivery-time]',
|
520 |
'stock-level' => 'Stock Level[stock-level]',
|
521 |
+
),
|
522 |
+
),
|
523 |
+
),
|
524 |
+
'tiktok' => array(
|
525 |
+
1 => array(
|
526 |
'optionGroup' => 'Basic Information',
|
527 |
+
'options' => array(
|
528 |
'sku_id' => 'SKU ID[id]',
|
529 |
'title' => 'Product Title[title]',
|
530 |
'description' => 'Product description[description]',
|
571 |
'merchant_brand' => 'Merchant Brand[merchant_brand]',
|
572 |
'productHisEval' => 'Purchase Count:FeedBack[productHisEval]',
|
573 |
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
574 |
+
),
|
575 |
+
),
|
576 |
+
),
|
577 |
+
'modalova' => array(
|
578 |
+
1 => array(
|
579 |
'optionGroup' => 'Basic Information',
|
580 |
+
'options' => array(
|
581 |
'id' => 'Product ID[id]',
|
582 |
'title' => 'Product Title[title]',
|
583 |
'slug' => 'Product URL Slug[slug]',
|
604 |
'category_path' => 'Category Path[category_path]',
|
605 |
'created_at' => 'Created At[created_at]',
|
606 |
'updated_at' => 'Updated At[updated_at]',
|
607 |
+
),
|
608 |
+
),
|
609 |
+
),
|
610 |
+
'catchdotcom' => array(
|
611 |
+
1 => array(
|
612 |
'optionGroup' => 'Basic Information',
|
613 |
+
'options' => array(
|
614 |
'product-id' => 'Product ID [product-id]',
|
615 |
'title' => 'Product title [title]',
|
616 |
'product-description' => 'Product Description[product-description]',
|
639 |
'leadtime-to-ship' => 'Lead Time to Ship[leadtime-to-ship]',
|
640 |
'club-catch-eligible' => 'Club Catch eligible[club-catch-eligible]',
|
641 |
'tax-au' => 'GST %[tax-au]',
|
642 |
+
),
|
643 |
+
),
|
644 |
+
),
|
645 |
+
'fashionchick' => array(
|
646 |
+
1 => array(
|
647 |
'optionGroup' => 'Basic Information',
|
648 |
+
'options' => array(
|
649 |
'Product ID' => 'Product ID [Product ID]',
|
650 |
'Titel' => 'Product Titel [Titel]',
|
651 |
'Omschrijving' => 'Product Description [Omschrijving]',
|
666 |
'Materiaal' => 'Material [Materiaal]',
|
667 |
'Geslacht' => 'Gender [Geslacht]',
|
668 |
'Kleur' => 'Color [Kleur]',
|
669 |
+
),
|
670 |
+
),
|
671 |
+
),
|
672 |
+
'goedgeplaatst' => array(
|
673 |
+
1 => array(
|
674 |
'optionGroup' => 'Basic Information',
|
675 |
+
'options' => array(
|
676 |
'title' => 'Product Title [title]',
|
677 |
'description' => 'Product Description [description]',
|
678 |
'type' => 'Product Type [type]',
|
696 |
'directForwardToMp' => 'Direct Forward Mp [directForwardToMp]',
|
697 |
'priceBidMinimal' => 'Price Bid Minimal [priceBidMinimal]',
|
698 |
'priceBidAsking' => 'Price Bid Asking [priceBidAsking]',
|
699 |
+
),
|
700 |
+
),
|
701 |
+
),
|
702 |
+
'skroutz' => array(
|
703 |
+
1 => array(
|
704 |
'optionGroup' => 'Required Information',
|
705 |
+
'options' => array(
|
706 |
'id' => 'Unique ID',
|
707 |
'name' => 'Product Title',
|
708 |
'description' => 'Product Description',
|
714 |
'manufacturer' => 'Manufacturer',
|
715 |
'mpn' => 'MPN / ISBN',
|
716 |
'availability' => 'Availability',
|
717 |
+
),
|
718 |
+
),
|
719 |
+
2 => array(
|
720 |
'optionGroup' => 'Additional Information',
|
721 |
+
'options' => array(
|
722 |
+
'instock' => 'Stock Status [InStock]',
|
723 |
+
'ean' => 'EAN / Barcode',
|
724 |
+
'additional_imageurl' => 'Additional Image Link',
|
725 |
+
'additional_imageurl_1' => 'Additional Image Link 1',
|
726 |
+
'additional_imageurl_2' => 'Additional Image Link 2',
|
727 |
+
'additional_imageurl_3' => 'Additional Image Link 3',
|
728 |
+
'additional_imageurl_4' => 'Additional Image Link 4',
|
729 |
+
'additional_imageurl_5' => 'Additional Image Link 5',
|
730 |
+
'additional_imageurl_6' => 'Additional Image Link 6',
|
731 |
+
'additional_imageurl_7' => 'Additional Image Link 7',
|
732 |
+
'additional_imageurl_8' => 'Additional Image Link 8',
|
733 |
+
'additional_imageurl_9' => 'Additional Image Link 9',
|
734 |
+
'additional_imageurl_10' => 'Additional Image Link 10',
|
735 |
+
'color' => 'Color',
|
736 |
+
'size' => 'Size',
|
737 |
+
'weight' => 'Weight',
|
738 |
+
'quantity' => 'Quantity',
|
739 |
+
),
|
740 |
+
),
|
741 |
+
),
|
742 |
+
'daisycon' => array(
|
743 |
+
1 => array(
|
744 |
'optionGroup' => 'Required Attributes',
|
745 |
+
'option' => array(
|
746 |
'sku' => 'Unique Product ID [SKU]',
|
747 |
'description' => 'Description',
|
748 |
'link' => 'Product URL',
|
749 |
'price' => 'Price[Current/Sale Price]',
|
750 |
'title' => 'Product Title',
|
751 |
+
),
|
752 |
+
),
|
753 |
+
2 => array(
|
754 |
'optionGroup' => 'Highly Recommended Attributes',
|
755 |
+
'option' => array(
|
756 |
'image_link_1' => 'Main Image',
|
757 |
'brand' => 'Brand of the product',
|
758 |
'category' => 'Main category',
|
763 |
'in_stock' => 'Stock status',
|
764 |
'in_stock_amount' => 'Amount of items in stock',
|
765 |
'price_old' => 'Old price [Regular Price (in case of discount prices)]',
|
766 |
+
),
|
767 |
+
),
|
768 |
+
3 => array(
|
769 |
'optionGroup' => 'Recommended Attributes',
|
770 |
+
'option' => array(
|
771 |
'color_primary' => 'Primary color of the product',
|
772 |
'condition' => 'Product Condition',
|
773 |
'gender_target' => 'Gender Target',
|
780 |
'image_link_7' => 'Image 7',
|
781 |
'image_link_8' => 'Image 8',
|
782 |
'image_link_9' => 'Image 9',
|
783 |
+
),
|
784 |
+
),
|
785 |
+
4 => array(
|
786 |
'optionGroup' => 'Optional Attributes',
|
787 |
+
'option' => array(
|
788 |
'additional_costs' => 'Additional costs',
|
789 |
'brand_logo' => 'Brand Logo URL',
|
790 |
'delivery_description' => 'Description of the delivery method',
|
797 |
'size' => 'General Size field',
|
798 |
'size_description' => 'Description for the “size” field',
|
799 |
'terms_conditions' => 'Full terms and conditions',
|
800 |
+
),
|
801 |
+
),
|
802 |
+
),
|
803 |
+
'daisycon_automotive' => array(
|
804 |
+
1 => array(
|
805 |
'optionGroup' => 'Required Attributes',
|
806 |
+
'option' => array(
|
807 |
+
'description' => 'Description of the product',
|
808 |
+
'link' => 'URL to the page of the product',
|
809 |
+
'price' => 'Price [Current/Sale Price]',
|
810 |
+
'sku' => 'Unique Product ID [SKU]',
|
811 |
+
'title' => 'Complete name of the product',
|
812 |
+
),
|
813 |
+
),
|
814 |
+
2 => array(
|
815 |
'optionGroup' => 'Highly Recommended Attributes',
|
816 |
+
'option' => array(
|
817 |
+
'brand' => 'Brand of the product',
|
818 |
+
'category' => 'Main category',
|
819 |
+
'category_path' => 'Category path',
|
820 |
+
'color_primary' => 'Primary color of the product',
|
821 |
+
'delivery_time' => 'Delivery time in days',
|
822 |
+
'ean' => 'EAN',
|
823 |
+
'google_category_id' => 'Google category ID',
|
824 |
+
'in_stock' => 'Stock status',
|
825 |
+
'in_stock_amount' => 'Amount of items in stock',
|
826 |
+
'price_old' => 'Old price [Regular Price]',
|
827 |
+
'image_link_1' => 'Main Image',
|
828 |
+
),
|
829 |
+
),
|
830 |
+
3 => array(
|
831 |
'optionGroup' => 'Recommended Attributes',
|
832 |
+
'option' => array(
|
833 |
+
'condition' => 'Product Condition',
|
834 |
+
'price_shipping' => 'Shipping costs',
|
835 |
+
'image_link_2' => 'Image 2',
|
836 |
+
'image_link_3' => 'Image 3',
|
837 |
+
'image_link_4' => 'Image 4',
|
838 |
+
'image_link_5' => 'Image 5',
|
839 |
+
'image_link_6' => 'Image 6',
|
840 |
+
'image_link_7' => 'Image 7',
|
841 |
+
'image_link_8' => 'Image 8',
|
842 |
+
'image_link_9' => 'Image 9',
|
843 |
+
),
|
844 |
+
),
|
845 |
+
4 => array(
|
846 |
'optionGroup' => 'Optional Attributes',
|
847 |
+
'option' => array(
|
848 |
+
'additional_costs' => 'Additional costs',
|
849 |
+
'brake_system' => 'Brake system type',
|
850 |
+
'brand_logo' => 'Brand Logo URL',
|
851 |
+
'delivery_description' => 'Description of the delivery method',
|
852 |
+
'fuel_type' => 'Fuel type',
|
853 |
+
'gear_system' => 'Gear system type',
|
854 |
+
'gender_target' => 'Gender Target',
|
855 |
+
'has_airco' => 'Is there an airco present',
|
856 |
+
'keywords' => 'Keywords [Tags]',
|
857 |
+
'model' => 'Model name/number',
|
858 |
+
'material_1' => 'The primary material',
|
859 |
+
'material_2' => 'The secondary material',
|
860 |
+
'material_3' => 'The tertiary material',
|
861 |
+
'priority' => 'Priority of the product',
|
862 |
'rental_location_city' => "City of a rental car's pick up location (if applicable)",
|
863 |
'rental_location_country' => "Country of a rental car's pick up location (if applicable)",
|
864 |
'rental_location_region' => "Region of a rental car's pick up location (if applicable)",
|
865 |
+
'size' => 'General field for size',
|
866 |
+
'size_description' => 'Description for the “size” field',
|
867 |
+
'tire_size' => 'The measurements of the tire size of the product.',
|
868 |
+
'year_built' => 'Year in which the product is fabricated',
|
869 |
+
'terms_conditions' => 'Full terms and conditions',
|
870 |
+
),
|
871 |
+
),
|
872 |
+
),
|
873 |
+
'daisycon_books' => array(
|
874 |
+
1 => array(
|
875 |
'optionGroup' => 'Required Attributes',
|
876 |
+
'option' => array(
|
877 |
+
'description' => 'Description of the product',
|
878 |
+
'link' => 'URL to the page of the product',
|
879 |
+
'price' => 'Price [Current/Sale Price]',
|
880 |
+
'sku' => 'Unique Product ID [SKU]',
|
881 |
+
'title' => 'Complete name of the product',
|
882 |
+
),
|
883 |
+
),
|
884 |
+
2 => array(
|
885 |
'optionGroup' => 'Highly Recommended Attributes',
|
886 |
+
'option' => array(
|
887 |
+
'author' => 'Name of the author',
|
888 |
+
'category' => 'Main category',
|
889 |
+
'category_path' => 'Category path',
|
890 |
+
'delivery_time' => 'Delivery time in days',
|
891 |
+
'ean' => 'EAN',
|
892 |
+
'google_category_id' => 'Google category ID',
|
893 |
+
'in_stock' => 'Stock status',
|
894 |
+
'in_stock_amount' => 'Amount of items in stock',
|
895 |
+
'isbn' => 'ISBN of the book/magazine',
|
896 |
+
'price_old' => 'Old price [Regular Price]',
|
897 |
+
'image_link_1' => 'Main Image',
|
898 |
+
),
|
899 |
+
),
|
900 |
+
3 => array(
|
901 |
'optionGroup' => 'Recommended Attributes',
|
902 |
+
'option' => array(
|
903 |
+
'book_publisher' => 'Publisher of the book',
|
904 |
+
'book_type' => 'Type of book',
|
905 |
+
'price_shipping' => 'Shipping costs',
|
906 |
+
'image_link_2' => 'Image 2',
|
907 |
+
'image_link_3' => 'Image 3',
|
908 |
+
'image_link_4' => 'Image 4',
|
909 |
+
'image_link_5' => 'Image 5',
|
910 |
+
'image_link_6' => 'Image 6',
|
911 |
+
'image_link_7' => 'Image 7',
|
912 |
+
'image_link_8' => 'Image 8',
|
913 |
+
'image_link_9' => 'Image 9',
|
914 |
+
),
|
915 |
+
),
|
916 |
+
4 => array(
|
917 |
'optionGroup' => 'Low Priority Attributes',
|
918 |
+
'option' => array(
|
919 |
+
'condition' => 'Product Condition',
|
920 |
+
'gender_target' => 'Gender to which the product is aimed',
|
921 |
+
'number_of_pages' => 'Number of pages',
|
922 |
+
'release_date' => 'Date of publication',
|
923 |
+
),
|
924 |
+
),
|
925 |
+
5 => array(
|
926 |
'optionGroup' => 'Optional Attributes',
|
927 |
+
'option' => array(
|
928 |
+
'additional_costs' => 'Additional costs',
|
929 |
+
'book_edition' => 'Edition of the book',
|
930 |
+
'brand' => 'Brand of the product',
|
931 |
+
'brand_logo' => 'URL to an image of the brand logo',
|
932 |
+
'color_primary' => 'Primary color of the product',
|
933 |
+
'delivery_description' => 'Description of the delivery method',
|
934 |
+
'file_size' => 'Total file size in kbps',
|
935 |
+
'file_type' => 'File type (for example: epub)',
|
936 |
+
'keywords' => 'Keywords for this product',
|
937 |
+
'language' => 'Language of the product',
|
938 |
+
'model' => 'Model name/number',
|
939 |
+
'priority' => 'Priority of the product',
|
940 |
+
'size' => 'General field for size',
|
941 |
+
'size_description' => 'Description for the “size” field',
|
942 |
+
'size_length' => 'Magazine length in mm',
|
943 |
+
'size_width' => 'Magazine width in mm',
|
944 |
+
'weight' => 'Weight in grams',
|
945 |
+
'material_1' => 'The primary material',
|
946 |
+
'material_2' => 'The secondary material',
|
947 |
+
'material_3' => 'The tertiary material',
|
948 |
+
'terms_conditions' => 'Full terms and conditions',
|
949 |
+
),
|
950 |
+
),
|
951 |
+
),
|
952 |
+
'daisycon_cosmetics' => array(
|
953 |
+
1 => array(
|
954 |
'optionGroup' => 'Required Attributes',
|
955 |
+
'option' => array(
|
956 |
+
'description' => 'Description of the product',
|
957 |
+
'link' => 'URL to the page of the product',
|
958 |
+
'price' => 'Price [Current/Sale Price]',
|
959 |
+
'sku' => 'Unique Product ID [SKU]',
|
960 |
+
'title' => 'Complete name of the product',
|
961 |
+
),
|
962 |
+
),
|
963 |
+
2 => array(
|
964 |
'optionGroup' => 'Highly Recommended Attributes',
|
965 |
+
'option' => array(
|
966 |
+
'allergic_info' => 'Allergy information',
|
967 |
+
'amount_content' => 'Amount of content, for example: 120(in combination with amount_description)',
|
968 |
+
'amount_description' => 'The unit in which the amount is specified for example: ml',
|
969 |
+
'category' => 'Main category',
|
970 |
+
'category_path' => 'Category path',
|
971 |
+
'delivery_time' => 'Delivery time in days',
|
972 |
+
'ean' => 'EAN',
|
973 |
+
'google_category_id' => 'Google category ID',
|
974 |
+
'in_stock' => 'Stock status',
|
975 |
+
'in_stock_amount' => 'Amount of items in stock',
|
976 |
+
'price_old' => 'Old price [Regular Price]',
|
977 |
+
'image_link_1' => 'Main Image',
|
978 |
+
),
|
979 |
+
),
|
980 |
+
3 => array(
|
981 |
'optionGroup' => 'Recommended Attributes',
|
982 |
+
'option' => array(
|
983 |
+
'description_ingredients' => 'Description of the ingredients',
|
984 |
+
'gender_target' => 'Gender to which the product is aimed',
|
985 |
+
'price_shipping' => 'Shipping costs',
|
986 |
+
'skin_type' => 'Skintype for which the product is made',
|
987 |
+
'image_link_2' => 'Image 2',
|
988 |
+
'image_link_3' => 'Image 3',
|
989 |
+
'image_link_4' => 'Image 4',
|
990 |
+
'image_link_5' => 'Image 5',
|
991 |
+
'image_link_6' => 'Image 6',
|
992 |
+
'image_link_7' => 'Image 7',
|
993 |
+
'image_link_8' => 'Image 8',
|
994 |
+
'image_link_9' => 'Image 9',
|
995 |
+
),
|
996 |
+
),
|
997 |
+
4 => array(
|
998 |
'optionGroup' => 'Low Priority Attributes',
|
999 |
+
'option' => array(
|
1000 |
+
'color_primary' => 'Primary color of the product',
|
1001 |
+
),
|
1002 |
+
),
|
1003 |
+
5 => array(
|
1004 |
'optionGroup' => 'Optional Attributes',
|
1005 |
+
'option' => array(
|
1006 |
+
'additional_costs' => 'Additional costs',
|
1007 |
+
'brand_logo' => 'URL to an image of the brand logo',
|
1008 |
+
'condition' => 'Product Condition',
|
1009 |
+
'delivery_description' => 'Description of the delivery method',
|
1010 |
+
'keywords' => 'Keywords for this product',
|
1011 |
+
'made_in_country' => 'Country in which the product is fabricated',
|
1012 |
+
'model' => 'Model name/number',
|
1013 |
+
'priority' => 'Priority of the product',
|
1014 |
+
'size' => 'General field for size',
|
1015 |
+
'size_description' => 'Description for the “size” field',
|
1016 |
+
'weight' => 'Weight in grams',
|
1017 |
+
'material_1' => 'The primary material',
|
1018 |
+
'material_2' => 'The secondary material',
|
1019 |
+
'material_3' => 'The tertiary material',
|
1020 |
+
'terms_conditions' => 'Full terms and conditions',
|
1021 |
+
),
|
1022 |
+
),
|
1023 |
+
),
|
1024 |
+
'daisycon_daily_offers' => array(
|
1025 |
+
1 => array(
|
1026 |
'optionGroup' => 'Required Attributes',
|
1027 |
+
'option' => array(
|
1028 |
+
'description' => 'Description of the product',
|
1029 |
+
'link' => 'URL to the page of the product',
|
1030 |
+
'price' => 'Price [Current/Sale Price]',
|
1031 |
+
'sku' => 'Unique Product ID [SKU]',
|
1032 |
+
'title' => 'Complete name of the product',
|
1033 |
+
),
|
1034 |
+
),
|
1035 |
+
2 => array(
|
1036 |
'optionGroup' => 'Highly Recommended Attributes',
|
1037 |
+
'option' => array(
|
1038 |
+
'brand' => 'Brand of the product',
|
1039 |
+
'category' => 'Main category',
|
1040 |
+
'category_path' => 'Category path',
|
1041 |
+
'delivery_time' => 'Delivery time in days',
|
1042 |
+
'ean' => 'EAN',
|
1043 |
+
'in_stock' => 'Stock status',
|
1044 |
+
'in_stock_amount' => 'Amount of items in stock',
|
1045 |
+
'price_old' => 'Old price [Regular Price]',
|
1046 |
+
'image_link_1' => 'Main Image',
|
1047 |
+
),
|
1048 |
+
),
|
1049 |
+
3 => array(
|
1050 |
'optionGroup' => 'Recommended Attributes',
|
1051 |
+
'option' => array(
|
1052 |
+
'google_category_id' => 'Google category ID',
|
1053 |
+
'price_shipping' => 'Shipping costs',
|
1054 |
+
'image_link_2' => 'Image 2',
|
1055 |
+
'image_link_3' => 'Image 3',
|
1056 |
+
'image_link_4' => 'Image 4',
|
1057 |
+
'image_link_5' => 'Image 5',
|
1058 |
+
'image_link_6' => 'Image 6',
|
1059 |
+
'image_link_7' => 'Image 7',
|
1060 |
+
'image_link_8' => 'Image 8',
|
1061 |
+
'image_link_9' => 'Image 9',
|
1062 |
+
),
|
1063 |
+
),
|
1064 |
+
4 => array(
|
1065 |
'optionGroup' => 'Optional Attributes',
|
1066 |
+
'option' => array(
|
1067 |
+
'additional_costs' => 'Additional costs',
|
1068 |
+
'brand_logo' => 'URL to an image of the brand logo',
|
1069 |
+
'color_primary' => 'Primary color of the product',
|
1070 |
+
'condition' => 'Product Condition',
|
1071 |
+
'delivery_description' => 'Description of the delivery method',
|
1072 |
'discount_amount' => "Amount of discount in euro's",
|
1073 |
+
'discount_percentage' => 'Amount of discount in percent',
|
1074 |
+
'gender_target' => 'Gender to which the product is aimed',
|
1075 |
+
'keywords' => 'Keywords for this product',
|
1076 |
+
'model' => 'Model name/number',
|
1077 |
+
'offer_datetime_end' => 'End (time and) date of the daily offer',
|
1078 |
+
'offer_datetime_start' => 'Start (time and) date of the daily offer',
|
1079 |
+
'size' => 'General field for size',
|
1080 |
+
'size_description' => 'Description for the “size” field',
|
1081 |
+
'material_1' => 'The primary material',
|
1082 |
+
'material_2' => 'The secondary material',
|
1083 |
+
'material_3' => 'The tertiary material',
|
1084 |
+
'terms_conditions' => 'Full terms and conditions',
|
1085 |
+
),
|
1086 |
+
),
|
1087 |
+
),
|
1088 |
+
'daisycon_electronics' => array(
|
1089 |
+
1 => array(
|
1090 |
'optionGroup' => 'Required Attributes',
|
1091 |
+
'option' => array(
|
1092 |
+
'description' => 'Description of the product',
|
1093 |
+
'link' => 'URL to the page of the product',
|
1094 |
+
'price' => 'Price [Current/Sale Price]',
|
1095 |
+
'sku' => 'Unique Product ID [SKU]',
|
1096 |
+
'title' => 'Complete name of the product',
|
1097 |
+
),
|
1098 |
+
),
|
1099 |
+
2 => array(
|
1100 |
'optionGroup' => 'Highly Recommended Attributes',
|
1101 |
+
'option' => array(
|
1102 |
+
'brand' => 'Brand of the product',
|
1103 |
+
'category' => 'Main category',
|
1104 |
+
'category_path' => 'Category path',
|
1105 |
+
'delivery_time' => 'Delivery time in days',
|
1106 |
+
'ean' => 'EAN',
|
1107 |
+
'google_category_id' => 'Google category ID',
|
1108 |
+
'in_stock' => 'Stock status',
|
1109 |
+
'in_stock_amount' => 'Amount of items in stock',
|
1110 |
+
'model' => 'Model name/number',
|
1111 |
+
'price_old' => 'Old price [Regular Price]',
|
1112 |
+
'image_link_1' => 'Main Image',
|
1113 |
+
),
|
1114 |
+
),
|
1115 |
+
3 => array(
|
1116 |
'optionGroup' => 'Recommended Attributes',
|
1117 |
+
'option' => array(
|
1118 |
+
'color_primary' => 'Primary color of the product',
|
1119 |
+
'price_shipping' => 'Shipping costs',
|
1120 |
+
'image_link_2' => 'Image 2',
|
1121 |
+
'image_link_3' => 'Image 3',
|
1122 |
+
'image_link_4' => 'Image 4',
|
1123 |
+
'image_link_5' => 'Image 5',
|
1124 |
+
'image_link_6' => 'Image 6',
|
1125 |
+
'image_link_7' => 'Image 7',
|
1126 |
+
'image_link_8' => 'Image 8',
|
1127 |
+
'image_link_9' => 'Image 9',
|
1128 |
+
),
|
1129 |
+
),
|
1130 |
+
4 => array(
|
1131 |
'optionGroup' => 'Low Priority Attributes',
|
1132 |
+
'option' => array(
|
1133 |
+
'condition' => 'Product Condition',
|
1134 |
+
),
|
1135 |
+
),
|
1136 |
+
5 => array(
|
1137 |
'optionGroup' => 'Optional Attributes',
|
1138 |
+
'option' => array(
|
1139 |
+
'additional_costs' => 'Additional costs',
|
1140 |
+
'audio_surround' => 'Has audio surround sound',
|
1141 |
+
'batteries_included' => 'Specifies is batteries are included at the purchase of the product',
|
1142 |
+
'brand_logo' => 'URL to an image of the brand logo',
|
1143 |
+
'connection_type' => 'Connection type, for example: USB',
|
1144 |
+
'delivery_description' => 'Description of the delivery method',
|
1145 |
+
'device_max_content' => 'Maximum content of the product, for example: 7KG or 3L',
|
1146 |
+
'device_max_temperature' => 'Maximum temperature the device can reach in Celsius',
|
1147 |
+
'device_serve_amount' => 'Amount of portions/persons the product can serve.',
|
1148 |
+
'device_watt' => 'Maximum wattage of the product for example: 450',
|
1149 |
+
'dishwasher_safe' => 'Product is dishwasher proof',
|
1150 |
+
'disposal_fee' => 'Disposal fee of the product in euro’s',
|
1151 |
+
'file_types_supported' => 'Supported filetypes',
|
1152 |
+
'gender_target' => 'Gender to which the product is aimed',
|
1153 |
+
'has_alarm' => 'Product has an alarm',
|
1154 |
+
'has_grill' => 'Product has a grill option, or a grill is present',
|
1155 |
+
'has_microwave' => 'Product has a microwave option or a microwave is present',
|
1156 |
+
'has_oven' => 'Product has an oven option or an oven is present',
|
1157 |
+
'has_radio' => 'Product has a radio option or a radio is pressent',
|
1158 |
+
'has_remote_control' => 'Product has a remote',
|
1159 |
+
'has_timer' => 'Product has a timer',
|
1160 |
+
'has_wifi' => 'Product has a wifi connection or wifi is present',
|
1161 |
+
'keywords' => 'Keywords for this product',
|
1162 |
+
'made_in_country' => 'Country in which the product is fabricated',
|
1163 |
+
'partnumber' => 'Part Number [MPN]',
|
1164 |
+
'power_type' => 'Type of energysource, for example: gas, electric, ceramic',
|
1165 |
+
'price_suggested_retail' => 'Suggested price',
|
1166 |
+
'priority' => 'Priority of the product',
|
1167 |
+
'resolution_record' => 'Camera recording resolution of the product (for example: 1280x768, 350dpi or 10MP)',
|
1168 |
+
'resolution_screen' => 'Screenresolution of the product (For example: 1280x768 or 350dpi)',
|
1169 |
+
'screen_size' => 'Screensize in inches',
|
1170 |
+
'screen_type' => 'Screentype of the product (for example: LED/3D/etc.)',
|
1171 |
+
'size' => 'General field for size',
|
1172 |
+
'size_description' => 'Description for the “size” field',
|
1173 |
+
'size_length' => 'Product length in mm',
|
1174 |
+
'size_width' => 'Product width in mm',
|
1175 |
+
'specs' => 'All specifications/functionalities of the product',
|
1176 |
+
'terms_conditions' => 'Full terms and conditions',
|
1177 |
+
'material_1' => 'The primary material',
|
1178 |
+
'material_2' => 'The secondary material',
|
1179 |
+
'material_3' => 'The tertiary material',
|
1180 |
+
),
|
1181 |
+
),
|
1182 |
+
),
|
1183 |
+
'name' => array(),
|
1184 |
+
);
|
1185 |
}
|
1186 |
+
}
|
V5/Query/BOTHQuery.php
CHANGED
@@ -1,11 +1,13 @@
|
|
1 |
<?php
|
|
|
2 |
namespace CTXFeed\V5\Query;
|
3 |
|
4 |
class BOTHQuery implements QueryInterface {
|
5 |
private $config;
|
6 |
|
7 |
-
public function __construct( $config ) {
|
8 |
$this->config = $config;
|
|
|
9 |
}
|
10 |
|
11 |
public function get_product_types() {
|
@@ -13,7 +15,7 @@ class BOTHQuery implements QueryInterface {
|
|
13 |
}
|
14 |
|
15 |
public function get_query_arguments() {
|
16 |
-
return
|
17 |
}
|
18 |
|
19 |
public function get_product_status() {
|
@@ -21,8 +23,8 @@ class BOTHQuery implements QueryInterface {
|
|
21 |
}
|
22 |
|
23 |
public function product_ids() {
|
24 |
-
$wp =
|
25 |
-
$wc =
|
26 |
|
27 |
return array_unique( array_merge( $wc, $wp ) );
|
28 |
}
|
1 |
<?php
|
2 |
+
|
3 |
namespace CTXFeed\V5\Query;
|
4 |
|
5 |
class BOTHQuery implements QueryInterface {
|
6 |
private $config;
|
7 |
|
8 |
+
public function __construct( $config, $args = [] ) {
|
9 |
$this->config = $config;
|
10 |
+
$this->arguments = empty( $args ) ? $this->get_query_arguments() : $args;
|
11 |
}
|
12 |
|
13 |
public function get_product_types() {
|
15 |
}
|
16 |
|
17 |
public function get_query_arguments() {
|
18 |
+
return [];
|
19 |
}
|
20 |
|
21 |
public function get_product_status() {
|
23 |
}
|
24 |
|
25 |
public function product_ids() {
|
26 |
+
$wp = ( new WPQuery( $this->config, $this->arguments ) )->product_ids();
|
27 |
+
$wc = ( new WCQuery( $this->config, $this->arguments ) )->product_ids();
|
28 |
|
29 |
return array_unique( array_merge( $wc, $wp ) );
|
30 |
}
|
V5/Query/QueryFactory.php
CHANGED
@@ -4,7 +4,6 @@ namespace CTXFeed\V5\Query;
|
|
4 |
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
use CTXFeed\V5\Utility\Settings;
|
7 |
-
use CTXFeed\V5\Query\WCReviewQuery;
|
8 |
|
9 |
class QueryFactory {
|
10 |
/**
|
@@ -12,17 +11,18 @@ class QueryFactory {
|
|
12 |
*
|
13 |
* @return array
|
14 |
*/
|
15 |
-
public static function get_ids( $config ) {
|
16 |
$template = $config->get_feed_template();
|
17 |
$queryType = Settings::get( 'product_query_type' );
|
18 |
-
|
19 |
$class = "\CTXFeed\V5\Query\\" . strtoupper( $queryType ) . "Query";
|
20 |
if ( strpos( $template, 'review' ) ) {
|
21 |
$class = WCReviewQuery::class;
|
22 |
}
|
|
|
23 |
/**
|
24 |
* @var WPQuery|WCQuery|WCReviewQuery $class Query Class
|
25 |
*/
|
26 |
-
return ( new Query( new $class( $config ) ) )->get_ids();
|
27 |
}
|
28 |
-
}
|
4 |
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
use CTXFeed\V5\Utility\Settings;
|
|
|
7 |
|
8 |
class QueryFactory {
|
9 |
/**
|
11 |
*
|
12 |
* @return array
|
13 |
*/
|
14 |
+
public static function get_ids( $config, $args = [] ) {
|
15 |
$template = $config->get_feed_template();
|
16 |
$queryType = Settings::get( 'product_query_type' );
|
17 |
+
|
18 |
$class = "\CTXFeed\V5\Query\\" . strtoupper( $queryType ) . "Query";
|
19 |
if ( strpos( $template, 'review' ) ) {
|
20 |
$class = WCReviewQuery::class;
|
21 |
}
|
22 |
+
|
23 |
/**
|
24 |
* @var WPQuery|WCQuery|WCReviewQuery $class Query Class
|
25 |
*/
|
26 |
+
return ( new Query( new $class( $config ,$args) ) )->get_ids();
|
27 |
}
|
28 |
+
}
|
V5/Query/WCQuery.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
namespace CTXFeed\V5\Query;
|
3 |
|
4 |
use CTXFeed\V5\Utility\Settings;
|
@@ -8,9 +9,9 @@ class WCQuery implements QueryInterface {
|
|
8 |
private $config;
|
9 |
private $arguments;
|
10 |
|
11 |
-
public function __construct( $config ) {
|
12 |
$this->config = $config;
|
13 |
-
$this->arguments = $this->get_query_arguments();
|
14 |
}
|
15 |
|
16 |
public function get_product_types() {
|
1 |
<?php
|
2 |
+
|
3 |
namespace CTXFeed\V5\Query;
|
4 |
|
5 |
use CTXFeed\V5\Utility\Settings;
|
9 |
private $config;
|
10 |
private $arguments;
|
11 |
|
12 |
+
public function __construct( $config, $args = [] ) {
|
13 |
$this->config = $config;
|
14 |
+
$this->arguments = empty( $args ) ? $this->get_query_arguments() : $args;
|
15 |
}
|
16 |
|
17 |
public function get_product_types() {
|
V5/Query/WPQuery.php
CHANGED
@@ -6,9 +6,9 @@ class WPQuery implements QueryInterface {
|
|
6 |
private $config;
|
7 |
private $arguments;
|
8 |
|
9 |
-
public function __construct( $config ) {
|
10 |
$this->config = $config;
|
11 |
-
$this->arguments = $this->get_query_arguments();
|
12 |
}
|
13 |
|
14 |
public function get_product_types() {
|
@@ -125,7 +125,7 @@ class WPQuery implements QueryInterface {
|
|
125 |
);
|
126 |
}
|
127 |
|
128 |
-
return apply_filters( 'ctx_filter_arguments_for_product_query', $arguments, '
|
129 |
}
|
130 |
|
131 |
public function get_product_status() {
|
@@ -137,4 +137,4 @@ class WPQuery implements QueryInterface {
|
|
137 |
public function product_ids() {
|
138 |
return ( new WP_Query( $this->arguments ) )->get_posts();
|
139 |
}
|
140 |
-
}
|
6 |
private $config;
|
7 |
private $arguments;
|
8 |
|
9 |
+
public function __construct( $config, $args = [] ) {
|
10 |
$this->config = $config;
|
11 |
+
$this->arguments = empty( $args ) ? $this->get_query_arguments() : $args;
|
12 |
}
|
13 |
|
14 |
public function get_product_types() {
|
125 |
);
|
126 |
}
|
127 |
|
128 |
+
return apply_filters( 'ctx_filter_arguments_for_product_query', $arguments, 'wp' );
|
129 |
}
|
130 |
|
131 |
public function get_product_status() {
|
137 |
public function product_ids() {
|
138 |
return ( new WP_Query( $this->arguments ) )->get_posts();
|
139 |
}
|
140 |
+
}
|
V5/{Feed/CustomFeed.php → Template/CustomTemplate.php}
RENAMED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
use CTXFeed\V5\File\FileFactory;
|
4 |
use CTXFeed\V5\Product\ProductFactory;
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
|
7 |
-
class
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
@@ -21,7 +21,7 @@ class CustomFeed implements FeedInterface {
|
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
-
$this->structure =
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -58,4 +58,4 @@ class CustomFeed implements FeedInterface {
|
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
-
}
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
use CTXFeed\V5\File\FileFactory;
|
4 |
use CTXFeed\V5\Product\ProductFactory;
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
|
7 |
+
class CustomTemplate implements TemplateInterface {
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
+
$this->structure = TemplateFactory::get_structure( $config );
|
25 |
}
|
26 |
|
27 |
/**
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
+
}
|
V5/{Feed/Custom2Feed.php → Template/CustomXMLTemplate.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace CTXFeed\V5\
|
4 |
|
5 |
use CTXFeed\V5\Output\FormatOutput;
|
6 |
use CTXFeed\V5\Utility\Config;
|
@@ -12,7 +12,7 @@ use CTXFeed\V5\Product\ProductFactory;
|
|
12 |
use CTXFeed\V5\Product\ProductInfo;
|
13 |
use CTXFeed\V5\Utility\Settings;
|
14 |
|
15 |
-
class
|
16 |
/**
|
17 |
* @var Config $config Contain Feed Config.
|
18 |
*/
|
@@ -25,7 +25,7 @@ class Custom2Feed implements FeedInterface {
|
|
25 |
* @var array $structure Contain Feed Structure.
|
26 |
*/
|
27 |
private $structure;
|
28 |
-
|
29 |
private $feedHeader;
|
30 |
/**
|
31 |
* This variable is responsible for holding feed string
|
@@ -39,15 +39,15 @@ class Custom2Feed implements FeedInterface {
|
|
39 |
private $s;
|
40 |
private $productEngine;
|
41 |
private $variationElementsStart;
|
42 |
-
|
43 |
public function __construct( $ids, $config ) {
|
44 |
$this->ids = $ids;
|
45 |
$this->config = $config;
|
46 |
-
$getStructure =
|
47 |
$this->structure = $getStructure['structure'];
|
48 |
$this->variationElementsStart = $getStructure['variationElementsStart'];
|
49 |
}
|
50 |
-
|
51 |
/**
|
52 |
* Get Feed Body.
|
53 |
*
|
@@ -58,27 +58,27 @@ class Custom2Feed implements FeedInterface {
|
|
58 |
// $feed = $feed->make_body();
|
59 |
//
|
60 |
// return self::removeHeaderFooter( $feed );
|
61 |
-
|
62 |
// Get XML Elements from feed config
|
63 |
$Elements = $this->structure;
|
64 |
-
|
65 |
if ( ! empty( $this->structure ) && ! empty( $this->ids ) ) {
|
66 |
foreach ( $this->ids as $pid ) {
|
67 |
$product = wc_get_product( $pid );
|
68 |
$this->productEngine = new ProductInfo( $product, $this->config );
|
69 |
//TODO: PRODUCT VALIDATION AND FILTER IMPLEMENTATION
|
70 |
-
|
71 |
-
|
72 |
//TODO Filter products by Condition
|
73 |
// if (isset($this->config['fattribute']) && count($this->config['fattribute']) && !$this->productEngine->filter_product($product)) {
|
74 |
-
|
75 |
-
|
76 |
// Start making XML Elements
|
77 |
foreach ( $Elements as $each => $element ) {
|
78 |
-
|
79 |
-
|
80 |
if ( $each === $this->variationElementsStart && $product->is_type( 'variable' ) && $product->has_child() ) {
|
81 |
-
|
82 |
$variations = $product->get_children();
|
83 |
foreach ( $variations as $variation ) {
|
84 |
$variation = wc_get_product( $variation );
|
@@ -92,17 +92,17 @@ class Custom2Feed implements FeedInterface {
|
|
92 |
}
|
93 |
}
|
94 |
}
|
95 |
-
|
96 |
}
|
97 |
-
|
98 |
if ( $element['for'] === 'variation' ) {
|
99 |
continue;
|
100 |
}
|
101 |
-
|
102 |
if ( $element['for'] === 'ifVariationAvailable' && $product->get_type() !== 'variable' ) {
|
103 |
continue;
|
104 |
}
|
105 |
-
|
106 |
if ( $element['for'] === 'images' && isset( $element['attr_code'] ) ) {
|
107 |
$images = $this->productEngine->custom_xml_images( $product );
|
108 |
if ( ! empty( $images ) ) {
|
@@ -129,13 +129,13 @@ class Custom2Feed implements FeedInterface {
|
|
129 |
$this->feedString .= $this->make_xml_element( $element, $product );
|
130 |
}
|
131 |
}
|
132 |
-
|
133 |
}
|
134 |
}
|
135 |
-
|
136 |
return $this->feedString;
|
137 |
}
|
138 |
-
|
139 |
/**
|
140 |
* Get Feed Header.
|
141 |
*
|
@@ -145,7 +145,7 @@ class Custom2Feed implements FeedInterface {
|
|
145 |
$getHeader = explode( '{{each product start}}', $this->config->feed_config_custom2 );
|
146 |
$header = trim( $getHeader[0] );
|
147 |
$getNodes = explode( "\n", $header );
|
148 |
-
|
149 |
if ( ! empty( $getNodes ) ) {
|
150 |
foreach ( $getNodes as $value ) {
|
151 |
// Add header info to feed file
|
@@ -161,10 +161,10 @@ class Custom2Feed implements FeedInterface {
|
|
161 |
} else {
|
162 |
$this->feedHeader .= '<?xml version="1.0" encoding="utf-8" ?>' . "\n";
|
163 |
}
|
164 |
-
|
165 |
return $this->feedHeader;
|
166 |
}
|
167 |
-
|
168 |
/**
|
169 |
* Get Feed Footer.
|
170 |
*
|
@@ -180,10 +180,10 @@ class Custom2Feed implements FeedInterface {
|
|
180 |
$this->feedFooter .= $value;
|
181 |
}
|
182 |
}
|
183 |
-
|
184 |
return $this->feedFooter;
|
185 |
}
|
186 |
-
|
187 |
/**
|
188 |
* @param $element
|
189 |
* @param $product
|
@@ -196,20 +196,20 @@ class Custom2Feed implements FeedInterface {
|
|
196 |
$start = '';
|
197 |
$end = '';
|
198 |
$output = '';
|
199 |
-
|
200 |
-
|
201 |
$this->productEngine = new ProductInfo( $product, $this->config );
|
202 |
-
|
203 |
// Start XML Element
|
204 |
if (
|
205 |
empty( $element['elementTextInfo'] ) && // Get the root element.
|
206 |
empty( $element['end'] ) &&
|
207 |
6 === count( $element )
|
208 |
) {
|
209 |
-
|
210 |
// Start XML Element
|
211 |
$elementStart = $this->processStartingElement( $element, $product );
|
212 |
-
|
213 |
$end .= '<' . $elementStart . '>';
|
214 |
$string .= $end . "\n";
|
215 |
$p = true;
|
@@ -217,7 +217,7 @@ class Custom2Feed implements FeedInterface {
|
|
217 |
$elementStart = $this->processStartingElement( $element, $product );
|
218 |
$start .= '<' . $elementStart . '>';
|
219 |
}
|
220 |
-
|
221 |
// Make XML Element Text
|
222 |
if ( ! empty( $element['elementTextInfo'] ) ) {
|
223 |
if ( 'attribute' === $element['attr_type'] ) {
|
@@ -232,12 +232,12 @@ class Custom2Feed implements FeedInterface {
|
|
232 |
} elseif ( 'text' === $element['attr_type'] ) {
|
233 |
$output = ( isset( $element['attr_value'] ) && ! empty( $element['attr_value'] ) ) ? $element['attr_value'] : '';
|
234 |
}
|
235 |
-
|
236 |
$pluginAttribute = null;
|
237 |
if ( 'attribute' === $element['attr_type'] ) {
|
238 |
$pluginAttribute = $element['attr_code'];
|
239 |
}
|
240 |
-
|
241 |
// Format output according to commands
|
242 |
if ( array_key_exists( 'formatter', $element ) ) {
|
243 |
$formatOutput = new FormatOutput( $product, $this->config, $pluginAttribute );
|
@@ -245,7 +245,7 @@ class Custom2Feed implements FeedInterface {
|
|
245 |
}
|
246 |
$p = false;
|
247 |
}
|
248 |
-
|
249 |
// End XML Element
|
250 |
if ( '/' . $element['end'] === $element['start'] && empty( $element['elementTextInfo'] ) && 6 === count( $element ) ) {
|
251 |
if ( ! empty( $element['end'] ) ) {
|
@@ -256,26 +256,26 @@ class Custom2Feed implements FeedInterface {
|
|
256 |
} else if ( ! empty( $element['end'] ) ) {
|
257 |
$end .= '</' . $element['end'] . ">\n";
|
258 |
}
|
259 |
-
|
260 |
if ( ! $p ) {
|
261 |
// Add Prefix and Suffix
|
262 |
$prefix = isset( $element['prefix'] ) ? preg_replace( '!\s+!', ' ', $element['prefix'] ) : '';
|
263 |
$suffix = isset( $element['suffix'] ) ? preg_replace( '!\s+!', ' ', $element['suffix'] ) : '';
|
264 |
// $output = $this->productEngine->process_prefix_suffix( $output, $prefix, $suffix, isset( $element['attr_code'] ) ? $element['attr_code'] : '' );
|
265 |
-
|
266 |
// Add CDATA if needed
|
267 |
if ( ! empty( $output ) ) {
|
268 |
$output = $this->addCDATA( $element['include_cdata'], $output );
|
269 |
}
|
270 |
-
|
271 |
$string .= $start . $output . $end;
|
272 |
$p = false;
|
273 |
}
|
274 |
-
|
275 |
return $string;
|
276 |
}
|
277 |
-
|
278 |
-
|
279 |
/**
|
280 |
* Add Quotation mark to store code value.
|
281 |
*
|
@@ -284,7 +284,7 @@ class Custom2Feed implements FeedInterface {
|
|
284 |
public function addQuotation( $string ) {
|
285 |
return "'" . str_replace( array( "'", "\"", """ ), "", htmlspecialchars( $string ) ) . "'";
|
286 |
}
|
287 |
-
|
288 |
/**
|
289 |
* Remove Quotation mark from xml element.
|
290 |
*
|
@@ -293,7 +293,7 @@ class Custom2Feed implements FeedInterface {
|
|
293 |
public function removeQuotation( $string ) {
|
294 |
return str_replace( array( "'", "\"", """ ), "", $string );
|
295 |
}
|
296 |
-
|
297 |
/**
|
298 |
* Extract Start Code attributes value and replace.
|
299 |
*
|
@@ -315,27 +315,27 @@ class Custom2Feed implements FeedInterface {
|
|
315 |
);
|
316 |
$start_attr_code = $this->getReturnTypeValue( $tempAttribute, $product );
|
317 |
$start_attr_codes[ stripslashes( $attrValue ) ] = $this->addQuotation( $start_attr_code );
|
318 |
-
|
319 |
} else {
|
320 |
$start_attr_code = woo_feed_get_string_between( $attrValue, '{', '}' );
|
321 |
$start_attr_code = $this->getAttributeTypeAndValue( $start_attr_code, $product );
|
322 |
$start_attr_codes[ $attrValue ] = $this->addQuotation( $start_attr_code );
|
323 |
-
|
324 |
}
|
325 |
}
|
326 |
$elementStart = str_replace( array_keys( $start_attr_codes ), array_values( $start_attr_codes ), $elementStart );
|
327 |
}
|
328 |
-
|
329 |
return $elementStart;
|
330 |
}
|
331 |
-
|
332 |
-
|
333 |
public function process_eval( $attribute ) {
|
334 |
$return = preg_replace( '/\\\\/', '', $attribute );
|
335 |
-
|
336 |
return eval( $return );
|
337 |
}
|
338 |
-
|
339 |
public function getReturnTypeValue( $attribute, $product ) {
|
340 |
$variables = array();
|
341 |
if ( ! empty( $attribute ) && strpos( $attribute['to_return'], '$' ) !== false ) {
|
@@ -350,20 +350,20 @@ class Custom2Feed implements FeedInterface {
|
|
350 |
}
|
351 |
}
|
352 |
}
|
353 |
-
|
354 |
extract( $variables, EXTR_OVERWRITE ); // phpcs:ignore
|
355 |
$return = $attribute['to_return'];
|
356 |
$return = preg_replace( '/\\\\/', '', $return );
|
357 |
-
|
358 |
return eval( $return );
|
359 |
}
|
360 |
-
|
361 |
public function getAttributeTypeAndValue( $attribute, $product ) {
|
362 |
-
|
363 |
return ProductHelper::getAttributeValueByType( $attribute, $product, $this->config );
|
364 |
-
|
365 |
}
|
366 |
-
|
367 |
/** Return the php function of the attribute
|
368 |
*
|
369 |
* @param $function
|
@@ -373,7 +373,7 @@ class Custom2Feed implements FeedInterface {
|
|
373 |
private function returnPHPFunction( $function ) {
|
374 |
return $function;
|
375 |
}
|
376 |
-
|
377 |
/** Add CDATA to String
|
378 |
*
|
379 |
* @param string $status
|
@@ -384,13 +384,13 @@ class Custom2Feed implements FeedInterface {
|
|
384 |
private function addCDATA( $status, $output ) {
|
385 |
if ( 'yes' === $status ) {
|
386 |
$output = $this->removeCDATA( $output );
|
387 |
-
|
388 |
return '<![CDATA[' . $output . ']]>';
|
389 |
}
|
390 |
-
|
391 |
return $output;
|
392 |
}
|
393 |
-
|
394 |
/** Remove CDATA from String
|
395 |
*
|
396 |
* @param string $output
|
@@ -400,4 +400,4 @@ class Custom2Feed implements FeedInterface {
|
|
400 |
private function removeCDATA( $output ) {
|
401 |
return str_replace( [ "<![CDATA[", "]]>" ], "", $output );
|
402 |
}
|
403 |
-
}
|
1 |
<?php
|
2 |
|
3 |
+
namespace CTXFeed\V5\Template;
|
4 |
|
5 |
use CTXFeed\V5\Output\FormatOutput;
|
6 |
use CTXFeed\V5\Utility\Config;
|
12 |
use CTXFeed\V5\Product\ProductInfo;
|
13 |
use CTXFeed\V5\Utility\Settings;
|
14 |
|
15 |
+
class CustomXMLTemplate implements TemplateInterface {
|
16 |
/**
|
17 |
* @var Config $config Contain Feed Config.
|
18 |
*/
|
25 |
* @var array $structure Contain Feed Structure.
|
26 |
*/
|
27 |
private $structure;
|
28 |
+
|
29 |
private $feedHeader;
|
30 |
/**
|
31 |
* This variable is responsible for holding feed string
|
39 |
private $s;
|
40 |
private $productEngine;
|
41 |
private $variationElementsStart;
|
42 |
+
|
43 |
public function __construct( $ids, $config ) {
|
44 |
$this->ids = $ids;
|
45 |
$this->config = $config;
|
46 |
+
$getStructure = TemplateFactory::get_structure( $config );
|
47 |
$this->structure = $getStructure['structure'];
|
48 |
$this->variationElementsStart = $getStructure['variationElementsStart'];
|
49 |
}
|
50 |
+
|
51 |
/**
|
52 |
* Get Feed Body.
|
53 |
*
|
58 |
// $feed = $feed->make_body();
|
59 |
//
|
60 |
// return self::removeHeaderFooter( $feed );
|
61 |
+
|
62 |
// Get XML Elements from feed config
|
63 |
$Elements = $this->structure;
|
64 |
+
|
65 |
if ( ! empty( $this->structure ) && ! empty( $this->ids ) ) {
|
66 |
foreach ( $this->ids as $pid ) {
|
67 |
$product = wc_get_product( $pid );
|
68 |
$this->productEngine = new ProductInfo( $product, $this->config );
|
69 |
//TODO: PRODUCT VALIDATION AND FILTER IMPLEMENTATION
|
70 |
+
|
71 |
+
|
72 |
//TODO Filter products by Condition
|
73 |
// if (isset($this->config['fattribute']) && count($this->config['fattribute']) && !$this->productEngine->filter_product($product)) {
|
74 |
+
|
75 |
+
|
76 |
// Start making XML Elements
|
77 |
foreach ( $Elements as $each => $element ) {
|
78 |
+
|
79 |
+
|
80 |
if ( $each === $this->variationElementsStart && $product->is_type( 'variable' ) && $product->has_child() ) {
|
81 |
+
|
82 |
$variations = $product->get_children();
|
83 |
foreach ( $variations as $variation ) {
|
84 |
$variation = wc_get_product( $variation );
|
92 |
}
|
93 |
}
|
94 |
}
|
95 |
+
|
96 |
}
|
97 |
+
|
98 |
if ( $element['for'] === 'variation' ) {
|
99 |
continue;
|
100 |
}
|
101 |
+
|
102 |
if ( $element['for'] === 'ifVariationAvailable' && $product->get_type() !== 'variable' ) {
|
103 |
continue;
|
104 |
}
|
105 |
+
|
106 |
if ( $element['for'] === 'images' && isset( $element['attr_code'] ) ) {
|
107 |
$images = $this->productEngine->custom_xml_images( $product );
|
108 |
if ( ! empty( $images ) ) {
|
129 |
$this->feedString .= $this->make_xml_element( $element, $product );
|
130 |
}
|
131 |
}
|
132 |
+
|
133 |
}
|
134 |
}
|
135 |
+
|
136 |
return $this->feedString;
|
137 |
}
|
138 |
+
|
139 |
/**
|
140 |
* Get Feed Header.
|
141 |
*
|
145 |
$getHeader = explode( '{{each product start}}', $this->config->feed_config_custom2 );
|
146 |
$header = trim( $getHeader[0] );
|
147 |
$getNodes = explode( "\n", $header );
|
148 |
+
|
149 |
if ( ! empty( $getNodes ) ) {
|
150 |
foreach ( $getNodes as $value ) {
|
151 |
// Add header info to feed file
|
161 |
} else {
|
162 |
$this->feedHeader .= '<?xml version="1.0" encoding="utf-8" ?>' . "\n";
|
163 |
}
|
164 |
+
|
165 |
return $this->feedHeader;
|
166 |
}
|
167 |
+
|
168 |
/**
|
169 |
* Get Feed Footer.
|
170 |
*
|
180 |
$this->feedFooter .= $value;
|
181 |
}
|
182 |
}
|
183 |
+
|
184 |
return $this->feedFooter;
|
185 |
}
|
186 |
+
|
187 |
/**
|
188 |
* @param $element
|
189 |
* @param $product
|
196 |
$start = '';
|
197 |
$end = '';
|
198 |
$output = '';
|
199 |
+
|
200 |
+
|
201 |
$this->productEngine = new ProductInfo( $product, $this->config );
|
202 |
+
|
203 |
// Start XML Element
|
204 |
if (
|
205 |
empty( $element['elementTextInfo'] ) && // Get the root element.
|
206 |
empty( $element['end'] ) &&
|
207 |
6 === count( $element )
|
208 |
) {
|
209 |
+
|
210 |
// Start XML Element
|
211 |
$elementStart = $this->processStartingElement( $element, $product );
|
212 |
+
|
213 |
$end .= '<' . $elementStart . '>';
|
214 |
$string .= $end . "\n";
|
215 |
$p = true;
|
217 |
$elementStart = $this->processStartingElement( $element, $product );
|
218 |
$start .= '<' . $elementStart . '>';
|
219 |
}
|
220 |
+
|
221 |
// Make XML Element Text
|
222 |
if ( ! empty( $element['elementTextInfo'] ) ) {
|
223 |
if ( 'attribute' === $element['attr_type'] ) {
|
232 |
} elseif ( 'text' === $element['attr_type'] ) {
|
233 |
$output = ( isset( $element['attr_value'] ) && ! empty( $element['attr_value'] ) ) ? $element['attr_value'] : '';
|
234 |
}
|
235 |
+
|
236 |
$pluginAttribute = null;
|
237 |
if ( 'attribute' === $element['attr_type'] ) {
|
238 |
$pluginAttribute = $element['attr_code'];
|
239 |
}
|
240 |
+
|
241 |
// Format output according to commands
|
242 |
if ( array_key_exists( 'formatter', $element ) ) {
|
243 |
$formatOutput = new FormatOutput( $product, $this->config, $pluginAttribute );
|
245 |
}
|
246 |
$p = false;
|
247 |
}
|
248 |
+
|
249 |
// End XML Element
|
250 |
if ( '/' . $element['end'] === $element['start'] && empty( $element['elementTextInfo'] ) && 6 === count( $element ) ) {
|
251 |
if ( ! empty( $element['end'] ) ) {
|
256 |
} else if ( ! empty( $element['end'] ) ) {
|
257 |
$end .= '</' . $element['end'] . ">\n";
|
258 |
}
|
259 |
+
|
260 |
if ( ! $p ) {
|
261 |
// Add Prefix and Suffix
|
262 |
$prefix = isset( $element['prefix'] ) ? preg_replace( '!\s+!', ' ', $element['prefix'] ) : '';
|
263 |
$suffix = isset( $element['suffix'] ) ? preg_replace( '!\s+!', ' ', $element['suffix'] ) : '';
|
264 |
// $output = $this->productEngine->process_prefix_suffix( $output, $prefix, $suffix, isset( $element['attr_code'] ) ? $element['attr_code'] : '' );
|
265 |
+
|
266 |
// Add CDATA if needed
|
267 |
if ( ! empty( $output ) ) {
|
268 |
$output = $this->addCDATA( $element['include_cdata'], $output );
|
269 |
}
|
270 |
+
|
271 |
$string .= $start . $output . $end;
|
272 |
$p = false;
|
273 |
}
|
274 |
+
|
275 |
return $string;
|
276 |
}
|
277 |
+
|
278 |
+
|
279 |
/**
|
280 |
* Add Quotation mark to store code value.
|
281 |
*
|
284 |
public function addQuotation( $string ) {
|
285 |
return "'" . str_replace( array( "'", "\"", """ ), "", htmlspecialchars( $string ) ) . "'";
|
286 |
}
|
287 |
+
|
288 |
/**
|
289 |
* Remove Quotation mark from xml element.
|
290 |
*
|
293 |
public function removeQuotation( $string ) {
|
294 |
return str_replace( array( "'", "\"", """ ), "", $string );
|
295 |
}
|
296 |
+
|
297 |
/**
|
298 |
* Extract Start Code attributes value and replace.
|
299 |
*
|
315 |
);
|
316 |
$start_attr_code = $this->getReturnTypeValue( $tempAttribute, $product );
|
317 |
$start_attr_codes[ stripslashes( $attrValue ) ] = $this->addQuotation( $start_attr_code );
|
318 |
+
|
319 |
} else {
|
320 |
$start_attr_code = woo_feed_get_string_between( $attrValue, '{', '}' );
|
321 |
$start_attr_code = $this->getAttributeTypeAndValue( $start_attr_code, $product );
|
322 |
$start_attr_codes[ $attrValue ] = $this->addQuotation( $start_attr_code );
|
323 |
+
|
324 |
}
|
325 |
}
|
326 |
$elementStart = str_replace( array_keys( $start_attr_codes ), array_values( $start_attr_codes ), $elementStart );
|
327 |
}
|
328 |
+
|
329 |
return $elementStart;
|
330 |
}
|
331 |
+
|
332 |
+
|
333 |
public function process_eval( $attribute ) {
|
334 |
$return = preg_replace( '/\\\\/', '', $attribute );
|
335 |
+
|
336 |
return eval( $return );
|
337 |
}
|
338 |
+
|
339 |
public function getReturnTypeValue( $attribute, $product ) {
|
340 |
$variables = array();
|
341 |
if ( ! empty( $attribute ) && strpos( $attribute['to_return'], '$' ) !== false ) {
|
350 |
}
|
351 |
}
|
352 |
}
|
353 |
+
|
354 |
extract( $variables, EXTR_OVERWRITE ); // phpcs:ignore
|
355 |
$return = $attribute['to_return'];
|
356 |
$return = preg_replace( '/\\\\/', '', $return );
|
357 |
+
|
358 |
return eval( $return );
|
359 |
}
|
360 |
+
|
361 |
public function getAttributeTypeAndValue( $attribute, $product ) {
|
362 |
+
|
363 |
return ProductHelper::getAttributeValueByType( $attribute, $product, $this->config );
|
364 |
+
|
365 |
}
|
366 |
+
|
367 |
/** Return the php function of the attribute
|
368 |
*
|
369 |
* @param $function
|
373 |
private function returnPHPFunction( $function ) {
|
374 |
return $function;
|
375 |
}
|
376 |
+
|
377 |
/** Add CDATA to String
|
378 |
*
|
379 |
* @param string $status
|
384 |
private function addCDATA( $status, $output ) {
|
385 |
if ( 'yes' === $status ) {
|
386 |
$output = $this->removeCDATA( $output );
|
387 |
+
|
388 |
return '<![CDATA[' . $output . ']]>';
|
389 |
}
|
390 |
+
|
391 |
return $output;
|
392 |
}
|
393 |
+
|
394 |
/** Remove CDATA from String
|
395 |
*
|
396 |
* @param string $output
|
400 |
private function removeCDATA( $output ) {
|
401 |
return str_replace( [ "<![CDATA[", "]]>" ], "", $output );
|
402 |
}
|
403 |
+
}
|
V5/{Feed/FacebookFeed.php → Template/FacebookTemplate.php}
RENAMED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
use CTXFeed\V5\File\FileFactory;
|
4 |
use CTXFeed\V5\Product\ProductFactory;
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
|
7 |
-
class
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
@@ -21,7 +21,7 @@ class FacebookFeed implements FeedInterface {
|
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
-
$this->structure =
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -58,4 +58,4 @@ class FacebookFeed implements FeedInterface {
|
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
-
}
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
use CTXFeed\V5\File\FileFactory;
|
4 |
use CTXFeed\V5\Product\ProductFactory;
|
5 |
use CTXFeed\V5\Utility\Config;
|
6 |
|
7 |
+
class FacebookTemplate implements TemplateInterface {
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
+
$this->structure = TemplateFactory::get_structure( $config);
|
25 |
}
|
26 |
|
27 |
/**
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
+
}
|
V5/{Feed/GoogleReviewFeed.php → Template/GoogleReviewTemplate.php}
RENAMED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
//TODO: Google Review Implementation
|
4 |
use CTXFeed\V5\Utility\Config;
|
5 |
use CTXFeed\V5\File\FileFactory;
|
6 |
use CTXFeed\V5\Product\ProductFactory;
|
7 |
|
8 |
-
class
|
9 |
/**
|
10 |
* @var Config $config Contain Feed Config.
|
11 |
*/
|
@@ -22,7 +22,7 @@ class GoogleReviewFeed implements FeedInterface {
|
|
22 |
public function __construct( $ids, $config ) {
|
23 |
$this->ids = $ids;
|
24 |
$this->config = $config;
|
25 |
-
$this->structure =
|
26 |
}
|
27 |
|
28 |
/**
|
@@ -59,4 +59,4 @@ class GoogleReviewFeed implements FeedInterface {
|
|
59 |
|
60 |
return $feed['footer'];
|
61 |
}
|
62 |
-
}
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
//TODO: Google Review Implementation
|
4 |
use CTXFeed\V5\Utility\Config;
|
5 |
use CTXFeed\V5\File\FileFactory;
|
6 |
use CTXFeed\V5\Product\ProductFactory;
|
7 |
|
8 |
+
class GoogleReviewTemplate implements TemplateInterface {
|
9 |
/**
|
10 |
* @var Config $config Contain Feed Config.
|
11 |
*/
|
22 |
public function __construct( $ids, $config ) {
|
23 |
$this->ids = $ids;
|
24 |
$this->config = $config;
|
25 |
+
$this->structure = TemplateFactory::get_structure( $config);
|
26 |
}
|
27 |
|
28 |
/**
|
59 |
|
60 |
return $feed['footer'];
|
61 |
}
|
62 |
+
}
|
V5/{Feed/GoogleFeed.php → Template/GoogleTemplate.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace CTXFeed\V5\
|
4 |
|
5 |
use CTXFeed\V5\File\FileFactory;
|
6 |
use CTXFeed\V5\Filter\ValidateProduct;
|
@@ -9,7 +9,7 @@ use CTXFeed\V5\Product\ProductFactory;
|
|
9 |
use CTXFeed\V5\Utility\Config;
|
10 |
use CTXFeed\V5\Utility\Logs;
|
11 |
|
12 |
-
class
|
13 |
/**
|
14 |
* @var Config $config Contain Feed Config.
|
15 |
*/
|
@@ -26,7 +26,7 @@ class GoogleFeed implements FeedInterface {
|
|
26 |
public function __construct( $ids, $config ) {
|
27 |
$this->ids = $ids;
|
28 |
$this->config = $config;
|
29 |
-
$this->structure =
|
30 |
}
|
31 |
|
32 |
/**
|
1 |
<?php
|
2 |
|
3 |
+
namespace CTXFeed\V5\Template;
|
4 |
|
5 |
use CTXFeed\V5\File\FileFactory;
|
6 |
use CTXFeed\V5\Filter\ValidateProduct;
|
9 |
use CTXFeed\V5\Utility\Config;
|
10 |
use CTXFeed\V5\Utility\Logs;
|
11 |
|
12 |
+
class GoogleTemplate implements TemplateInterface {
|
13 |
/**
|
14 |
* @var Config $config Contain Feed Config.
|
15 |
*/
|
26 |
public function __construct( $ids, $config ) {
|
27 |
$this->ids = $ids;
|
28 |
$this->config = $config;
|
29 |
+
$this->structure = TemplateFactory::get_structure( $config );
|
30 |
}
|
31 |
|
32 |
/**
|
V5/{Feed/PinterestFeed.php → Template/PinterestTemplate.php}
RENAMED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
use CTXFeed\V5\Utility\Config;
|
4 |
use CTXFeed\V5\File\FileFactory;
|
5 |
use CTXFeed\V5\Product\ProductFactory;
|
6 |
|
7 |
-
class
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
@@ -21,7 +21,7 @@ class PinterestFeed implements FeedInterface {
|
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
-
$this->structure =
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -58,4 +58,4 @@ class PinterestFeed implements FeedInterface {
|
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
-
}
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
use CTXFeed\V5\Utility\Config;
|
4 |
use CTXFeed\V5\File\FileFactory;
|
5 |
use CTXFeed\V5\Product\ProductFactory;
|
6 |
|
7 |
+
class PinterestTemplate implements TemplateInterface {
|
8 |
/**
|
9 |
* @var Config $config Contain Feed Config.
|
10 |
*/
|
21 |
public function __construct( $ids, $config ) {
|
22 |
$this->ids = $ids;
|
23 |
$this->config = $config;
|
24 |
+
$this->structure = TemplateFactory::get_structure( $config );
|
25 |
}
|
26 |
|
27 |
/**
|
58 |
|
59 |
return $feed['footer'];
|
60 |
}
|
61 |
+
}
|
V5/Template/Template.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
+
class Template {
|
4 |
+
private $template;
|
5 |
+
|
6 |
+
public function __construct( TemplateInterface $template ) {
|
7 |
+
$this->template = $template;
|
8 |
+
}
|
9 |
+
|
10 |
+
public function get_feed() {
|
11 |
+
return $this->template->get_feed();
|
12 |
+
}
|
13 |
+
|
14 |
+
public function get_header() {
|
15 |
+
return $this->template->get_header();
|
16 |
+
}
|
17 |
+
|
18 |
+
public function get_footer() {
|
19 |
+
return $this->template->get_footer();
|
20 |
+
}
|
21 |
+
|
22 |
+
}
|
V5/{Feed/FeedFactory.php → Template/TemplateFactory.php}
RENAMED
@@ -1,24 +1,24 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
use CTXFeed\V5\Utility\Config;
|
4 |
use CTXFeed\V5\Structure\CustomStructure;
|
5 |
|
6 |
-
class
|
7 |
|
8 |
public static function MakeFeed( $ids, $config ) {
|
9 |
-
$class = "\CTXFeed\V5\
|
10 |
|
11 |
if ( ! class_exists( $class ) && in_array( $config->provider, self::get_grouped_templates(), true ) ) {
|
12 |
$class = array_search( $config->provider, self::get_grouped_templates(), true );
|
13 |
|
14 |
-
return new
|
15 |
}
|
16 |
|
17 |
if ( class_exists( $class ) ) {
|
18 |
-
return new
|
19 |
}
|
20 |
|
21 |
-
return new
|
22 |
}
|
23 |
|
24 |
public static function get_structure( $config ) {
|
@@ -46,4 +46,4 @@ class FeedFactory {
|
|
46 |
'pinterest' => [ 'pinterest', 'pinterest_rss' ],
|
47 |
];
|
48 |
}
|
49 |
-
}
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
use CTXFeed\V5\Utility\Config;
|
4 |
use CTXFeed\V5\Structure\CustomStructure;
|
5 |
|
6 |
+
class TemplateFactory {
|
7 |
|
8 |
public static function MakeFeed( $ids, $config ) {
|
9 |
+
$class = "\CTXFeed\V5\Template\\".ucfirst( $config->get_feed_template() ) . 'Feed';
|
10 |
|
11 |
if ( ! class_exists( $class ) && in_array( $config->provider, self::get_grouped_templates(), true ) ) {
|
12 |
$class = array_search( $config->provider, self::get_grouped_templates(), true );
|
13 |
|
14 |
+
return new Template( new $class( $ids, $config ) );
|
15 |
}
|
16 |
|
17 |
if ( class_exists( $class ) ) {
|
18 |
+
return new Template( new $class( $ids, $config ) );
|
19 |
}
|
20 |
|
21 |
+
return new Template( new CustomTemplate( $ids, $config ) );
|
22 |
}
|
23 |
|
24 |
public static function get_structure( $config ) {
|
46 |
'pinterest' => [ 'pinterest', 'pinterest_rss' ],
|
47 |
];
|
48 |
}
|
49 |
+
}
|
V5/{Feed/FeedInterface.php → Template/TemplateInterface.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
-
namespace CTXFeed\V5\
|
3 |
-
interface
|
4 |
public function get_feed( );
|
5 |
public function get_header( );
|
6 |
public function get_footer( );
|
1 |
<?php
|
2 |
+
namespace CTXFeed\V5\Template;
|
3 |
+
interface TemplateInterface {
|
4 |
public function get_feed( );
|
5 |
public function get_header( );
|
6 |
public function get_footer( );
|
V5/Utility/Config.php
CHANGED
@@ -4,8 +4,10 @@ namespace CTXFeed\V5\Utility;
|
|
4 |
/**
|
5 |
* This class contain feed information.
|
6 |
*/
|
7 |
-
|
8 |
-
|
|
|
|
|
9 |
/**
|
10 |
* @var array|bool
|
11 |
*/
|
@@ -21,49 +23,43 @@ class Config
|
|
21 |
private $context;
|
22 |
|
23 |
/**
|
24 |
-
* @param array
|
25 |
* @param string $context
|
26 |
*/
|
27 |
-
public function __construct($feedInfo, $context = 'view')
|
28 |
-
{
|
29 |
|
30 |
$this->feedInfo = $feedInfo;
|
31 |
-
$this->context
|
32 |
-
$config
|
33 |
-
$this->set_config($config);
|
34 |
}
|
35 |
|
36 |
-
public function __isset($name)
|
37 |
-
|
38 |
-
if (isset($this->config[$name])) {
|
39 |
return true;
|
40 |
}
|
41 |
|
42 |
return false;
|
43 |
}
|
44 |
|
45 |
-
public function __get($name)
|
46 |
-
|
47 |
-
return $this->config[$name];
|
48 |
}
|
49 |
|
50 |
-
public function __set($name, $value)
|
51 |
-
|
52 |
-
return $this->config[$name] = $value;
|
53 |
}
|
54 |
|
55 |
-
public function __unset($name)
|
56 |
-
|
57 |
-
unset($this->config[$name]);
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
*
|
62 |
* @return array
|
63 |
*/
|
64 |
-
public function get_feed_rules()
|
65 |
-
|
66 |
-
return isset($this->feedInfo['feedrules']) ? $this->feedInfo['feedrules'] : $this->feedInfo;
|
67 |
}
|
68 |
|
69 |
/**
|
@@ -71,9 +67,8 @@ class Config
|
|
71 |
*
|
72 |
* @return string
|
73 |
*/
|
74 |
-
public function get_feed_id()
|
75 |
-
|
76 |
-
if (isset($this->config['feed_id']) && !empty($this->config['feed_id'])) {
|
77 |
return $this->config['feed_id'];
|
78 |
}
|
79 |
|
@@ -85,9 +80,8 @@ class Config
|
|
85 |
*
|
86 |
* @return string
|
87 |
*/
|
88 |
-
public function get_feed_name()
|
89 |
-
|
90 |
-
if (isset($this->config['filename']) && !empty($this->config['filename'])) {
|
91 |
return $this->config['filename'];
|
92 |
}
|
93 |
|
@@ -99,11 +93,10 @@ class Config
|
|
99 |
*
|
100 |
* @return string
|
101 |
*/
|
102 |
-
public function get_feed_file_name($array = false)
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
if ($array) {
|
107 |
return $fileInfo;
|
108 |
}
|
109 |
|
@@ -118,9 +111,8 @@ class Config
|
|
118 |
*
|
119 |
* @return string
|
120 |
*/
|
121 |
-
public function get_feed_template()
|
122 |
-
|
123 |
-
if (isset($this->config['provider'])) {
|
124 |
return $this->config['provider'];
|
125 |
}
|
126 |
|
@@ -132,9 +124,8 @@ class Config
|
|
132 |
*
|
133 |
* @return string
|
134 |
*/
|
135 |
-
public function get_feed_language()
|
136 |
-
|
137 |
-
if (isset($this->config['feedLanguage']) && !empty($this->config['feedLanguage'])) {
|
138 |
return $this->config['feedLanguage'];
|
139 |
}
|
140 |
|
@@ -146,22 +137,21 @@ class Config
|
|
146 |
*
|
147 |
* @return string
|
148 |
*/
|
149 |
-
public function get_feed_currency()
|
150 |
-
|
151 |
-
if (isset($this->config['feedCurrency'])) {
|
152 |
return $this->config['feedCurrency'];
|
153 |
}
|
154 |
|
155 |
$attributes = $this->config['attributes'];
|
156 |
-
$priceAttrs = ['price', 'current_price', 'price_with_tax', 'current_price_with_tax'];
|
157 |
-
foreach ($priceAttrs as $price_attr) {
|
158 |
-
$key = array_search($price_attr, $attributes, true);
|
159 |
-
if ($key) {
|
160 |
break;
|
161 |
}
|
162 |
}
|
163 |
|
164 |
-
return isset($this->config['suffix'][$key]) ? $this->config['suffix'][$key] : get_woocommerce_currency();
|
165 |
}
|
166 |
|
167 |
/**
|
@@ -169,9 +159,8 @@ class Config
|
|
169 |
*
|
170 |
* @return string
|
171 |
*/
|
172 |
-
public function get_feed_country()
|
173 |
-
|
174 |
-
if (isset($this->config['feed_country']) && !empty($this->config['feed_country'])) {
|
175 |
return $this->config['feed_country'];
|
176 |
}
|
177 |
|
@@ -183,9 +172,8 @@ class Config
|
|
183 |
*
|
184 |
* @return string
|
185 |
*/
|
186 |
-
public function get_feed_file_type()
|
187 |
-
|
188 |
-
if (isset($this->config['feedType']) && !empty($this->config['feedType'])) {
|
189 |
return $this->config['feedType'];
|
190 |
}
|
191 |
|
@@ -197,16 +185,15 @@ class Config
|
|
197 |
*
|
198 |
* @return string
|
199 |
*/
|
200 |
-
public function get_delimiter()
|
201 |
-
|
202 |
-
|
203 |
-
if ('tsv' === $this->get_feed_file_type()) {
|
204 |
$this->config['delimiter'] = "\t";
|
205 |
|
206 |
return $this->config['delimiter'];
|
207 |
}
|
208 |
|
209 |
-
if (' ' === $this->config['delimiter']) {
|
210 |
$this->config['delimiter'] = "\s";
|
211 |
}
|
212 |
|
@@ -221,13 +208,12 @@ class Config
|
|
221 |
*
|
222 |
* @return string
|
223 |
*/
|
224 |
-
public function get_enclosure()
|
225 |
-
|
226 |
-
if (isset($this->config['enclosure']) && !empty($this->config['enclosure']) && in_array($this->config['enclosure'], [
|
227 |
'double',
|
228 |
'single'
|
229 |
-
])) {
|
230 |
-
return ('double' === $this->config['enclosure']) ? '"' : "'";
|
231 |
}
|
232 |
|
233 |
return false;
|
@@ -238,9 +224,8 @@ class Config
|
|
238 |
*
|
239 |
* @return string
|
240 |
*/
|
241 |
-
public function get_feed_items_wrapper()
|
242 |
-
|
243 |
-
if (isset($this->config['itemsWrapper']) && !empty($this->config['itemsWrapper'])) {
|
244 |
return $this->config['itemsWrapper'];
|
245 |
}
|
246 |
|
@@ -252,9 +237,8 @@ class Config
|
|
252 |
*
|
253 |
* @return string
|
254 |
*/
|
255 |
-
public function get_feed_item_wrapper()
|
256 |
-
|
257 |
-
if (isset($this->config['itemWrapper']) && !empty($this->config['itemWrapper'])) {
|
258 |
return $this->config['itemWrapper'];
|
259 |
}
|
260 |
|
@@ -266,9 +250,8 @@ class Config
|
|
266 |
*
|
267 |
* @return string
|
268 |
*/
|
269 |
-
public function get_feed_extra_header()
|
270 |
-
|
271 |
-
if (isset($this->config['extraHeader']) && !empty($this->config['extraHeader'])) {
|
272 |
return $this->config['extraHeader'];
|
273 |
}
|
274 |
|
@@ -280,9 +263,8 @@ class Config
|
|
280 |
*
|
281 |
* @return string
|
282 |
*/
|
283 |
-
public function get_shipping_country()
|
284 |
-
|
285 |
-
if (isset($this->config['shipping_country']) && !empty($this->config['shipping_country'])) {
|
286 |
return $this->config['shipping_country'];
|
287 |
}
|
288 |
|
@@ -294,9 +276,8 @@ class Config
|
|
294 |
*
|
295 |
* @return string
|
296 |
*/
|
297 |
-
public function get_tax_country()
|
298 |
-
|
299 |
-
if (isset($this->config['tax_country']) && !empty($this->config['tax_country'])) {
|
300 |
return $this->config['tax_country'];
|
301 |
}
|
302 |
|
@@ -308,9 +289,8 @@ class Config
|
|
308 |
*
|
309 |
* @return array|bool
|
310 |
*/
|
311 |
-
public function get_string_replace()
|
312 |
-
|
313 |
-
if (!empty($this->config['str_replace'])) {
|
314 |
return $this->config['str_replace'];
|
315 |
}
|
316 |
|
@@ -322,17 +302,16 @@ class Config
|
|
322 |
*
|
323 |
* @return array|bool
|
324 |
*/
|
325 |
-
public function get_campaign_parameters()
|
326 |
-
|
327 |
-
if (isset($this->config['campaign_parameters']) && !empty($this->config['campaign_parameters'])) {
|
328 |
return wp_parse_args(
|
329 |
$this->config['campaign_parameters'],
|
330 |
array(
|
331 |
-
'utm_source'
|
332 |
-
'utm_medium'
|
333 |
'utm_campaign' => '',
|
334 |
-
'utm_term'
|
335 |
-
'utm_content'
|
336 |
)
|
337 |
);
|
338 |
}
|
@@ -345,9 +324,8 @@ class Config
|
|
345 |
*
|
346 |
* @return bool
|
347 |
*/
|
348 |
-
public function remove_backorder_product()
|
349 |
-
|
350 |
-
if (isset($this->config['is_backorder'])) {
|
351 |
return 'y' === $this->config['is_backorder'];
|
352 |
}
|
353 |
|
@@ -359,9 +337,8 @@ class Config
|
|
359 |
*
|
360 |
* @return bool
|
361 |
*/
|
362 |
-
public function remove_outofstock_product()
|
363 |
-
|
364 |
-
if (isset($this->config['is_outOfStock'])) {
|
365 |
return 'y' === $this->config['is_outOfStock'];
|
366 |
}
|
367 |
|
@@ -373,9 +350,8 @@ class Config
|
|
373 |
*
|
374 |
* @return bool
|
375 |
*/
|
376 |
-
public function remove_empty_title()
|
377 |
-
|
378 |
-
if (isset($this->config['is_emptyTitle'])) {
|
379 |
return 'y' === $this->config['is_emptyTitle'];
|
380 |
}
|
381 |
|
@@ -387,9 +363,8 @@ class Config
|
|
387 |
*
|
388 |
* @return bool
|
389 |
*/
|
390 |
-
public function remove_empty_description()
|
391 |
-
|
392 |
-
if (isset($this->config['is_emptyDescription'])) {
|
393 |
return 'y' === $this->config['is_emptyDescription'];
|
394 |
}
|
395 |
|
@@ -401,9 +376,8 @@ class Config
|
|
401 |
*
|
402 |
* @return bool
|
403 |
*/
|
404 |
-
public function remove_empty_image()
|
405 |
-
|
406 |
-
if (isset($this->config['is_emptyImage'])) {
|
407 |
return 'y' === $this->config['is_emptyImage'];
|
408 |
}
|
409 |
|
@@ -415,18 +389,16 @@ class Config
|
|
415 |
*
|
416 |
* @return bool
|
417 |
*/
|
418 |
-
public function remove_empty_price()
|
419 |
-
|
420 |
-
if (isset($this->config['is_emptyPrice'])) {
|
421 |
return 'y' === $this->config['is_emptyPrice'];
|
422 |
}
|
423 |
|
424 |
return false;
|
425 |
}
|
426 |
|
427 |
-
public function remove_hidden_products()
|
428 |
-
|
429 |
-
if (isset($this->config['product_visibility'])) {
|
430 |
return $this->config['product_visibility'];
|
431 |
}
|
432 |
|
@@ -438,16 +410,15 @@ class Config
|
|
438 |
*
|
439 |
* @return bool|array
|
440 |
*/
|
441 |
-
public function get_number_format()
|
442 |
-
|
443 |
-
if (isset($this->config['decimal_separator'])) {
|
444 |
$number_format = [
|
445 |
-
'decimal_separator'
|
446 |
-
'thousand_separator' => apply_filters('ctx_feed_number_format_thousand_separator', $this->config['thousand_separator'], $this->config),
|
447 |
-
'decimals'
|
448 |
];
|
449 |
|
450 |
-
return apply_filters('ctx_feed_number_format', $number_format, $this->config);
|
451 |
}
|
452 |
|
453 |
return false;
|
@@ -458,12 +429,11 @@ class Config
|
|
458 |
*
|
459 |
* @return array|bool
|
460 |
*/
|
461 |
-
public function get_products_to_exclude()
|
462 |
-
|
463 |
-
if (isset($this->config['filter_mode'])) {
|
464 |
$mode = $this->config['filter_mode'];
|
465 |
-
if ('exclude' === $mode['product_ids'] && !empty($this->config['product_ids'])) {
|
466 |
-
return explode(',', $this->config['product_ids']);
|
467 |
}
|
468 |
}
|
469 |
|
@@ -475,13 +445,12 @@ class Config
|
|
475 |
*
|
476 |
* @return array|bool
|
477 |
*/
|
478 |
-
public function get_products_to_include()
|
479 |
-
{
|
480 |
|
481 |
-
if (isset($this->config['filter_mode'])) {
|
482 |
$mode = $this->config['filter_mode'];
|
483 |
-
if ('include' === $mode['product_ids'] && !empty($this->config['product_ids'])) {
|
484 |
-
return explode(',', $this->config['product_ids']);
|
485 |
}
|
486 |
}
|
487 |
|
@@ -493,12 +462,11 @@ class Config
|
|
493 |
*
|
494 |
* @return mixed
|
495 |
*/
|
496 |
-
public function get_categories_to_exclude()
|
497 |
-
{
|
498 |
|
499 |
-
if (isset($this->config['filter_mode'])) {
|
500 |
$mode = $this->config['filter_mode'];
|
501 |
-
if ('exclude' === $mode['categories'] && !empty($this->config['categories'])) {
|
502 |
return $this->config['categories'];
|
503 |
}
|
504 |
}
|
@@ -511,12 +479,11 @@ class Config
|
|
511 |
*
|
512 |
* @return mixed
|
513 |
*/
|
514 |
-
public function get_categories_to_include()
|
515 |
-
{
|
516 |
|
517 |
-
if (isset($this->config['filter_mode'])) {
|
518 |
$mode = $this->config['filter_mode'];
|
519 |
-
if ('include' === $mode['categories'] && !empty($this->config['categories'])) {
|
520 |
return $this->config['categories'];
|
521 |
}
|
522 |
}
|
@@ -530,17 +497,16 @@ class Config
|
|
530 |
*
|
531 |
* @return mixed
|
532 |
*/
|
533 |
-
public function get_post_status_to_include()
|
534 |
-
|
535 |
-
|
536 |
-
if (isset($this->config['filter_mode'], $this->config['post_status']) && !empty($this->config['post_status'])) {
|
537 |
$mode = $this->config['filter_mode'];
|
538 |
-
if ('include' === $mode['post_status']) {
|
539 |
return $this->config['post_status'];
|
540 |
}
|
541 |
|
542 |
-
if ('exclude' === $mode['post_status']) {
|
543 |
-
return array_unique(array_merge(array_diff($status, $this->config['post_status']), array_diff($status, $this->config['post_status'])));
|
544 |
}
|
545 |
}
|
546 |
|
@@ -552,11 +518,10 @@ class Config
|
|
552 |
*
|
553 |
* @return string|bool
|
554 |
*/
|
555 |
-
public function get_vendors_to_include()
|
556 |
-
{
|
557 |
|
558 |
-
if (isset($this->config['vendors']) && !empty($this->config['vendors'])) {
|
559 |
-
return implode(',', $this->config['vendors']);
|
560 |
}
|
561 |
|
562 |
return false;
|
@@ -567,10 +532,9 @@ class Config
|
|
567 |
*
|
568 |
* @return bool
|
569 |
*/
|
570 |
-
public function get_variations_to_include()
|
571 |
-
{
|
572 |
|
573 |
-
return isset($this->config['is_variations']) && in_array($this->config['is_variations'], ['y', 'both']);
|
574 |
}
|
575 |
|
576 |
/**
|
@@ -578,14 +542,13 @@ class Config
|
|
578 |
*
|
579 |
* @return array|bool
|
580 |
*/
|
581 |
-
public function get_advance_filters()
|
582 |
-
|
583 |
-
if (isset($this->config['fattribute'])) {
|
584 |
return [
|
585 |
-
"fattribute"
|
586 |
-
"condition"
|
587 |
"filterCompare" => $this->config['filterCompare'],
|
588 |
-
"concatType"
|
589 |
];
|
590 |
}
|
591 |
|
@@ -597,22 +560,21 @@ class Config
|
|
597 |
*
|
598 |
* @return array|bool
|
599 |
*/
|
600 |
-
public function get_ftp_config()
|
601 |
-
|
602 |
-
if (isset($this->config['ftpenabled']) && $this->config['ftpenabled']) {
|
603 |
|
604 |
// if ( '0' === $this->config['ftpenabled'] ) {
|
605 |
// return false;
|
606 |
// }
|
607 |
|
608 |
return [
|
609 |
-
"type"
|
610 |
-
"host"
|
611 |
-
"port"
|
612 |
"username" => $this->config['ftpuser'],
|
613 |
"password" => $this->config['ftppassword'],
|
614 |
-
"path"
|
615 |
-
"mode"
|
616 |
];
|
617 |
}
|
618 |
|
@@ -624,13 +586,12 @@ class Config
|
|
624 |
*
|
625 |
* @return array|bool
|
626 |
*/
|
627 |
-
public function get_variable_config()
|
628 |
-
|
629 |
-
if (isset($this->config['is_variations'])) {
|
630 |
return [
|
631 |
-
"is_variations"
|
632 |
-
"variable_price"
|
633 |
-
"variable_quantity" => isset($this->config['variable_quantity']) ? $this->config['variable_quantity'] : '',
|
634 |
];
|
635 |
}
|
636 |
|
@@ -642,9 +603,8 @@ class Config
|
|
642 |
*
|
643 |
* @return mixed
|
644 |
*/
|
645 |
-
public function get_composite_price_type()
|
646 |
-
|
647 |
-
if (isset($this->config['composite_price'])) {
|
648 |
return $this->config['composite_price'];
|
649 |
}
|
650 |
|
@@ -656,8 +616,7 @@ class Config
|
|
656 |
*
|
657 |
* @return array
|
658 |
*/
|
659 |
-
public function get_feed()
|
660 |
-
{
|
661 |
return $this->feedInfo;
|
662 |
}
|
663 |
|
@@ -666,8 +625,7 @@ class Config
|
|
666 |
*
|
667 |
* @return array
|
668 |
*/
|
669 |
-
public function get_config()
|
670 |
-
{
|
671 |
return $this->config;
|
672 |
}
|
673 |
|
@@ -676,110 +634,212 @@ class Config
|
|
676 |
*
|
677 |
* @return array
|
678 |
*/
|
679 |
-
private function set_config($config)
|
680 |
-
{
|
681 |
|
682 |
$defaults = array(
|
683 |
-
'provider'
|
684 |
-
'feed_country'
|
685 |
-
'filename'
|
686 |
-
'feedType'
|
687 |
-
'ftpenabled'
|
688 |
-
'ftporsftp'
|
689 |
-
'ftphost'
|
690 |
-
'ftpport'
|
691 |
-
'ftpuser'
|
692 |
-
'ftppassword'
|
693 |
-
'ftppath'
|
694 |
-
'ftpmode'
|
695 |
-
'is_variations'
|
696 |
-
'variable_price'
|
697 |
-
'variable_quantity'
|
698 |
-
'feedLanguage'
|
699 |
-
'feedCurrency'
|
700 |
-
'itemsWrapper'
|
701 |
-
'itemWrapper'
|
702 |
-
'delimiter'
|
703 |
-
'enclosure'
|
704 |
-
'extraHeader'
|
705 |
-
'vendors'
|
706 |
// Feed Config
|
707 |
-
'mattributes'
|
708 |
-
'prefix'
|
709 |
-
'type'
|
710 |
-
'attributes'
|
711 |
-
'default'
|
712 |
-
'suffix'
|
713 |
-
'output_type'
|
714 |
-
'limit'
|
715 |
// filters tab
|
716 |
-
'composite_price'
|
717 |
-
'product_ids'
|
718 |
-
'categories'
|
719 |
-
'post_status'
|
720 |
-
'filter_mode'
|
721 |
-
'campaign_parameters'
|
722 |
-
'is_outOfStock'
|
723 |
-
'is_backorder'
|
724 |
-
'is_emptyDescription'
|
725 |
-
'is_emptyTitle'
|
726 |
-
'is_emptyImage'
|
727 |
-
'is_emptyPrice'
|
728 |
-
'product_visibility'
|
729 |
-
'shipping_country'
|
730 |
-
'tax_country'
|
731 |
// include hidden ? 1 yes 0 no
|
732 |
'outofstock_visibility' => 0,
|
733 |
// override wc global option for out-of-stock product hidden from catalog? 1 yes 0 no
|
734 |
-
'ptitle_show'
|
735 |
-
'decimal_separator'
|
736 |
-
'thousand_separator'
|
737 |
-
'decimals'
|
738 |
);
|
739 |
|
740 |
-
$this->config
|
741 |
$this->config['filter_mode'] = wp_parse_args(
|
742 |
$this->config['filter_mode'],
|
743 |
array(
|
744 |
'product_ids' => 'include',
|
745 |
-
'categories'
|
746 |
'post_status' => 'include',
|
747 |
)
|
748 |
);
|
749 |
|
750 |
-
if (!empty($this->config['provider']) && is_string($this->config['provider'])) {
|
751 |
/**
|
752 |
* filter parsed rules for provider
|
753 |
*
|
754 |
-
* @param array
|
755 |
* @param string $context
|
756 |
*
|
757 |
* @since 3.3.7
|
758 |
*/
|
759 |
-
$this->config = apply_filters("woo_feed_{$this->config['provider']}_parsed_rules", $this->config, $this->context);
|
760 |
}
|
761 |
|
762 |
/**
|
763 |
* filter parsed rules
|
764 |
*
|
765 |
-
* @param array
|
766 |
* @param string $context
|
767 |
*
|
768 |
* @since 3.3.7 $provider parameter removed
|
769 |
*/
|
770 |
-
$this->config = apply_filters('woo_feed_parsed_rules', $this->config, $this->context);
|
771 |
|
772 |
return $this->config;
|
773 |
}
|
774 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
775 |
/**
|
776 |
* Get Feed URL.
|
777 |
*
|
778 |
* @return array|bool
|
779 |
*/
|
780 |
-
public function get_feed_url()
|
781 |
-
|
782 |
-
if (isset($this->feedInfo['url'])) {
|
783 |
return $this->feedInfo['url'];
|
784 |
}
|
785 |
|
@@ -791,17 +851,16 @@ class Config
|
|
791 |
*
|
792 |
* @return string|bool
|
793 |
*/
|
794 |
-
public function get_feed_path()
|
795 |
-
{
|
796 |
$upload_dir = wp_get_upload_dir();
|
797 |
-
$url
|
798 |
-
$file_name
|
799 |
|
800 |
-
if (!isset($this->config['provider']) && !isset($this->config['feedType'])) {
|
801 |
return false;
|
802 |
}
|
803 |
|
804 |
-
return sprintf('%s/woo-feed/%s/%s/%s', $upload_dir['basedir'], $this->config['provider'], $this->config['feedType'], $file_name);
|
805 |
}
|
806 |
|
807 |
|
@@ -810,9 +869,8 @@ class Config
|
|
810 |
*
|
811 |
* @return array|bool
|
812 |
*/
|
813 |
-
public function get_feed_status()
|
814 |
-
|
815 |
-
if (isset($this->feedInfo['status'])) {
|
816 |
return $this->feedInfo['status'];
|
817 |
}
|
818 |
|
4 |
/**
|
5 |
* This class contain feed information.
|
6 |
*/
|
7 |
+
|
8 |
+
use CTXFeed\V5\Helper\FeedHelper;
|
9 |
+
|
10 |
+
class Config {
|
11 |
/**
|
12 |
* @var array|bool
|
13 |
*/
|
23 |
private $context;
|
24 |
|
25 |
/**
|
26 |
+
* @param array $feedInfo
|
27 |
* @param string $context
|
28 |
*/
|
29 |
+
public function __construct( $feedInfo, $context = 'view' ) {
|
|
|
30 |
|
31 |
$this->feedInfo = $feedInfo;
|
32 |
+
$this->context = $context;
|
33 |
+
$config = isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
|
34 |
+
$this->set_config( $config );
|
35 |
}
|
36 |
|
37 |
+
public function __isset( $name ) {
|
38 |
+
if ( isset( $this->config[ $name ] ) ) {
|
|
|
39 |
return true;
|
40 |
}
|
41 |
|
42 |
return false;
|
43 |
}
|
44 |
|
45 |
+
public function __get( $name ) {
|
46 |
+
return $this->config[ $name ];
|
|
|
47 |
}
|
48 |
|
49 |
+
public function __set( $name, $value ) {
|
50 |
+
return $this->config[ $name ] = $value;
|
|
|
51 |
}
|
52 |
|
53 |
+
public function __unset( $name ) {
|
54 |
+
unset( $this->config[ $name ] );
|
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
*
|
59 |
* @return array
|
60 |
*/
|
61 |
+
public function get_feed_rules() {
|
62 |
+
return isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
67 |
*
|
68 |
* @return string
|
69 |
*/
|
70 |
+
public function get_feed_id() {
|
71 |
+
if ( isset( $this->config['feed_id'] ) && ! empty( $this->config['feed_id'] ) ) {
|
|
|
72 |
return $this->config['feed_id'];
|
73 |
}
|
74 |
|
80 |
*
|
81 |
* @return string
|
82 |
*/
|
83 |
+
public function get_feed_name() {
|
84 |
+
if ( isset( $this->config['filename'] ) && ! empty( $this->config['filename'] ) ) {
|
|
|
85 |
return $this->config['filename'];
|
86 |
}
|
87 |
|
93 |
*
|
94 |
* @return string
|
95 |
*/
|
96 |
+
public function get_feed_file_name( $array = false ) {
|
97 |
+
if ( isset( $this->feedInfo['url'] ) && ! empty( $this->feedInfo['url'] ) ) {
|
98 |
+
$fileInfo = pathinfo( $this->feedInfo['url'] );
|
99 |
+
if ( $array ) {
|
|
|
100 |
return $fileInfo;
|
101 |
}
|
102 |
|
111 |
*
|
112 |
* @return string
|
113 |
*/
|
114 |
+
public function get_feed_template() {
|
115 |
+
if ( isset( $this->config['provider'] ) ) {
|
|
|
116 |
return $this->config['provider'];
|
117 |
}
|
118 |
|
124 |
*
|
125 |
* @return string
|
126 |
*/
|
127 |
+
public function get_feed_language() {
|
128 |
+
if ( isset( $this->config['feedLanguage'] ) && ! empty( $this->config['feedLanguage'] ) ) {
|
|
|
129 |
return $this->config['feedLanguage'];
|
130 |
}
|
131 |
|
137 |
*
|
138 |
* @return string
|
139 |
*/
|
140 |
+
public function get_feed_currency() {
|
141 |
+
if ( isset( $this->config['feedCurrency'] ) ) {
|
|
|
142 |
return $this->config['feedCurrency'];
|
143 |
}
|
144 |
|
145 |
$attributes = $this->config['attributes'];
|
146 |
+
$priceAttrs = [ 'price', 'current_price', 'price_with_tax', 'current_price_with_tax' ];
|
147 |
+
foreach ( $priceAttrs as $price_attr ) {
|
148 |
+
$key = array_search( $price_attr, $attributes, true );
|
149 |
+
if ( $key ) {
|
150 |
break;
|
151 |
}
|
152 |
}
|
153 |
|
154 |
+
return isset( $this->config['suffix'][ $key ] ) ? $this->config['suffix'][ $key ] : get_woocommerce_currency();
|
155 |
}
|
156 |
|
157 |
/**
|
159 |
*
|
160 |
* @return string
|
161 |
*/
|
162 |
+
public function get_feed_country() {
|
163 |
+
if ( isset( $this->config['feed_country'] ) && ! empty( $this->config['feed_country'] ) ) {
|
|
|
164 |
return $this->config['feed_country'];
|
165 |
}
|
166 |
|
172 |
*
|
173 |
* @return string
|
174 |
*/
|
175 |
+
public function get_feed_file_type() {
|
176 |
+
if ( isset( $this->config['feedType'] ) && ! empty( $this->config['feedType'] ) ) {
|
|
|
177 |
return $this->config['feedType'];
|
178 |
}
|
179 |
|
185 |
*
|
186 |
* @return string
|
187 |
*/
|
188 |
+
public function get_delimiter() {
|
189 |
+
if ( isset( $this->config['delimiter'] ) && $this->config['delimiter'] !== "" ) {
|
190 |
+
if ( 'tsv' === $this->get_feed_file_type() ) {
|
|
|
191 |
$this->config['delimiter'] = "\t";
|
192 |
|
193 |
return $this->config['delimiter'];
|
194 |
}
|
195 |
|
196 |
+
if ( ' ' === $this->config['delimiter'] ) {
|
197 |
$this->config['delimiter'] = "\s";
|
198 |
}
|
199 |
|
208 |
*
|
209 |
* @return string
|
210 |
*/
|
211 |
+
public function get_enclosure() {
|
212 |
+
if ( isset( $this->config['enclosure'] ) && ! empty( $this->config['enclosure'] ) && in_array( $this->config['enclosure'], [
|
|
|
213 |
'double',
|
214 |
'single'
|
215 |
+
] ) ) {
|
216 |
+
return ( 'double' === $this->config['enclosure'] ) ? '"' : "'";
|
217 |
}
|
218 |
|
219 |
return false;
|
224 |
*
|
225 |
* @return string
|
226 |
*/
|
227 |
+
public function get_feed_items_wrapper() {
|
228 |
+
if ( isset( $this->config['itemsWrapper'] ) && ! empty( $this->config['itemsWrapper'] ) ) {
|
|
|
229 |
return $this->config['itemsWrapper'];
|
230 |
}
|
231 |
|
237 |
*
|
238 |
* @return string
|
239 |
*/
|
240 |
+
public function get_feed_item_wrapper() {
|
241 |
+
if ( isset( $this->config['itemWrapper'] ) && ! empty( $this->config['itemWrapper'] ) ) {
|
|
|
242 |
return $this->config['itemWrapper'];
|
243 |
}
|
244 |
|
250 |
*
|
251 |
* @return string
|
252 |
*/
|
253 |
+
public function get_feed_extra_header() {
|
254 |
+
if ( isset( $this->config['extraHeader'] ) && ! empty( $this->config['extraHeader'] ) ) {
|
|
|
255 |
return $this->config['extraHeader'];
|
256 |
}
|
257 |
|
263 |
*
|
264 |
* @return string
|
265 |
*/
|
266 |
+
public function get_shipping_country() {
|
267 |
+
if ( isset( $this->config['shipping_country'] ) && ! empty( $this->config['shipping_country'] ) ) {
|
|
|
268 |
return $this->config['shipping_country'];
|
269 |
}
|
270 |
|
276 |
*
|
277 |
* @return string
|
278 |
*/
|
279 |
+
public function get_tax_country() {
|
280 |
+
if ( isset( $this->config['tax_country'] ) && ! empty( $this->config['tax_country'] ) ) {
|
|
|
281 |
return $this->config['tax_country'];
|
282 |
}
|
283 |
|
289 |
*
|
290 |
* @return array|bool
|
291 |
*/
|
292 |
+
public function get_string_replace() {
|
293 |
+
if ( ! empty( $this->config['str_replace'] ) ) {
|
|
|
294 |
return $this->config['str_replace'];
|
295 |
}
|
296 |
|
302 |
*
|
303 |
* @return array|bool
|
304 |
*/
|
305 |
+
public function get_campaign_parameters() {
|
306 |
+
if ( isset( $this->config['campaign_parameters'] ) && ! empty( $this->config['campaign_parameters'] ) ) {
|
|
|
307 |
return wp_parse_args(
|
308 |
$this->config['campaign_parameters'],
|
309 |
array(
|
310 |
+
'utm_source' => '',
|
311 |
+
'utm_medium' => '',
|
312 |
'utm_campaign' => '',
|
313 |
+
'utm_term' => '',
|
314 |
+
'utm_content' => '',
|
315 |
)
|
316 |
);
|
317 |
}
|
324 |
*
|
325 |
* @return bool
|
326 |
*/
|
327 |
+
public function remove_backorder_product() {
|
328 |
+
if ( isset( $this->config['is_backorder'] ) ) {
|
|
|
329 |
return 'y' === $this->config['is_backorder'];
|
330 |
}
|
331 |
|
337 |
*
|
338 |
* @return bool
|
339 |
*/
|
340 |
+
public function remove_outofstock_product() {
|
341 |
+
if ( isset( $this->config['is_outOfStock'] ) ) {
|
|
|
342 |
return 'y' === $this->config['is_outOfStock'];
|
343 |
}
|
344 |
|
350 |
*
|
351 |
* @return bool
|
352 |
*/
|
353 |
+
public function remove_empty_title() {
|
354 |
+
if ( isset( $this->config['is_emptyTitle'] ) ) {
|
|
|
355 |
return 'y' === $this->config['is_emptyTitle'];
|
356 |
}
|
357 |
|
363 |
*
|
364 |
* @return bool
|
365 |
*/
|
366 |
+
public function remove_empty_description() {
|
367 |
+
if ( isset( $this->config['is_emptyDescription'] ) ) {
|
|
|
368 |
return 'y' === $this->config['is_emptyDescription'];
|
369 |
}
|
370 |
|
376 |
*
|
377 |
* @return bool
|
378 |
*/
|
379 |
+
public function remove_empty_image() {
|
380 |
+
if ( isset( $this->config['is_emptyImage'] ) ) {
|
|
|
381 |
return 'y' === $this->config['is_emptyImage'];
|
382 |
}
|
383 |
|
389 |
*
|
390 |
* @return bool
|
391 |
*/
|
392 |
+
public function remove_empty_price() {
|
393 |
+
if ( isset( $this->config['is_emptyPrice'] ) ) {
|
|
|
394 |
return 'y' === $this->config['is_emptyPrice'];
|
395 |
}
|
396 |
|
397 |
return false;
|
398 |
}
|
399 |
|
400 |
+
public function remove_hidden_products() {
|
401 |
+
if ( isset( $this->config['product_visibility'] ) ) {
|
|
|
402 |
return $this->config['product_visibility'];
|
403 |
}
|
404 |
|
410 |
*
|
411 |
* @return bool|array
|
412 |
*/
|
413 |
+
public function get_number_format() {
|
414 |
+
if ( isset( $this->config['decimal_separator'] ) ) {
|
|
|
415 |
$number_format = [
|
416 |
+
'decimal_separator' => apply_filters( 'ctx_feed_number_format_decimal_separator', $this->config['decimal_separator'], $this->config ),
|
417 |
+
'thousand_separator' => apply_filters( 'ctx_feed_number_format_thousand_separator', $this->config['thousand_separator'], $this->config ),
|
418 |
+
'decimals' => apply_filters( 'ctx_feed_number_format_decimals', $this->config['decimals'], $this->config ),
|
419 |
];
|
420 |
|
421 |
+
return apply_filters( 'ctx_feed_number_format', $number_format, $this->config );
|
422 |
}
|
423 |
|
424 |
return false;
|
429 |
*
|
430 |
* @return array|bool
|
431 |
*/
|
432 |
+
public function get_products_to_exclude() {
|
433 |
+
if ( isset( $this->config['filter_mode'] ) ) {
|
|
|
434 |
$mode = $this->config['filter_mode'];
|
435 |
+
if ( 'exclude' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
|
436 |
+
return explode( ',', $this->config['product_ids'] );
|
437 |
}
|
438 |
}
|
439 |
|
445 |
*
|
446 |
* @return array|bool
|
447 |
*/
|
448 |
+
public function get_products_to_include() {
|
|
|
449 |
|
450 |
+
if ( isset( $this->config['filter_mode'] ) ) {
|
451 |
$mode = $this->config['filter_mode'];
|
452 |
+
if ( 'include' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
|
453 |
+
return explode( ',', $this->config['product_ids'] );
|
454 |
}
|
455 |
}
|
456 |
|
462 |
*
|
463 |
* @return mixed
|
464 |
*/
|
465 |
+
public function get_categories_to_exclude() {
|
|
|
466 |
|
467 |
+
if ( isset( $this->config['filter_mode'] ) ) {
|
468 |
$mode = $this->config['filter_mode'];
|
469 |
+
if ( 'exclude' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
|
470 |
return $this->config['categories'];
|
471 |
}
|
472 |
}
|
479 |
*
|
480 |
* @return mixed
|
481 |
*/
|
482 |
+
public function get_categories_to_include() {
|
|
|
483 |
|
484 |
+
if ( isset( $this->config['filter_mode'] ) ) {
|
485 |
$mode = $this->config['filter_mode'];
|
486 |
+
if ( 'include' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
|
487 |
return $this->config['categories'];
|
488 |
}
|
489 |
}
|
497 |
*
|
498 |
* @return mixed
|
499 |
*/
|
500 |
+
public function get_post_status_to_include() {
|
501 |
+
$status = [ 'draft', 'pending', 'private', 'publish' ];
|
502 |
+
if ( isset( $this->config['filter_mode'], $this->config['post_status'] ) && ! empty( $this->config['post_status'] ) ) {
|
|
|
503 |
$mode = $this->config['filter_mode'];
|
504 |
+
if ( 'include' === $mode['post_status'] ) {
|
505 |
return $this->config['post_status'];
|
506 |
}
|
507 |
|
508 |
+
if ( 'exclude' === $mode['post_status'] ) {
|
509 |
+
return array_unique( array_merge( array_diff( $status, $this->config['post_status'] ), array_diff( $status, $this->config['post_status'] ) ) );
|
510 |
}
|
511 |
}
|
512 |
|
518 |
*
|
519 |
* @return string|bool
|
520 |
*/
|
521 |
+
public function get_vendors_to_include() {
|
|
|
522 |
|
523 |
+
if ( isset( $this->config['vendors'] ) && ! empty( $this->config['vendors'] ) ) {
|
524 |
+
return implode( ',', $this->config['vendors'] );
|
525 |
}
|
526 |
|
527 |
return false;
|
532 |
*
|
533 |
* @return bool
|
534 |
*/
|
535 |
+
public function get_variations_to_include() {
|
|
|
536 |
|
537 |
+
return isset( $this->config['is_variations'] ) && in_array( $this->config['is_variations'], [ 'y', 'both' ] );
|
538 |
}
|
539 |
|
540 |
/**
|
542 |
*
|
543 |
* @return array|bool
|
544 |
*/
|
545 |
+
public function get_advance_filters() {
|
546 |
+
if ( isset( $this->config['fattribute'] ) ) {
|
|
|
547 |
return [
|
548 |
+
"fattribute" => $this->config['fattribute'],
|
549 |
+
"condition" => $this->config['condition'],
|
550 |
"filterCompare" => $this->config['filterCompare'],
|
551 |
+
"concatType" => $this->config['concatType'],
|
552 |
];
|
553 |
}
|
554 |
|
560 |
*
|
561 |
* @return array|bool
|
562 |
*/
|
563 |
+
public function get_ftp_config() {
|
564 |
+
if ( isset( $this->config['ftpenabled'] ) && $this->config['ftpenabled'] ) {
|
|
|
565 |
|
566 |
// if ( '0' === $this->config['ftpenabled'] ) {
|
567 |
// return false;
|
568 |
// }
|
569 |
|
570 |
return [
|
571 |
+
"type" => $this->config['ftporsftp'],
|
572 |
+
"host" => $this->config['ftphost'],
|
573 |
+
"port" => $this->config['ftpport'],
|
574 |
"username" => $this->config['ftpuser'],
|
575 |
"password" => $this->config['ftppassword'],
|
576 |
+
"path" => $this->config['ftppath'],
|
577 |
+
"mode" => $this->config['ftpmode'],
|
578 |
];
|
579 |
}
|
580 |
|
586 |
*
|
587 |
* @return array|bool
|
588 |
*/
|
589 |
+
public function get_variable_config() {
|
590 |
+
if ( isset( $this->config['is_variations'] ) ) {
|
|
|
591 |
return [
|
592 |
+
"is_variations" => $this->config['is_variations'],
|
593 |
+
"variable_price" => isset( $this->config['variable_price'] ) ? $this->config['variable_price'] : '',
|
594 |
+
"variable_quantity" => isset( $this->config['variable_quantity'] ) ? $this->config['variable_quantity'] : '',
|
595 |
];
|
596 |
}
|
597 |
|
603 |
*
|
604 |
* @return mixed
|
605 |
*/
|
606 |
+
public function get_composite_price_type() {
|
607 |
+
if ( isset( $this->config['composite_price'] ) ) {
|
|
|
608 |
return $this->config['composite_price'];
|
609 |
}
|
610 |
|
616 |
*
|
617 |
* @return array
|
618 |
*/
|
619 |
+
public function get_feed() {
|
|
|
620 |
return $this->feedInfo;
|
621 |
}
|
622 |
|
625 |
*
|
626 |
* @return array
|
627 |
*/
|
628 |
+
public function get_config() {
|
|
|
629 |
return $this->config;
|
630 |
}
|
631 |
|
634 |
*
|
635 |
* @return array
|
636 |
*/
|
637 |
+
private function set_config( $config ) {
|
|
|
638 |
|
639 |
$defaults = array(
|
640 |
+
'provider' => '',
|
641 |
+
'feed_country' => '',
|
642 |
+
'filename' => '',
|
643 |
+
'feedType' => '',
|
644 |
+
'ftpenabled' => 0,
|
645 |
+
'ftporsftp' => 'ftp',
|
646 |
+
'ftphost' => '',
|
647 |
+
'ftpport' => '21',
|
648 |
+
'ftpuser' => '',
|
649 |
+
'ftppassword' => '',
|
650 |
+
'ftppath' => '',
|
651 |
+
'ftpmode' => 'active',
|
652 |
+
'is_variations' => 'y', // Only Variations (All Variations)
|
653 |
+
'variable_price' => 'first',
|
654 |
+
'variable_quantity' => 'first',
|
655 |
+
'feedLanguage' => apply_filters( 'wpml_current_language', null ),
|
656 |
+
'feedCurrency' => apply_filters( 'woocommerce_currency', get_option( 'woocommerce_currency' ) ),
|
657 |
+
'itemsWrapper' => 'products',
|
658 |
+
'itemWrapper' => 'product',
|
659 |
+
'delimiter' => ',',
|
660 |
+
'enclosure' => 'double',
|
661 |
+
'extraHeader' => '',
|
662 |
+
'vendors' => array(),
|
663 |
// Feed Config
|
664 |
+
'mattributes' => array(), // merchant attributes
|
665 |
+
'prefix' => array(), // prefixes
|
666 |
+
'type' => array(), // value (attribute) types
|
667 |
+
'attributes' => array(), // product attribute mappings
|
668 |
+
'default' => array(), // default values (patterns) if value type set to pattern
|
669 |
+
'suffix' => array(), // suffixes
|
670 |
+
'output_type' => array(), // output type (output filter)
|
671 |
+
'limit' => array(), // limit or command
|
672 |
// filters tab
|
673 |
+
'composite_price' => 'all_product_price',
|
674 |
+
'product_ids' => '',
|
675 |
+
'categories' => array(),
|
676 |
+
'post_status' => array( 'publish' ),
|
677 |
+
'filter_mode' => array(),
|
678 |
+
'campaign_parameters' => array(),
|
679 |
+
'is_outOfStock' => 'n',
|
680 |
+
'is_backorder' => 'n',
|
681 |
+
'is_emptyDescription' => 'n',
|
682 |
+
'is_emptyTitle' => 'n',
|
683 |
+
'is_emptyImage' => 'n',
|
684 |
+
'is_emptyPrice' => 'n',
|
685 |
+
'product_visibility' => 0,
|
686 |
+
'shipping_country' => '',
|
687 |
+
'tax_country' => '',
|
688 |
// include hidden ? 1 yes 0 no
|
689 |
'outofstock_visibility' => 0,
|
690 |
// override wc global option for out-of-stock product hidden from catalog? 1 yes 0 no
|
691 |
+
'ptitle_show' => '',
|
692 |
+
'decimal_separator' => apply_filters( 'wc_get_price_decimal_separator', get_option( 'woocommerce_price_decimal_sep' ) ),
|
693 |
+
'thousand_separator' => stripslashes( apply_filters( 'wc_get_price_thousand_separator', get_option( 'woocommerce_price_thousand_sep' ) ) ),
|
694 |
+
'decimals' => absint( apply_filters( 'wc_get_price_decimals', get_option( 'woocommerce_price_num_decimals', 2 ) ) ),
|
695 |
);
|
696 |
|
697 |
+
$this->config = wp_parse_args( $config, $defaults );
|
698 |
$this->config['filter_mode'] = wp_parse_args(
|
699 |
$this->config['filter_mode'],
|
700 |
array(
|
701 |
'product_ids' => 'include',
|
702 |
+
'categories' => 'include',
|
703 |
'post_status' => 'include',
|
704 |
)
|
705 |
);
|
706 |
|
707 |
+
if ( ! empty( $this->config['provider'] ) && is_string( $this->config['provider'] ) ) {
|
708 |
/**
|
709 |
* filter parsed rules for provider
|
710 |
*
|
711 |
+
* @param array $rules
|
712 |
* @param string $context
|
713 |
*
|
714 |
* @since 3.3.7
|
715 |
*/
|
716 |
+
$this->config = apply_filters( "woo_feed_{$this->config['provider']}_parsed_rules", $this->config, $this->context );
|
717 |
}
|
718 |
|
719 |
/**
|
720 |
* filter parsed rules
|
721 |
*
|
722 |
+
* @param array $rules
|
723 |
* @param string $context
|
724 |
*
|
725 |
* @since 3.3.7 $provider parameter removed
|
726 |
*/
|
727 |
+
$this->config = apply_filters( 'woo_feed_parsed_rules', $this->config, $this->context );
|
728 |
|
729 |
return $this->config;
|
730 |
}
|
731 |
|
732 |
+
public function save_feed( $data, $feed_option_name = null, $configOnly = true ) {
|
733 |
+
if ( ! is_array( $data ) ) {
|
734 |
+
return false;
|
735 |
+
}
|
736 |
+
if ( ! isset( $data['filename'], $data['feedType'], $data['provider'] ) ) {
|
737 |
+
return false;
|
738 |
+
}
|
739 |
+
// unnecessary form fields to remove
|
740 |
+
$removables = [ 'closedpostboxesnonce', '_wpnonce', '_wp_http_referer', 'save_feed_config', 'edit-feed' ];
|
741 |
+
foreach ( $removables as $removable ) {
|
742 |
+
if ( isset( $data[ $removable ] ) ) {
|
743 |
+
unset( $data[ $removable ] );
|
744 |
+
}
|
745 |
+
}
|
746 |
+
// parse rules
|
747 |
+
$data = $this->set_config( $data );
|
748 |
+
// Sanitize Fields
|
749 |
+
$data = FeedHelper::sanitize_form_fields( $data );
|
750 |
+
if ( empty( $feed_option_name ) ) {
|
751 |
+
$feed_option_name = generate_unique_feed_file_name(
|
752 |
+
$data['filename'],
|
753 |
+
$data['feedType'],
|
754 |
+
$data['provider'] );
|
755 |
+
} else {
|
756 |
+
$feed_option_name = FeedHelper::get_feed_option_name( $feed_option_name );
|
757 |
+
}
|
758 |
+
|
759 |
+
// get old config
|
760 |
+
$old_data = get_option( 'wf_config' . $feed_option_name, array() );
|
761 |
+
$update = false;
|
762 |
+
if ( is_array( $old_data ) && ! empty( $old_data ) ) {
|
763 |
+
$update = true;
|
764 |
+
}
|
765 |
+
|
766 |
+
/**
|
767 |
+
* Filters feed data just before it is inserted into the database.
|
768 |
+
*
|
769 |
+
* @param array $data An array of sanitized config
|
770 |
+
* @param array $old_data An array of old feed data
|
771 |
+
* @param string $feed_option_name Option name
|
772 |
+
*
|
773 |
+
* @since 3.3.3
|
774 |
+
*
|
775 |
+
*/
|
776 |
+
$data = apply_filters( 'woo_feed_insert_feed_data', $data, $old_data, 'wf_config' . $feed_option_name );
|
777 |
+
|
778 |
+
if ( $update ) {
|
779 |
+
/**
|
780 |
+
* Before Updating Config to db
|
781 |
+
*
|
782 |
+
* @param array $data An array of sanitized config
|
783 |
+
* @param string $feed_option_name Option name
|
784 |
+
*/
|
785 |
+
do_action( 'woo_feed_before_update_config', $data, 'wf_config' . $feed_option_name );
|
786 |
+
} else {
|
787 |
+
/**
|
788 |
+
* Before inserting Config to db
|
789 |
+
*
|
790 |
+
* @param array $data An array of sanitized config
|
791 |
+
* @param string $feed_option_name Option name
|
792 |
+
*/
|
793 |
+
do_action( 'woo_feed_before_insert_config', $data, 'wf_config' . $feed_option_name );
|
794 |
+
}
|
795 |
+
$updated = ( $data === $old_data );
|
796 |
+
if ( false === $updated ) {
|
797 |
+
// Store Config.
|
798 |
+
$updated = update_option( 'wf_config' . $feed_option_name, $data, false );
|
799 |
+
}
|
800 |
+
// update wf_feed if wp_config update ok...
|
801 |
+
if ( $updated && false === $configOnly ) {
|
802 |
+
$old_feed = maybe_unserialize( get_option( 'wf_feed_' . $feed_option_name ) );
|
803 |
+
$feed_data = array(
|
804 |
+
'feedrules' => $data,
|
805 |
+
'url' => woo_feed_get_file_url( $feed_option_name, $data['provider'], $data['feedType'] ),
|
806 |
+
'last_updated' => date( 'Y-m-d H:i:s', strtotime( current_time( 'mysql' ) ) ),
|
807 |
+
'status' => isset( $old_feed['status'] ) && 1 === (int) $old_feed['status'] ? 1 : 0,
|
808 |
+
// set old status or disable auto update.
|
809 |
+
);
|
810 |
+
|
811 |
+
$saved2 = update_option( 'wf_feed_' . $feed_option_name, maybe_serialize( $feed_data ), false );
|
812 |
+
}
|
813 |
+
|
814 |
+
if ( $update ) {
|
815 |
+
/**
|
816 |
+
* After Updating Config to db
|
817 |
+
*
|
818 |
+
* @param array $data An array of sanitized config
|
819 |
+
* @param string $feed_option_name Option name
|
820 |
+
*/
|
821 |
+
do_action( 'woo_feed_after_update_config', $data, 'wf_config' . $feed_option_name );
|
822 |
+
} else {
|
823 |
+
/**
|
824 |
+
* After inserting Config to db
|
825 |
+
*
|
826 |
+
* @param array $data An array of sanitized config
|
827 |
+
* @param string $feed_option_name Option name
|
828 |
+
*/
|
829 |
+
do_action( 'woo_feed_after_insert_config', $data, 'wf_config' . $feed_option_name );
|
830 |
+
}
|
831 |
+
|
832 |
+
// return filename on success or update status
|
833 |
+
return $updated ? $feed_option_name : $updated;
|
834 |
+
}
|
835 |
+
|
836 |
/**
|
837 |
* Get Feed URL.
|
838 |
*
|
839 |
* @return array|bool
|
840 |
*/
|
841 |
+
public function get_feed_url() {
|
842 |
+
if ( isset( $this->feedInfo['url'] ) ) {
|
|
|
843 |
return $this->feedInfo['url'];
|
844 |
}
|
845 |
|
851 |
*
|
852 |
* @return string|bool
|
853 |
*/
|
854 |
+
public function get_feed_path() {
|
|
|
855 |
$upload_dir = wp_get_upload_dir();
|
856 |
+
$url = $this->get_feed_url();
|
857 |
+
$file_name = basename( $url );
|
858 |
|
859 |
+
if ( ! isset( $this->config['provider'] ) && ! isset( $this->config['feedType'] ) ) {
|
860 |
return false;
|
861 |
}
|
862 |
|
863 |
+
return sprintf( '%s/woo-feed/%s/%s/%s', $upload_dir['basedir'], $this->config['provider'], $this->config['feedType'], $file_name );
|
864 |
}
|
865 |
|
866 |
|
869 |
*
|
870 |
* @return array|bool
|
871 |
*/
|
872 |
+
public function get_feed_status() {
|
873 |
+
if ( isset( $this->feedInfo['status'] ) ) {
|
|
|
874 |
return $this->feedInfo['status'];
|
875 |
}
|
876 |
|
includes/classes/class-woo-feed-constants.php
CHANGED
@@ -23,7 +23,7 @@ if( ! class_exists("Woo_Feed_Constants") ) {
|
|
23 |
* @var string
|
24 |
* @since 3.1.6
|
25 |
*/
|
26 |
-
define( 'WOO_FEED_FREE_VERSION', '4.5.
|
27 |
}
|
28 |
|
29 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
23 |
* @var string
|
24 |
* @since 3.1.6
|
25 |
*/
|
26 |
+
define( 'WOO_FEED_FREE_VERSION', '4.5.10' );
|
27 |
}
|
28 |
|
29 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
includes/classes/class-woo-feed-default-attributes.php
CHANGED
@@ -15,508 +15,508 @@
|
|
15 |
*/
|
16 |
class Woo_Feed_Default_Attributes {
|
17 |
|
18 |
-
|
19 |
-
= array(
|
20 |
-
'id' => array( 'id', false ),
|
21 |
-
'webitemid' => array( 'webitemid', false ),
|
22 |
-
'region_id' => array( 'region_id', false ),
|
23 |
-
'title' => array( 'title', true ),
|
24 |
-
'description' => array( 'description', true ),
|
25 |
-
'link' => array( 'link', true ),
|
26 |
-
'canonical_link' => array( 'canonical link', true ),
|
27 |
-
'mobile_link' => array( 'mobile_link', true ),
|
28 |
-
'product_type' => array( 'product type', true ),
|
29 |
-
'current_category' => array( 'google product category', true ),
|
30 |
-
'image' => array( 'image link', true ),
|
31 |
-
'images' => array( 'additional image link', true ),
|
32 |
-
'images_1' => array( 'additional image link 1', true ),
|
33 |
-
'images_2' => array( 'additional image link 2', true ),
|
34 |
-
'images_3' => array( 'additional image link 3', true ),
|
35 |
-
'images_4' => array( 'additional image link 4', true ),
|
36 |
-
'images_5' => array( 'additional image link 5', true ),
|
37 |
-
'images_6' => array( 'additional image link 6', true ),
|
38 |
-
'images_7' => array( 'additional image link 7', true ),
|
39 |
-
'images_8' => array( 'additional image link 8', true ),
|
40 |
-
'images_9' => array( 'additional image link 9', true ),
|
41 |
-
'images_10' => array( 'additional image link 10', true ),
|
42 |
-
'condition' => array( 'condition', false ),
|
43 |
-
'availability' => array( 'availability', false ),
|
44 |
-
'availability_date' => array( 'availability date', false ),
|
45 |
-
'inventory' => array( 'inventory', false ),
|
46 |
-
'price' => array( 'price', true ),
|
47 |
-
'sale_price' => array( 'sale price', true ),
|
48 |
-
'sale_price_effective_date' => array( 'sale price effective date', true ),
|
49 |
-
'brand' => array( 'brand', true ),
|
50 |
-
'sku' => array( 'mpn', true ),
|
51 |
-
'upc' => array( 'gtin', true ),
|
52 |
-
'identifier_exists' => array( 'identifier exists', true ),
|
53 |
-
'item_group_id' => array( 'item group id', false ),
|
54 |
-
'external_seller_id' => array( 'external seller id', false ),
|
55 |
-
'product_length' => array( 'product length', true ),
|
56 |
-
'product_width' => array( 'product width', true ),
|
57 |
-
'product_height' => array( 'product height', true ),
|
58 |
-
'product_weight' => array( 'product weight', true ),
|
59 |
-
'product_highlight_1' => array( 'product highlight 1', true ),
|
60 |
-
'product_highlight_2' => array( 'product highlight 2', true ),
|
61 |
-
'product_highlight_3' => array( 'product highlight 3', true ),
|
62 |
-
'product_highlight_4' => array( 'product highlight 4', true ),
|
63 |
-
'product_highlight_5' => array( 'product highlight 5', true ),
|
64 |
-
'product_highlight_6' => array( 'product highlight 6', true ),
|
65 |
-
'product_highlight_7' => array( 'product highlight 7', true ),
|
66 |
-
'product_highlight_8' => array( 'product highlight 8', true ),
|
67 |
-
'product_highlight_9' => array( 'product highlight 9', true ),
|
68 |
-
'product_highlight_10' => array( 'product highlight 10', true ),
|
69 |
-
'color' => array( 'color', true ),
|
70 |
-
'gender' => array( 'gender', true ),
|
71 |
-
'age_group' => array( 'age group', true ),
|
72 |
-
'material' => array( 'material', true ),
|
73 |
-
'pattern' => array( 'pattern', true ),
|
74 |
-
'size' => array( 'size', true ),
|
75 |
-
'size_type' => array( 'size type', true ),
|
76 |
-
'size_system' => array( 'size system', true ),
|
77 |
-
'free_shipping_label' => array( 'free_shipping_label', true ),
|
78 |
-
'free_shipping_limit' => array( 'free_shipping_limit', true ),
|
79 |
-
'average_review_rating' => array( 'average_review_rating', true ),
|
80 |
-
'number_of_ratings' => array( 'number_of_ratings', true ),
|
81 |
-
'number_of_reviews' => array( 'number_of_reviews', true ),
|
82 |
-
'tax' => array( 'tax', true ),
|
83 |
-
'tax_category' => array( 'tax category', true ),
|
84 |
-
'shipping' => array( 'shipping', true ),
|
85 |
-
'weight' => array( 'shipping weight', false ),
|
86 |
-
'length' => array( 'shipping length', false ),
|
87 |
-
'width' => array( 'shipping width', false ),
|
88 |
-
'height' => array( 'shipping height', false ),
|
89 |
-
'ships_from_country' => array( 'ships from country', false ),
|
90 |
-
'shipping_label' => array( 'shipping label', false ),
|
91 |
-
'shipping_country' => array( 'shipping country', false ),
|
92 |
-
'shipping_service' => array( 'shipping service', false ),
|
93 |
-
'shipping_price' => array( 'shipping price', false ),
|
94 |
-
'shipping_region' => array( 'shipping region', false ),
|
95 |
-
'multipack' => array( 'multipack', true ),
|
96 |
-
'is_bundle' => array( 'is bundle', true ),
|
97 |
-
'adult' => array( 'adult', true ),
|
98 |
-
'ads_redirect' => array( 'ads redirect', true ),
|
99 |
-
'custom_label_0' => array( 'custom label 0', true ),
|
100 |
-
'custom_label_1' => array( 'custom label 1', true ),
|
101 |
-
'custom_label_2' => array( 'custom label 2', true ),
|
102 |
-
'custom_label_3' => array( 'custom label 3', true ),
|
103 |
-
'custom_label_4' => array( 'custom label 4', true ),
|
104 |
-
'excluded_destination' => array( 'excluded destination', true ),
|
105 |
-
'shopping_ads_excluded_country' => array( 'shopping ads excluded country', true ),
|
106 |
-
'included_destination' => array( 'included destination', true ),
|
107 |
-
'expiration_date' => array( 'expiration date', true ),
|
108 |
-
'unit_pricing_measure' => array( 'unit pricing measure', true ),
|
109 |
-
'unit_pricing_base_measure' => array( 'unit pricing base measure', true ),
|
110 |
-
'installment_months' => array( 'months', true ),
|
111 |
-
'installment_amount' => array( 'amount', true ),
|
112 |
-
'subscription_period' => array( 'period', true ),
|
113 |
-
'subscription_period_length' => array( 'period_length', true ),
|
114 |
-
'subscription_amount' => array( 'amount', true ),
|
115 |
-
'energy_efficiency_class' => array( 'energy efficiency class', true ),
|
116 |
-
'min_energy_efficiency_class' => array( 'min energy efficiency class', true ),
|
117 |
-
'max_energy_efficiency_class' => array( 'max energy efficiency class', true ),
|
118 |
-
'loyalty_points' => array( 'loyalty points', true ),
|
119 |
-
'installment' => array( 'installment', true ),
|
120 |
-
'promotion_id' => array( 'promotion id', true ),
|
121 |
-
'cost_of_goods_sold' => array( 'cost of goods sold', true ),
|
122 |
-
'sell_on_google_quantity' => array( 'sell on google quantity', false ),
|
123 |
-
'min_handling_time' => array( 'min handling time', false ),
|
124 |
-
'max_handling_time' => array( 'max handling time', false ),
|
125 |
-
'transit_time_label' => array( 'transit time label', false ),
|
126 |
-
'return_address_label' => array( 'return address label', false ),
|
127 |
-
'return_policy_label' => array( 'return policy label', false ),
|
128 |
-
'store_code' => array( 'store code', false ),
|
129 |
-
'pickup_method' => array( 'pickup method', true ),
|
130 |
-
'pickup_sla' => array( 'pickup sla', true ),
|
131 |
-
'pickup_link_template' => array( 'pickup link template', true ),
|
132 |
-
'link_template' => array( 'link template', true ),
|
133 |
-
'mobile_link_template' => array( 'mobile link template', true ),
|
134 |
-
'mobile_pickup_link_template' => array( 'mobile pickup link template', true ),
|
135 |
-
'google_funded_promotion_eligibility' => array(
|
136 |
-
'google funded promotion eligibility',
|
137 |
-
false,
|
138 |
-
),
|
139 |
-
);
|
140 |
-
public $googleXMLAttribute
|
141 |
-
= array(
|
142 |
-
'id' => array( 'g:id', false ),
|
143 |
-
'webitemid' => array( 'g:webitemid', false ),
|
144 |
-
'region_id' => array( 'g:region_id', false ),
|
145 |
-
'title' => array( 'g:title', true ),
|
146 |
-
'description' => array( 'g:description', true ),
|
147 |
-
'link' => array( 'link', true ),
|
148 |
-
'canonical_link' => array( 'g:canonical_link', true ),
|
149 |
-
'mobile_link' => array( 'mobile_link', true ),
|
150 |
-
'product_type' => array( 'g:product_type', true ),
|
151 |
-
'current_category' => array( 'g:google_product_category', true ),
|
152 |
-
'image' => array( 'g:image_link', true ),
|
153 |
-
'images' => array( 'g:additional_image_link', false ),
|
154 |
-
'images_1' => array( 'g:additional_image_link', true ),
|
155 |
-
'images_2' => array( 'g:additional_image_link', true ),
|
156 |
-
'images_3' => array( 'g:additional_image_link', true ),
|
157 |
-
'images_4' => array( 'g:additional_image_link', true ),
|
158 |
-
'images_5' => array( 'g:additional_image_link', true ),
|
159 |
-
'images_6' => array( 'g:additional_image_link', true ),
|
160 |
-
'images_7' => array( 'g:additional_image_link', true ),
|
161 |
-
'images_8' => array( 'g:additional_image_link', true ),
|
162 |
-
'images_9' => array( 'g:additional_image_link', true ),
|
163 |
-
'images_10' => array( 'g:additional_image_link', true ),
|
164 |
-
'condition' => array( 'g:condition', false ),
|
165 |
-
'availability' => array( 'g:availability', false ),
|
166 |
-
'availability_date' => array( 'g:availability_date', false ),
|
167 |
-
'inventory' => array( 'g:inventory', false ),
|
168 |
-
'price' => array( 'g:price', true ),
|
169 |
-
'sale_price' => array( 'g:sale_price', true ),
|
170 |
-
'sale_price_effective_date' => array( 'g:sale_price_effective_date', true ),
|
171 |
-
'brand' => array( 'g:brand', true ),
|
172 |
-
'sku' => array( 'g:mpn', true ),
|
173 |
-
'upc' => array( 'g:gtin', true ),
|
174 |
-
'identifier_exists' => array( 'g:identifier_exists', true ),
|
175 |
-
'item_group_id' => array( 'g:item_group_id', false ),
|
176 |
-
'external_seller_id' => array( 'g:external_seller_id', false ),
|
177 |
-
'product_length' => array( 'g:product_length', true ),
|
178 |
-
'product_width' => array( 'g:product_width', true ),
|
179 |
-
'product_height' => array( 'g:product_height', true ),
|
180 |
-
'product_weight' => array( 'g:product_weight', true ),
|
181 |
-
'product_highlight_1' => array( 'g:product_highlight', true ),
|
182 |
-
'product_highlight_2' => array( 'g:product_highlight', true ),
|
183 |
-
'product_highlight_3' => array( 'g:product_highlight', true ),
|
184 |
-
'product_highlight_4' => array( 'g:product_highlight', true ),
|
185 |
-
'product_highlight_5' => array( 'g:product_highlight', true ),
|
186 |
-
'product_highlight_6' => array( 'g:product_highlight', true ),
|
187 |
-
'product_highlight_7' => array( 'g:product_highlight', true ),
|
188 |
-
'product_highlight_8' => array( 'g:product_highlight', true ),
|
189 |
-
'product_highlight_9' => array( 'g:product_highlight', true ),
|
190 |
-
'product_highlight_10' => array( 'g:product_highlight', true ),
|
191 |
-
'color' => array( 'g:color', true ),
|
192 |
-
'gender' => array( 'g:gender', true ),
|
193 |
-
'age_group' => array( 'g:age_group', true ),
|
194 |
-
'material' => array( 'g:material', true ),
|
195 |
-
'pattern' => array( 'g:pattern', true ),
|
196 |
-
'size' => array( 'g:size', true ),
|
197 |
-
'size_type' => array( 'g:size_type', true ),
|
198 |
-
'size_system' => array( 'g:size_system', true ),
|
199 |
-
'tax' => array( 'g:tax', true ),
|
200 |
-
'tax_country' => array( 'g:tax_country', true ),
|
201 |
-
'tax_region' => array( 'g:tax_region', true ),
|
202 |
-
'tax_rate' => array( 'g:tax_rate', true ),
|
203 |
-
'tax_ship' => array( 'g:tax_ship', true ),
|
204 |
-
'tax_category' => array( 'g:tax_category', true ),
|
205 |
-
'free_shipping_label' => array( 'g:free_shipping_label', true ),
|
206 |
-
'free_shipping_limit' => array( 'g:free_shipping_limit', true ),
|
207 |
-
'average_review_rating' => array( 'g:average_review_rating', true ),
|
208 |
-
'number_of_ratings' => array( 'g:number_of_ratings', true ),
|
209 |
-
'number_of_reviews' => array( 'g:number_of_reviews', true ),
|
210 |
-
'shipping' => array( 'g:shipping', true ),
|
211 |
-
'weight' => array( 'g:shipping_weight', false ),
|
212 |
-
'length' => array( 'g:shipping_length', false ),
|
213 |
-
'width' => array( 'g:shipping_width', false ),
|
214 |
-
'height' => array( 'g:shipping_height', false ),
|
215 |
-
'ships_from_country' => array( 'g:ships_from_country', false ),
|
216 |
-
'shipping_label' => array( 'g:shipping_label', false ),
|
217 |
-
'multipack' => array( 'g:multipack', true ),
|
218 |
-
'is_bundle' => array( 'g:is_bundle', true ),
|
219 |
-
'adult' => array( 'g:adult', true ),
|
220 |
-
'ads_redirect' => array( 'g:ads_redirect', true ),
|
221 |
-
'custom_label_0' => array( 'g:custom_label_0', true ),
|
222 |
-
'custom_label_1' => array( 'g:custom_label_1', true ),
|
223 |
-
'custom_label_2' => array( 'g:custom_label_2', true ),
|
224 |
-
'custom_label_3' => array( 'g:custom_label_3', true ),
|
225 |
-
'custom_label_4' => array( 'g:custom_label_4', true ),
|
226 |
-
'excluded_destination' => array( 'g:excluded_destination', true ),
|
227 |
-
'shopping_ads_excluded_country' => array( 'g:shopping_ads_excluded_country', true ),
|
228 |
-
'included_destination' => array( 'g:included_destination', true ),
|
229 |
-
'expiration_date' => array( 'g:expiration_date', true ),
|
230 |
-
'unit_pricing_measure' => array( 'g:unit_pricing_measure', true ),
|
231 |
-
'unit_pricing_base_measure' => array( 'g:unit_pricing_base_measure', true ),
|
232 |
-
'installment_months' => array( 'g:months', true ),
|
233 |
-
'installment_amount' => array( 'g:amount', true ),
|
234 |
-
'subscription_period' => array( 'g:period', true ),
|
235 |
-
'subscription_period_length' => array( 'g:period_length', true ),
|
236 |
-
'subscription_amount' => array( 'g:amount', true ),
|
237 |
-
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
238 |
-
'min_energy_efficiency_class' => array( 'g:min_energy_efficiency_class', true ),
|
239 |
-
'max_energy_efficiency_class' => array( 'g:max_energy_efficiency_class', true ),
|
240 |
-
'loyalty_points' => array( 'g:loyalty_points', true ),
|
241 |
-
'installment' => array( 'g:installment', true ),
|
242 |
-
'promotion_id' => array( 'g:promotion_id', true ),
|
243 |
-
'product_applicability' => array( 'g:product_applicability', true ),
|
244 |
-
'offer_type' => array( 'g:offer_type', true ),
|
245 |
-
'long_title' => array( 'g:long_title', true ),
|
246 |
-
'promotion_effective_dates' => array( 'g:promotion_effective_dates', true ),
|
247 |
-
'redemption_channel' => array( 'g:redemption_channel', true ),
|
248 |
-
'promotion_destination' => array( 'g:promotion_destination', true ),
|
249 |
-
'percent_off' => array( 'g:percent_off', true ),
|
250 |
-
'money_off_amount' => array( 'g:money_off_amount', true ),
|
251 |
-
'get_this_quantity_discounted' => array( 'g:get_this_quantity_discounted', true ),
|
252 |
-
'free_shipping' => array( 'g:free_shipping', true ),
|
253 |
-
'free_gift_value' => array( 'g:free_gift_value', true ),
|
254 |
-
'free_gift_description' => array( 'g:free_gift_description', true ),
|
255 |
-
'promotion_display_dates' => array( 'g:promotion_display_dates', true ),
|
256 |
-
'generic_redemption_code' => array( 'g:generic_redemption_code', true ),
|
257 |
-
'fine_print' => array( 'g:fine_print', true ),
|
258 |
-
'promotion_price' => array( 'g:promotion_price', true ),
|
259 |
-
'coupon_value_type' => array( 'g:coupon_value_type', true ),
|
260 |
-
'limit_quantity' => array( 'g:limit_quantity', true ),
|
261 |
-
'limit_value' => array( 'g:limit_value', true ),
|
262 |
-
'minimum_purchase_amount' => array( 'g:minimum_purchase_amount', true ),
|
263 |
-
'item_id_exclusion' => array( 'g:item_id_exclusion', true ),
|
264 |
-
'product_type_exclusion' => array( 'g:product_type_exclusion', true ),
|
265 |
-
'brand_exclusion' => array( 'g:brand_exclusion', true ),
|
266 |
-
'item_group_id_exclusion' => array( 'g:item_group_id_exclusion', true ),
|
267 |
-
|
268 |
-
'cost_of_goods_sold' => array( 'g:cost_of_goods_sold', true ),
|
269 |
-
'sell_on_google_quantity' => array( 'g:sell_on_google_quantity', false ),
|
270 |
-
'min_handling_time' => array( 'g:min_handling_time', false ),
|
271 |
-
'max_handling_time' => array( 'g:max_handling_time', false ),
|
272 |
-
'transit_time_label' => array( 'g:transit_time_label', false ),
|
273 |
-
'return_address_label' => array( 'g:return_address_label', false ),
|
274 |
-
'return_policy_label' => array( 'g:return_policy_label', false ),
|
275 |
-
'store_code' => array( 'g:store_code', false ),
|
276 |
-
'quantity' => array( 'g:quantity', true ),
|
277 |
-
'pickup_method' => array( 'g:pickup_method', true ),
|
278 |
-
'pickup_sla' => array( 'g:pickup_sla', true ),
|
279 |
-
'pickup_link_template' => array( 'g:pickup_link_template', true ),
|
280 |
-
'link_template' => array( 'g:link_template', true ),
|
281 |
-
'mobile_link_template' => array( 'g:mobile_link_template', true ),
|
282 |
-
'mobile_pickup_link_template' => array( 'g:mobile_pickup_link_template', true ),
|
283 |
-
'google_funded_promotion_eligibility' => array(
|
284 |
-
'g:google_funded_promotion_eligibility',
|
285 |
-
false,
|
286 |
-
),
|
287 |
-
);
|
288 |
-
public $facebookXMLAttribute
|
289 |
= array(
|
290 |
-
'id'
|
291 |
-
'
|
292 |
-
'
|
293 |
-
'
|
294 |
-
'
|
295 |
-
'
|
296 |
-
'
|
297 |
-
'
|
298 |
-
'
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
'
|
310 |
-
'
|
311 |
-
'
|
312 |
-
'
|
313 |
-
'
|
314 |
-
'
|
315 |
-
'
|
316 |
-
'
|
317 |
-
'
|
318 |
-
'
|
319 |
-
'
|
320 |
-
'
|
321 |
-
'
|
322 |
-
'
|
323 |
-
'
|
324 |
-
'
|
325 |
-
'
|
326 |
-
'
|
327 |
-
'
|
328 |
-
'
|
329 |
-
'
|
330 |
-
'
|
331 |
-
'
|
332 |
-
'
|
333 |
-
'
|
334 |
-
|
335 |
-
'
|
336 |
-
'
|
337 |
-
'
|
338 |
-
'
|
339 |
-
'
|
340 |
-
'
|
341 |
-
'
|
342 |
-
'
|
343 |
-
'
|
344 |
-
'
|
345 |
-
'
|
346 |
-
'
|
347 |
-
'
|
348 |
-
'
|
349 |
-
'
|
350 |
-
'
|
351 |
-
'
|
352 |
-
'
|
353 |
-
'
|
354 |
-
'
|
355 |
-
'
|
356 |
-
'
|
357 |
-
'
|
358 |
-
'
|
359 |
-
'
|
360 |
-
'
|
361 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
public $facebookCSVTXTAttribute
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
public $pinterestXMLAttribute
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
public $pinterestCSVTXTAttribute
|
521 |
= array(
|
522 |
'id' => array( 'id', false ),
|
@@ -528,16 +528,16 @@ class Woo_Feed_Default_Attributes {
|
|
528 |
'current_category' => array( 'google_product_category', true ),
|
529 |
'image' => array( 'image_link', true ),
|
530 |
'images' => array( 'additional_image_link', true ),
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
'condition' => array( 'condition', false ),
|
542 |
'availability' => array( 'availability', false ),
|
543 |
'availability_date' => array( 'availability_date', false ),
|
@@ -564,16 +564,16 @@ class Woo_Feed_Default_Attributes {
|
|
564 |
'tax_rate' => array( 'tax_rate', true ),
|
565 |
'tax_ship' => array( 'tax_ship', true ),
|
566 |
'tax_category' => array( 'tax_category', true ),
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
'weight' => array( 'shipping_weight', false ),
|
573 |
'length' => array( 'shipping_length', false ),
|
574 |
'width' => array( 'shipping_width', false ),
|
575 |
'height' => array( 'shipping_height', false ),
|
576 |
-
|
577 |
'shipping_label' => array( 'shipping_label', false ),
|
578 |
'shipping_country' => array( 'shipping_country', false ),
|
579 |
'shipping_service' => array( 'shipping_service', false ),
|
@@ -600,26 +600,36 @@ class Woo_Feed_Default_Attributes {
|
|
600 |
'cost_of_goods_sold' => array( 'cost_of_goods_sold', true ),
|
601 |
);
|
602 |
public $skroutzXMLAttributes
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
|
624 |
public $gLocalAttributes
|
625 |
= array(
|
@@ -631,715 +641,725 @@ class Woo_Feed_Default_Attributes {
|
|
631 |
'description' => array( 'description', true ),
|
632 |
);
|
633 |
|
634 |
-
|
635 |
/**
|
636 |
* Google Attribute List
|
637 |
*
|
638 |
* @return array
|
639 |
*/
|
640 |
public function googleAttributes() {
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
}
|
831 |
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
|
940 |
-
|
941 |
-
|
942 |
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
|
1037 |
-
|
1038 |
-
|
1039 |
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1244 |
|
1245 |
-
/**
|
1246 |
-
* GoedGeplaatst.nl Attribute List
|
1247 |
-
*
|
1248 |
-
* @return array
|
1249 |
-
*/
|
1250 |
-
public function goedgeplaatstAttributes() {
|
1251 |
-
return array(
|
1252 |
-
'title' => 'Product Title [title]',
|
1253 |
-
'description' => 'Product Description [description]',
|
1254 |
-
'type' => 'Product Type [type]',
|
1255 |
-
'price' => 'Price [price]',
|
1256 |
-
'images' => 'Images [images]',
|
1257 |
-
'categoryId' => 'Category ID [categoryId]',
|
1258 |
-
'externalAdId' => 'External Ad ID [externalAdId]',
|
1259 |
-
'priceRetail' => 'Retail Price [priceRetail]',
|
1260 |
-
'priceOther' => 'Other Price [priceOther]',
|
1261 |
-
'bid' => 'Bid [bid]',
|
1262 |
-
'showContact' => 'Show Contact [showContact]',
|
1263 |
-
'website' => 'Website [website]',
|
1264 |
-
'name' => 'Name [name]',
|
1265 |
-
'phone' => 'Phone [phone]',
|
1266 |
-
'address' => 'Address [address]',
|
1267 |
-
'houseNumber' => 'House Number [houseNumber]',
|
1268 |
-
'postalCode' => 'Postal Code [postalCode]',
|
1269 |
-
'city' => 'City [city]',
|
1270 |
-
'country' => 'Country [country]',
|
1271 |
-
'autoReplace' => 'Auto Replace [autoReplace]',
|
1272 |
-
'directForwardToMp' => 'Direct Forward Mp [directForwardToMp]',
|
1273 |
-
'priceBidMinimal' => 'Price Bid Minimal [priceBidMinimal]',
|
1274 |
-
'priceBidAsking' => 'Price Bid Asking [priceBidAsking]',
|
1275 |
-
);
|
1276 |
-
}
|
1277 |
-
|
1278 |
/**
|
1279 |
* Skroutz Attribute List
|
1280 |
*
|
1281 |
* @return array
|
1282 |
*/
|
1283 |
public function skroutzAttributes() {
|
1284 |
-
return
|
1285 |
-
'--1'
|
1286 |
-
'id'
|
1287 |
-
'name'
|
1288 |
-
'description'
|
1289 |
-
'link'
|
1290 |
-
'image'
|
1291 |
-
'category'
|
1292 |
-
'price'
|
1293 |
-
'price_with_vat'
|
1294 |
-
'manufacturer'
|
1295 |
-
'mpn'
|
1296 |
-
'availability'
|
1297 |
-
'---1'
|
1298 |
-
'instock'
|
1299 |
-
'ean'
|
1300 |
-
'
|
1301 |
-
'
|
1302 |
-
'
|
1303 |
-
'
|
1304 |
-
'
|
1305 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1306 |
}
|
1307 |
-
/**
|
1308 |
-
* BestPrice Attribute List
|
1309 |
-
*
|
1310 |
-
* @return array
|
1311 |
-
*/
|
1312 |
-
public function bestpriceAttributes() {
|
1313 |
-
return [
|
1314 |
-
'--1' => 'Required Attributes',
|
1315 |
-
'productId' => 'Product ID[productId]',
|
1316 |
-
'name' => 'Product Title[name]',
|
1317 |
-
'description' => 'Product Description[description]',
|
1318 |
-
'link' => 'Product Link[link]',
|
1319 |
-
'image' => 'Image Link[image]',
|
1320 |
-
'categoryPath' => 'Category Path[categoryPath]',
|
1321 |
-
'categoryID' => 'Category Id[categoryID]',
|
1322 |
-
'price' => 'Price[price]',
|
1323 |
-
'manufacturer' => 'Manufacturer[manufacturer]',
|
1324 |
-
'mpn' => 'MPN / ISBN',
|
1325 |
-
'availability' => 'Availability',
|
1326 |
-
'---1' => 'Recommended Attributes',
|
1327 |
-
'instock' => 'Stock Status[instock]',
|
1328 |
-
'ean' => 'EAN/Barcode',
|
1329 |
-
'additional_image' => 'Additional Image Link',
|
1330 |
-
'color' => 'Color',
|
1331 |
-
'size' => 'Size',
|
1332 |
-
'weight' => 'Weight',
|
1333 |
-
'features' => 'Features',
|
1334 |
-
];
|
1335 |
-
}
|
1336 |
/**
|
1337 |
* Daisycon Attribute List
|
1338 |
*
|
1339 |
* @return array
|
1340 |
*/
|
1341 |
public function daisyconAttributes() {
|
1342 |
-
return
|
1343 |
'--1' => 'Required Attributes',
|
1344 |
'sku' => 'Unique Product ID [SKU]',
|
1345 |
'description' => 'Description',
|
@@ -1387,16 +1407,16 @@ class Woo_Feed_Default_Attributes {
|
|
1387 |
'size_description' => 'Description for the “size” field',
|
1388 |
'terms_conditions' => 'Full terms and conditions',
|
1389 |
'---4' => '',
|
1390 |
-
|
1391 |
}
|
1392 |
-
|
1393 |
/**
|
1394 |
* Daisycon Automotive Attribute List
|
1395 |
*
|
1396 |
* @return array
|
1397 |
*/
|
1398 |
public function daisycon_automotiveAttributes() {
|
1399 |
-
return
|
1400 |
'--1' => 'Required Attributes',
|
1401 |
'description' => 'Description of the product',
|
1402 |
'link' => 'URL to the page of the product',
|
@@ -1453,16 +1473,16 @@ class Woo_Feed_Default_Attributes {
|
|
1453 |
'year_built' => 'Year in which the product is fabricated',
|
1454 |
'terms_conditions' => 'Full terms and conditions',
|
1455 |
'---4' => '',
|
1456 |
-
|
1457 |
}
|
1458 |
-
|
1459 |
/**
|
1460 |
* Daisycon Books Attribute List
|
1461 |
*
|
1462 |
* @return array
|
1463 |
*/
|
1464 |
public function daisycon_booksAttributes() {
|
1465 |
-
return
|
1466 |
'--1' => 'Required Attributes',
|
1467 |
'description' => 'Description of the product',
|
1468 |
'link' => 'URL to the page of the product',
|
@@ -1525,16 +1545,16 @@ class Woo_Feed_Default_Attributes {
|
|
1525 |
'material_3' => 'The tertiary material',
|
1526 |
'terms_conditions' => 'Full terms and conditions',
|
1527 |
'---5' => '',
|
1528 |
-
|
1529 |
}
|
1530 |
-
|
1531 |
/**
|
1532 |
* Daisycon Cosmetics Attribute List
|
1533 |
*
|
1534 |
* @return array
|
1535 |
*/
|
1536 |
public function daisycon_cosmeticsAttributes() {
|
1537 |
-
return
|
1538 |
'--1' => 'Required Attributes',
|
1539 |
'description' => 'Description of the product',
|
1540 |
'link' => 'URL to the page of the product',
|
@@ -1589,16 +1609,16 @@ class Woo_Feed_Default_Attributes {
|
|
1589 |
'material_3' => 'The tertiary material',
|
1590 |
'terms_conditions' => 'Full terms and conditions',
|
1591 |
'---5' => '',
|
1592 |
-
|
1593 |
}
|
1594 |
-
|
1595 |
/**
|
1596 |
* Daisycon Daily Offers Attribute List
|
1597 |
*
|
1598 |
* @return array
|
1599 |
*/
|
1600 |
public function daisycon_daily_offersAttributes() {
|
1601 |
-
return
|
1602 |
'--1' => 'Required Attributes',
|
1603 |
'description' => 'Description of the product',
|
1604 |
'link' => 'URL to the page of the product',
|
@@ -1649,16 +1669,16 @@ class Woo_Feed_Default_Attributes {
|
|
1649 |
'material_3' => 'The tertiary material',
|
1650 |
'terms_conditions' => 'Full terms and conditions',
|
1651 |
'---4' => '',
|
1652 |
-
|
1653 |
}
|
1654 |
-
|
1655 |
/**
|
1656 |
* Daisycon Electronics Attribute List
|
1657 |
*
|
1658 |
* @return array
|
1659 |
*/
|
1660 |
public function daisycon_electronicsAttributes() {
|
1661 |
-
return
|
1662 |
'--1' => 'Required Attributes',
|
1663 |
'description' => 'Description of the product',
|
1664 |
'link' => 'URL to the page of the product',
|
@@ -1737,16 +1757,16 @@ class Woo_Feed_Default_Attributes {
|
|
1737 |
'material_2' => 'The secondary material',
|
1738 |
'material_3' => 'The tertiary material',
|
1739 |
'---5' => '',
|
1740 |
-
|
1741 |
}
|
1742 |
-
|
1743 |
/**
|
1744 |
* Daisycon Food & Drinks Attribute List
|
1745 |
*
|
1746 |
* @return array
|
1747 |
*/
|
1748 |
public function daisycon_food_drinksAttributes() {
|
1749 |
-
return
|
1750 |
'--1' => 'Required Attributes',
|
1751 |
'description' => 'Description of the product',
|
1752 |
'link' => 'URL to the page of the product',
|
@@ -1812,16 +1832,16 @@ class Woo_Feed_Default_Attributes {
|
|
1812 |
'material_3' => 'The tertiary material',
|
1813 |
'terms_conditions' => 'Full terms and conditions',
|
1814 |
'---5' => '',
|
1815 |
-
|
1816 |
}
|
1817 |
-
|
1818 |
/**
|
1819 |
* Daisycon Home & Garden Attribute List
|
1820 |
*
|
1821 |
* @return array
|
1822 |
*/
|
1823 |
public function daisycon_home_gardenAttributes() {
|
1824 |
-
return
|
1825 |
'--1' => 'Required Attributes',
|
1826 |
'description' => 'Description of the product',
|
1827 |
'link' => 'URL to the page of the product',
|
@@ -1876,16 +1896,16 @@ class Woo_Feed_Default_Attributes {
|
|
1876 |
'material_3' => 'The tertiary material',
|
1877 |
'terms_conditions' => 'Full terms and conditions',
|
1878 |
'---5' => '',
|
1879 |
-
|
1880 |
}
|
1881 |
-
|
1882 |
/**
|
1883 |
* Daisycon Housing Attribute List
|
1884 |
*
|
1885 |
* @return array
|
1886 |
*/
|
1887 |
public function daisycon_housingAttributes() {
|
1888 |
-
return
|
1889 |
'--1' => 'Required Attributes',
|
1890 |
'description' => 'Description of the product',
|
1891 |
'link' => 'URL to the page of the product',
|
@@ -1982,16 +2002,16 @@ class Woo_Feed_Default_Attributes {
|
|
1982 |
'material_3' => 'The tertiary material',
|
1983 |
'terms_conditions' => 'Full terms and conditions',
|
1984 |
'---5' => '',
|
1985 |
-
|
1986 |
}
|
1987 |
-
|
1988 |
/**
|
1989 |
* Daisycon Fashion Attribute List
|
1990 |
*
|
1991 |
* @return array
|
1992 |
*/
|
1993 |
public function daisycon_fashionAttributes() {
|
1994 |
-
return
|
1995 |
'--1' => 'Required Attributes',
|
1996 |
'description' => 'Description of the product',
|
1997 |
'link' => 'URL to the page of the product',
|
@@ -2041,16 +2061,16 @@ class Woo_Feed_Default_Attributes {
|
|
2041 |
'material_3' => 'The tertiary material',
|
2042 |
'terms_conditions' => 'Full terms and conditions',
|
2043 |
'---5' => '',
|
2044 |
-
|
2045 |
}
|
2046 |
-
|
2047 |
/**
|
2048 |
* Daisycon Studies & Trainings Attribute List
|
2049 |
*
|
2050 |
* @return array
|
2051 |
*/
|
2052 |
public function daisycon_studies_trainingsAttributes() {
|
2053 |
-
return
|
2054 |
'--1' => 'Required Attributes',
|
2055 |
'description' => 'Description of the product',
|
2056 |
'link' => 'URL to the page of the product',
|
@@ -2103,16 +2123,16 @@ class Woo_Feed_Default_Attributes {
|
|
2103 |
'material_3' => 'The tertiary material',
|
2104 |
'terms_conditions' => 'Full terms and conditions',
|
2105 |
'---5' => '',
|
2106 |
-
|
2107 |
}
|
2108 |
-
|
2109 |
/**
|
2110 |
* Daisycon Telecom: Accessories Attribute List
|
2111 |
*
|
2112 |
* @return array
|
2113 |
*/
|
2114 |
public function daisycon_telecom_accessoriesAttributes() {
|
2115 |
-
return
|
2116 |
'--1' => 'Required Attributes',
|
2117 |
'description' => 'Description of the product',
|
2118 |
'link' => 'URL to the page of the product',
|
@@ -2163,16 +2183,16 @@ class Woo_Feed_Default_Attributes {
|
|
2163 |
'material_3' => 'The tertiary material',
|
2164 |
'terms_conditions' => 'Full terms and conditions',
|
2165 |
'---5' => '',
|
2166 |
-
|
2167 |
}
|
2168 |
-
|
2169 |
/**
|
2170 |
* Daisycon Telecom: All-in-one Attribute List
|
2171 |
*
|
2172 |
* @return array
|
2173 |
*/
|
2174 |
public function daisycon_telecom_all_in_oneAttributes() {
|
2175 |
-
return
|
2176 |
'--1' => 'Required Attributes',
|
2177 |
'allinone_subscription_type' => 'Subscription type',
|
2178 |
'bandwidth_download' => 'Download in Mbits',
|
@@ -2241,16 +2261,16 @@ class Woo_Feed_Default_Attributes {
|
|
2241 |
'material_3' => 'The tertiary material',
|
2242 |
'terms_conditions' => 'Full terms and conditions',
|
2243 |
'---5' => '',
|
2244 |
-
|
2245 |
}
|
2246 |
-
|
2247 |
/**
|
2248 |
* Daisycon Telecom: GSM + Subscription Attribute List
|
2249 |
*
|
2250 |
* @return array
|
2251 |
*/
|
2252 |
public function daisycon_telecom_gsm_subscriptionAttributes() {
|
2253 |
-
return
|
2254 |
'--1' => 'Required Attributes',
|
2255 |
'description' => 'Description of the product',
|
2256 |
'link' => 'URL to the page of the product',
|
@@ -2346,16 +2366,16 @@ class Woo_Feed_Default_Attributes {
|
|
2346 |
'material_3' => 'The tertiary material',
|
2347 |
'terms_conditions' => 'Full terms and conditions',
|
2348 |
'---5' => '',
|
2349 |
-
|
2350 |
}
|
2351 |
-
|
2352 |
/**
|
2353 |
* Daisycon Telecom: GSM only Attribute List
|
2354 |
*
|
2355 |
* @return array
|
2356 |
*/
|
2357 |
public function daisycon_telecom_gsmAttributes() {
|
2358 |
-
return
|
2359 |
'--1' => 'Required Attributes',
|
2360 |
'description' => 'Description of the GSM-device',
|
2361 |
'link' => 'URL to the page of the GSM-device',
|
@@ -2413,23 +2433,23 @@ class Woo_Feed_Default_Attributes {
|
|
2413 |
'size_description' => 'Description for the "size" field',
|
2414 |
'size_length' => 'GSM-device length in mm',
|
2415 |
'size_width' => 'GSM-device width in mm',
|
2416 |
-
|
2417 |
'weight' => 'GSM-device weight in grams',
|
2418 |
'material_1' => 'The primary material',
|
2419 |
'material_2' => 'The secondary material',
|
2420 |
'material_3' => 'The tertiary material',
|
2421 |
'terms_conditions' => 'Full terms and conditions',
|
2422 |
'---5' => '',
|
2423 |
-
|
2424 |
}
|
2425 |
-
|
2426 |
/**
|
2427 |
* Daisycon Telecom: Sim only Attribute List
|
2428 |
*
|
2429 |
* @return array
|
2430 |
*/
|
2431 |
public function daisycon_telecom_simAttributes() {
|
2432 |
-
return
|
2433 |
'--1' => 'Required Attributes',
|
2434 |
'description' => 'Description of the subscription',
|
2435 |
'link' => 'URL to the page of the subscription',
|
@@ -2503,16 +2523,16 @@ class Woo_Feed_Default_Attributes {
|
|
2503 |
'material_3' => 'The tertiary material',
|
2504 |
'terms_conditions' => 'Full terms and conditions',
|
2505 |
'---5' => '',
|
2506 |
-
|
2507 |
}
|
2508 |
-
|
2509 |
/**
|
2510 |
* Daisycon Magazines Attribute List
|
2511 |
*
|
2512 |
* @return array
|
2513 |
*/
|
2514 |
public function daisycon_magazinesAttributes() {
|
2515 |
-
return
|
2516 |
'--1' => 'Required Attributes',
|
2517 |
'description' => 'Description of the magazine',
|
2518 |
'link' => 'URL to the page of the magazine',
|
@@ -2577,16 +2597,16 @@ class Woo_Feed_Default_Attributes {
|
|
2577 |
'material_3' => 'The tertiary material',
|
2578 |
'terms_conditions' => 'Full terms and conditions',
|
2579 |
'---5' => '',
|
2580 |
-
|
2581 |
}
|
2582 |
-
|
2583 |
/**
|
2584 |
* Daisycon Holidays: Accommodations Attribute List
|
2585 |
*
|
2586 |
* @return array
|
2587 |
*/
|
2588 |
public function daisycon_holidays_accommodationsAttributes() {
|
2589 |
-
return
|
2590 |
'--1' => 'Required Attributes',
|
2591 |
'description' => 'Description of the product',
|
2592 |
'link' => 'URL to the page of the product',
|
@@ -2696,16 +2716,16 @@ class Woo_Feed_Default_Attributes {
|
|
2696 |
'material_3' => 'The tertiary material',
|
2697 |
'terms_conditions' => 'Full terms and conditions',
|
2698 |
'---5' => '',
|
2699 |
-
|
2700 |
}
|
2701 |
-
|
2702 |
/**
|
2703 |
* Daisycon Holidays: Accommodations and transport Attribute List
|
2704 |
*
|
2705 |
* @return array
|
2706 |
*/
|
2707 |
public function daisycon_holidays_accommodations_and_transportAttributes() {
|
2708 |
-
return
|
2709 |
'--1' => 'Required Attributes',
|
2710 |
'description' => 'Description of the product',
|
2711 |
'link' => 'URL to the page of the product',
|
@@ -2831,16 +2851,16 @@ class Woo_Feed_Default_Attributes {
|
|
2831 |
'material_3' => 'The tertiary material',
|
2832 |
'terms_conditions' => 'Full terms and conditions',
|
2833 |
'---5' => '',
|
2834 |
-
|
2835 |
}
|
2836 |
-
|
2837 |
/**
|
2838 |
* Daisycon Holidays: Trips Attribute List
|
2839 |
*
|
2840 |
* @return array
|
2841 |
*/
|
2842 |
public function daisycon_holidays_tripsAttributes() {
|
2843 |
-
return
|
2844 |
'--1' => 'Required Attributes',
|
2845 |
'description' => 'Description of the product',
|
2846 |
'link' => 'URL to the page of the product',
|
@@ -2916,16 +2936,16 @@ class Woo_Feed_Default_Attributes {
|
|
2916 |
'material_3' => 'The tertiary material',
|
2917 |
'terms_conditions' => 'Full terms and conditions',
|
2918 |
'---5' => '',
|
2919 |
-
|
2920 |
}
|
2921 |
-
|
2922 |
/**
|
2923 |
* Daisycon Work & Jobs Attribute List
|
2924 |
*
|
2925 |
* @return array
|
2926 |
*/
|
2927 |
public function daisycon_work_jobsAttributes() {
|
2928 |
-
return
|
2929 |
'--1' => 'Required Attributes',
|
2930 |
'description' => 'Description of the product',
|
2931 |
'link' => 'URL to the page of the product',
|
@@ -2986,6 +3006,6 @@ class Woo_Feed_Default_Attributes {
|
|
2986 |
'material_3' => 'The tertiary material',
|
2987 |
'terms_conditions' => 'Full terms and conditions',
|
2988 |
'---5' => '',
|
2989 |
-
|
2990 |
}
|
2991 |
}
|
15 |
*/
|
16 |
class Woo_Feed_Default_Attributes {
|
17 |
|
18 |
+
public $googleCSVTXTAttribute
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
= array(
|
20 |
+
'id' => array( 'id', false ),
|
21 |
+
'webitemid' => array( 'webitemid', false ),
|
22 |
+
'region_id' => array( 'region_id', false ),
|
23 |
+
'title' => array( 'title', true ),
|
24 |
+
'description' => array( 'description', true ),
|
25 |
+
'link' => array( 'link', true ),
|
26 |
+
'canonical_link' => array( 'canonical link', true ),
|
27 |
+
'mobile_link' => array( 'mobile_link', true ),
|
28 |
+
'product_type' => array( 'product type', true ),
|
29 |
+
'current_category' => array( 'google product category', true ),
|
30 |
+
'image' => array( 'image link', true ),
|
31 |
+
'images' => array( 'additional image link', true ),
|
32 |
+
'images_1' => array( 'additional image link 1', true ),
|
33 |
+
'images_2' => array( 'additional image link 2', true ),
|
34 |
+
'images_3' => array( 'additional image link 3', true ),
|
35 |
+
'images_4' => array( 'additional image link 4', true ),
|
36 |
+
'images_5' => array( 'additional image link 5', true ),
|
37 |
+
'images_6' => array( 'additional image link 6', true ),
|
38 |
+
'images_7' => array( 'additional image link 7', true ),
|
39 |
+
'images_8' => array( 'additional image link 8', true ),
|
40 |
+
'images_9' => array( 'additional image link 9', true ),
|
41 |
+
'images_10' => array( 'additional image link 10', true ),
|
42 |
+
'condition' => array( 'condition', false ),
|
43 |
+
'availability' => array( 'availability', false ),
|
44 |
+
'availability_date' => array( 'availability date', false ),
|
45 |
+
'inventory' => array( 'inventory', false ),
|
46 |
+
'price' => array( 'price', true ),
|
47 |
+
'sale_price' => array( 'sale price', true ),
|
48 |
+
'sale_price_effective_date' => array( 'sale price effective date', true ),
|
49 |
+
'brand' => array( 'brand', true ),
|
50 |
+
'sku' => array( 'mpn', true ),
|
51 |
+
'upc' => array( 'gtin', true ),
|
52 |
+
'identifier_exists' => array( 'identifier exists', true ),
|
53 |
+
'item_group_id' => array( 'item group id', false ),
|
54 |
+
'external_seller_id' => array( 'external seller id', false ),
|
55 |
+
'product_length' => array( 'product length', true ),
|
56 |
+
'product_width' => array( 'product width', true ),
|
57 |
+
'product_height' => array( 'product height', true ),
|
58 |
+
'product_weight' => array( 'product weight', true ),
|
59 |
+
'product_highlight_1' => array( 'product highlight 1', true ),
|
60 |
+
'product_highlight_2' => array( 'product highlight 2', true ),
|
61 |
+
'product_highlight_3' => array( 'product highlight 3', true ),
|
62 |
+
'product_highlight_4' => array( 'product highlight 4', true ),
|
63 |
+
'product_highlight_5' => array( 'product highlight 5', true ),
|
64 |
+
'product_highlight_6' => array( 'product highlight 6', true ),
|
65 |
+
'product_highlight_7' => array( 'product highlight 7', true ),
|
66 |
+
'product_highlight_8' => array( 'product highlight 8', true ),
|
67 |
+
'product_highlight_9' => array( 'product highlight 9', true ),
|
68 |
+
'product_highlight_10' => array( 'product highlight 10', true ),
|
69 |
+
'color' => array( 'color', true ),
|
70 |
+
'gender' => array( 'gender', true ),
|
71 |
+
'age_group' => array( 'age group', true ),
|
72 |
+
'material' => array( 'material', true ),
|
73 |
+
'pattern' => array( 'pattern', true ),
|
74 |
+
'size' => array( 'size', true ),
|
75 |
+
'size_type' => array( 'size type', true ),
|
76 |
+
'size_system' => array( 'size system', true ),
|
77 |
+
'free_shipping_label' => array( 'free_shipping_label', true ),
|
78 |
+
'free_shipping_limit' => array( 'free_shipping_limit', true ),
|
79 |
+
'average_review_rating' => array( 'average_review_rating', true ),
|
80 |
+
'number_of_ratings' => array( 'number_of_ratings', true ),
|
81 |
+
'number_of_reviews' => array( 'number_of_reviews', true ),
|
82 |
+
'tax' => array( 'tax', true ),
|
83 |
+
'tax_category' => array( 'tax category', true ),
|
84 |
+
'shipping' => array( 'shipping', true ),
|
85 |
+
'weight' => array( 'shipping weight', false ),
|
86 |
+
'length' => array( 'shipping length', false ),
|
87 |
+
'width' => array( 'shipping width', false ),
|
88 |
+
'height' => array( 'shipping height', false ),
|
89 |
+
'ships_from_country' => array( 'ships from country', false ),
|
90 |
+
'shipping_label' => array( 'shipping label', false ),
|
91 |
+
'shipping_country' => array( 'shipping country', false ),
|
92 |
+
'shipping_service' => array( 'shipping service', false ),
|
93 |
+
'shipping_price' => array( 'shipping price', false ),
|
94 |
+
'shipping_region' => array( 'shipping region', false ),
|
95 |
+
'multipack' => array( 'multipack', true ),
|
96 |
+
'is_bundle' => array( 'is bundle', true ),
|
97 |
+
'adult' => array( 'adult', true ),
|
98 |
+
'ads_redirect' => array( 'ads redirect', true ),
|
99 |
+
'custom_label_0' => array( 'custom label 0', true ),
|
100 |
+
'custom_label_1' => array( 'custom label 1', true ),
|
101 |
+
'custom_label_2' => array( 'custom label 2', true ),
|
102 |
+
'custom_label_3' => array( 'custom label 3', true ),
|
103 |
+
'custom_label_4' => array( 'custom label 4', true ),
|
104 |
+
'excluded_destination' => array( 'excluded destination', true ),
|
105 |
+
'shopping_ads_excluded_country' => array( 'shopping ads excluded country', true ),
|
106 |
+
'included_destination' => array( 'included destination', true ),
|
107 |
+
'expiration_date' => array( 'expiration date', true ),
|
108 |
+
'unit_pricing_measure' => array( 'unit pricing measure', true ),
|
109 |
+
'unit_pricing_base_measure' => array( 'unit pricing base measure', true ),
|
110 |
+
'installment_months' => array( 'months', true ),
|
111 |
+
'installment_amount' => array( 'amount', true ),
|
112 |
+
'subscription_period' => array( 'period', true ),
|
113 |
+
'subscription_period_length' => array( 'period_length', true ),
|
114 |
+
'subscription_amount' => array( 'amount', true ),
|
115 |
+
'energy_efficiency_class' => array( 'energy efficiency class', true ),
|
116 |
+
'min_energy_efficiency_class' => array( 'min energy efficiency class', true ),
|
117 |
+
'max_energy_efficiency_class' => array( 'max energy efficiency class', true ),
|
118 |
+
'loyalty_points' => array( 'loyalty points', true ),
|
119 |
+
'installment' => array( 'installment', true ),
|
120 |
+
'promotion_id' => array( 'promotion id', true ),
|
121 |
+
'cost_of_goods_sold' => array( 'cost of goods sold', true ),
|
122 |
+
'sell_on_google_quantity' => array( 'sell on google quantity', false ),
|
123 |
+
'min_handling_time' => array( 'min handling time', false ),
|
124 |
+
'max_handling_time' => array( 'max handling time', false ),
|
125 |
+
'transit_time_label' => array( 'transit time label', false ),
|
126 |
+
'return_address_label' => array( 'return address label', false ),
|
127 |
+
'return_policy_label' => array( 'return policy label', false ),
|
128 |
+
'store_code' => array( 'store code', false ),
|
129 |
+
'pickup_method' => array( 'pickup method', true ),
|
130 |
+
'pickup_sla' => array( 'pickup sla', true ),
|
131 |
+
'pickup_link_template' => array( 'pickup link template', true ),
|
132 |
+
'link_template' => array( 'link template', true ),
|
133 |
+
'mobile_link_template' => array( 'mobile link template', true ),
|
134 |
+
'mobile_pickup_link_template' => array( 'mobile pickup link template', true ),
|
135 |
+
'google_funded_promotion_eligibility' => array(
|
136 |
+
'google funded promotion eligibility',
|
137 |
+
false,
|
138 |
+
),
|
139 |
);
|
140 |
+
public $googleXMLAttribute
|
141 |
+
= array(
|
142 |
+
'id' => array( 'g:id', false ),
|
143 |
+
'webitemid' => array( 'g:webitemid', false ),
|
144 |
+
'region_id' => array( 'g:region_id', false ),
|
145 |
+
'title' => array( 'g:title', true ),
|
146 |
+
'description' => array( 'g:description', true ),
|
147 |
+
'link' => array( 'link', true ),
|
148 |
+
'canonical_link' => array( 'g:canonical_link', true ),
|
149 |
+
'mobile_link' => array( 'mobile_link', true ),
|
150 |
+
'product_type' => array( 'g:product_type', true ),
|
151 |
+
'current_category' => array( 'g:google_product_category', true ),
|
152 |
+
'image' => array( 'g:image_link', true ),
|
153 |
+
'images' => array( 'g:additional_image_link', false ),
|
154 |
+
'images_1' => array( 'g:additional_image_link', true ),
|
155 |
+
'images_2' => array( 'g:additional_image_link', true ),
|
156 |
+
'images_3' => array( 'g:additional_image_link', true ),
|
157 |
+
'images_4' => array( 'g:additional_image_link', true ),
|
158 |
+
'images_5' => array( 'g:additional_image_link', true ),
|
159 |
+
'images_6' => array( 'g:additional_image_link', true ),
|
160 |
+
'images_7' => array( 'g:additional_image_link', true ),
|
161 |
+
'images_8' => array( 'g:additional_image_link', true ),
|
162 |
+
'images_9' => array( 'g:additional_image_link', true ),
|
163 |
+
'images_10' => array( 'g:additional_image_link', true ),
|
164 |
+
'condition' => array( 'g:condition', false ),
|
165 |
+
'availability' => array( 'g:availability', false ),
|
166 |
+
'availability_date' => array( 'g:availability_date', false ),
|
167 |
+
'inventory' => array( 'g:inventory', false ),
|
168 |
+
'price' => array( 'g:price', true ),
|
169 |
+
'sale_price' => array( 'g:sale_price', true ),
|
170 |
+
'sale_price_effective_date' => array( 'g:sale_price_effective_date', true ),
|
171 |
+
'brand' => array( 'g:brand', true ),
|
172 |
+
'sku' => array( 'g:mpn', true ),
|
173 |
+
'upc' => array( 'g:gtin', true ),
|
174 |
+
'identifier_exists' => array( 'g:identifier_exists', true ),
|
175 |
+
'item_group_id' => array( 'g:item_group_id', false ),
|
176 |
+
'external_seller_id' => array( 'g:external_seller_id', false ),
|
177 |
+
'product_length' => array( 'g:product_length', true ),
|
178 |
+
'product_width' => array( 'g:product_width', true ),
|
179 |
+
'product_height' => array( 'g:product_height', true ),
|
180 |
+
'product_weight' => array( 'g:product_weight', true ),
|
181 |
+
'product_highlight_1' => array( 'g:product_highlight', true ),
|
182 |
+
'product_highlight_2' => array( 'g:product_highlight', true ),
|
183 |
+
'product_highlight_3' => array( 'g:product_highlight', true ),
|
184 |
+
'product_highlight_4' => array( 'g:product_highlight', true ),
|
185 |
+
'product_highlight_5' => array( 'g:product_highlight', true ),
|
186 |
+
'product_highlight_6' => array( 'g:product_highlight', true ),
|
187 |
+
'product_highlight_7' => array( 'g:product_highlight', true ),
|
188 |
+
'product_highlight_8' => array( 'g:product_highlight', true ),
|
189 |
+
'product_highlight_9' => array( 'g:product_highlight', true ),
|
190 |
+
'product_highlight_10' => array( 'g:product_highlight', true ),
|
191 |
+
'color' => array( 'g:color', true ),
|
192 |
+
'gender' => array( 'g:gender', true ),
|
193 |
+
'age_group' => array( 'g:age_group', true ),
|
194 |
+
'material' => array( 'g:material', true ),
|
195 |
+
'pattern' => array( 'g:pattern', true ),
|
196 |
+
'size' => array( 'g:size', true ),
|
197 |
+
'size_type' => array( 'g:size_type', true ),
|
198 |
+
'size_system' => array( 'g:size_system', true ),
|
199 |
+
'tax' => array( 'g:tax', true ),
|
200 |
+
'tax_country' => array( 'g:tax_country', true ),
|
201 |
+
'tax_region' => array( 'g:tax_region', true ),
|
202 |
+
'tax_rate' => array( 'g:tax_rate', true ),
|
203 |
+
'tax_ship' => array( 'g:tax_ship', true ),
|
204 |
+
'tax_category' => array( 'g:tax_category', true ),
|
205 |
+
'free_shipping_label' => array( 'g:free_shipping_label', true ),
|
206 |
+
'free_shipping_limit' => array( 'g:free_shipping_limit', true ),
|
207 |
+
'average_review_rating' => array( 'g:average_review_rating', true ),
|
208 |
+
'number_of_ratings' => array( 'g:number_of_ratings', true ),
|
209 |
+
'number_of_reviews' => array( 'g:number_of_reviews', true ),
|
210 |
+
'shipping' => array( 'g:shipping', true ),
|
211 |
+
'weight' => array( 'g:shipping_weight', false ),
|
212 |
+
'length' => array( 'g:shipping_length', false ),
|
213 |
+
'width' => array( 'g:shipping_width', false ),
|
214 |
+
'height' => array( 'g:shipping_height', false ),
|
215 |
+
'ships_from_country' => array( 'g:ships_from_country', false ),
|
216 |
+
'shipping_label' => array( 'g:shipping_label', false ),
|
217 |
+
'multipack' => array( 'g:multipack', true ),
|
218 |
+
'is_bundle' => array( 'g:is_bundle', true ),
|
219 |
+
'adult' => array( 'g:adult', true ),
|
220 |
+
'ads_redirect' => array( 'g:ads_redirect', true ),
|
221 |
+
'custom_label_0' => array( 'g:custom_label_0', true ),
|
222 |
+
'custom_label_1' => array( 'g:custom_label_1', true ),
|
223 |
+
'custom_label_2' => array( 'g:custom_label_2', true ),
|
224 |
+
'custom_label_3' => array( 'g:custom_label_3', true ),
|
225 |
+
'custom_label_4' => array( 'g:custom_label_4', true ),
|
226 |
+
'excluded_destination' => array( 'g:excluded_destination', true ),
|
227 |
+
'shopping_ads_excluded_country' => array( 'g:shopping_ads_excluded_country', true ),
|
228 |
+
'included_destination' => array( 'g:included_destination', true ),
|
229 |
+
'expiration_date' => array( 'g:expiration_date', true ),
|
230 |
+
'unit_pricing_measure' => array( 'g:unit_pricing_measure', true ),
|
231 |
+
'unit_pricing_base_measure' => array( 'g:unit_pricing_base_measure', true ),
|
232 |
+
'installment_months' => array( 'g:months', true ),
|
233 |
+
'installment_amount' => array( 'g:amount', true ),
|
234 |
+
'subscription_period' => array( 'g:period', true ),
|
235 |
+
'subscription_period_length' => array( 'g:period_length', true ),
|
236 |
+
'subscription_amount' => array( 'g:amount', true ),
|
237 |
+
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
238 |
+
'min_energy_efficiency_class' => array( 'g:min_energy_efficiency_class', true ),
|
239 |
+
'max_energy_efficiency_class' => array( 'g:max_energy_efficiency_class', true ),
|
240 |
+
'loyalty_points' => array( 'g:loyalty_points', true ),
|
241 |
+
'installment' => array( 'g:installment', true ),
|
242 |
+
'promotion_id' => array( 'g:promotion_id', true ),
|
243 |
+
'product_applicability' => array( 'g:product_applicability', true ),
|
244 |
+
'offer_type' => array( 'g:offer_type', true ),
|
245 |
+
'long_title' => array( 'g:long_title', true ),
|
246 |
+
'promotion_effective_dates' => array( 'g:promotion_effective_dates', true ),
|
247 |
+
'redemption_channel' => array( 'g:redemption_channel', true ),
|
248 |
+
'promotion_destination' => array( 'g:promotion_destination', true ),
|
249 |
+
'percent_off' => array( 'g:percent_off', true ),
|
250 |
+
'money_off_amount' => array( 'g:money_off_amount', true ),
|
251 |
+
'get_this_quantity_discounted' => array( 'g:get_this_quantity_discounted', true ),
|
252 |
+
'free_shipping' => array( 'g:free_shipping', true ),
|
253 |
+
'free_gift_value' => array( 'g:free_gift_value', true ),
|
254 |
+
'free_gift_description' => array( 'g:free_gift_description', true ),
|
255 |
+
'promotion_display_dates' => array( 'g:promotion_display_dates', true ),
|
256 |
+
'generic_redemption_code' => array( 'g:generic_redemption_code', true ),
|
257 |
+
'fine_print' => array( 'g:fine_print', true ),
|
258 |
+
'promotion_price' => array( 'g:promotion_price', true ),
|
259 |
+
'coupon_value_type' => array( 'g:coupon_value_type', true ),
|
260 |
+
'limit_quantity' => array( 'g:limit_quantity', true ),
|
261 |
+
'limit_value' => array( 'g:limit_value', true ),
|
262 |
+
'minimum_purchase_amount' => array( 'g:minimum_purchase_amount', true ),
|
263 |
+
'item_id_exclusion' => array( 'g:item_id_exclusion', true ),
|
264 |
+
'product_type_exclusion' => array( 'g:product_type_exclusion', true ),
|
265 |
+
'brand_exclusion' => array( 'g:brand_exclusion', true ),
|
266 |
+
'item_group_id_exclusion' => array( 'g:item_group_id_exclusion', true ),
|
267 |
+
|
268 |
+
'cost_of_goods_sold' => array( 'g:cost_of_goods_sold', true ),
|
269 |
+
'sell_on_google_quantity' => array( 'g:sell_on_google_quantity', false ),
|
270 |
+
'min_handling_time' => array( 'g:min_handling_time', false ),
|
271 |
+
'max_handling_time' => array( 'g:max_handling_time', false ),
|
272 |
+
'transit_time_label' => array( 'g:transit_time_label', false ),
|
273 |
+
'return_address_label' => array( 'g:return_address_label', false ),
|
274 |
+
'return_policy_label' => array( 'g:return_policy_label', false ),
|
275 |
+
'store_code' => array( 'g:store_code', false ),
|
276 |
+
'quantity' => array( 'g:quantity', true ),
|
277 |
+
'pickup_method' => array( 'g:pickup_method', true ),
|
278 |
+
'pickup_sla' => array( 'g:pickup_sla', true ),
|
279 |
+
'pickup_link_template' => array( 'g:pickup_link_template', true ),
|
280 |
+
'link_template' => array( 'g:link_template', true ),
|
281 |
+
'mobile_link_template' => array( 'g:mobile_link_template', true ),
|
282 |
+
'mobile_pickup_link_template' => array( 'g:mobile_pickup_link_template', true ),
|
283 |
+
'google_funded_promotion_eligibility' => array(
|
284 |
+
'g:google_funded_promotion_eligibility',
|
285 |
+
false,
|
286 |
+
),
|
287 |
+
);
|
288 |
+
public $facebookXMLAttribute
|
289 |
+
= array(
|
290 |
+
'id' => array( 'g:id', false ),
|
291 |
+
'title' => array( 'g:title', true ),
|
292 |
+
'description' => array( 'g:description', true ),
|
293 |
+
'link' => array( 'g:link', true ),
|
294 |
+
'mobile_link' => array( 'g:mobile_link', true ),
|
295 |
+
'product_type' => array( 'g:product_type', true ),
|
296 |
+
'current_category' => array( 'g:google_product_category', true ),
|
297 |
+
'image' => array( 'g:image_link', true ),
|
298 |
+
'images' => array( 'g:additional_image_link', false ),
|
299 |
+
'images_1' => array( 'g:additional_image_link', true ),
|
300 |
+
'images_2' => array( 'g:additional_image_link', true ),
|
301 |
+
'images_3' => array( 'g:additional_image_link', true ),
|
302 |
+
'images_4' => array( 'g:additional_image_link', true ),
|
303 |
+
'images_5' => array( 'g:additional_image_link', true ),
|
304 |
+
'images_6' => array( 'g:additional_image_link', true ),
|
305 |
+
'images_7' => array( 'g:additional_image_link', true ),
|
306 |
+
'images_8' => array( 'g:additional_image_link', true ),
|
307 |
+
'images_9' => array( 'g:additional_image_link', true ),
|
308 |
+
'images_10' => array( 'g:additional_image_link', true ),
|
309 |
+
'condition' => array( 'g:condition', false ),
|
310 |
+
'availability' => array( 'g:availability', false ),
|
311 |
+
'inventory' => array( 'g:inventory', false ),
|
312 |
+
'override' => array( 'g:override', false ),
|
313 |
+
'price' => array( 'g:price', true ),
|
314 |
+
'sale_price' => array( 'g:sale_price', true ),
|
315 |
+
'sale_price_effective_date' => array( 'g:sale_price_effective_date', true ),
|
316 |
+
'brand' => array( 'g:brand', true ),
|
317 |
+
'sku' => array( 'g:mpn', true ),
|
318 |
+
'upc' => array( 'g:gtin', true ),
|
319 |
+
'identifier_exists' => array( 'g:identifier_exists', true ),
|
320 |
+
'item_group_id' => array( 'g:item_group_id', false ),
|
321 |
+
'color' => array( 'g:color', true ),
|
322 |
+
'gender' => array( 'g:gender', true ),
|
323 |
+
'age_group' => array( 'g:age_group', true ),
|
324 |
+
'material' => array( 'g:material', true ),
|
325 |
+
'pattern' => array( 'g:pattern', true ),
|
326 |
+
'size' => array( 'g:size', true ),
|
327 |
+
'size_type' => array( 'g:size_type', true ),
|
328 |
+
'size_system' => array( 'g:size_system', true ),
|
329 |
+
'tax' => array( 'tax', true ),
|
330 |
+
'weight' => array( 'g:shipping_weight', false ),
|
331 |
+
'length' => array( 'g:shipping_length', false ),
|
332 |
+
'width' => array( 'g:shipping_width', false ),
|
333 |
+
'height' => array( 'g:shipping_height', false ),
|
334 |
+
'ships_from_country' => array( 'g:ships_from_country', false ),
|
335 |
+
'shipping_label' => array( 'g:shipping_label', false ),
|
336 |
+
'shipping_country' => array( 'g:shipping_country', false ),
|
337 |
+
'shipping_service' => array( 'g:shipping_service', false ),
|
338 |
+
'shipping_price' => array( 'g:shipping_price', false ),
|
339 |
+
'shipping_region' => array( 'g:shipping_region', false ),
|
340 |
+
'multipack' => array( 'g:multipack', true ),
|
341 |
+
'is_bundle' => array( 'g:is_bundle', true ),
|
342 |
+
'adult' => array( 'g:adult', true ),
|
343 |
+
'adwords_redirect' => array( 'g:adwords_redirect', true ),
|
344 |
+
'custom_label_0' => array( 'g:custom_label_0', true ),
|
345 |
+
'custom_label_1' => array( 'g:custom_label_1', true ),
|
346 |
+
'custom_label_2' => array( 'g:custom_label_2', true ),
|
347 |
+
'custom_label_3' => array( 'g:custom_label_3', true ),
|
348 |
+
'custom_label_4' => array( 'g:custom_label_4', true ),
|
349 |
+
'excluded_destination' => array( 'g:excluded_destination', true ),
|
350 |
+
'expiration_date' => array( 'g:expiration_date', true ),
|
351 |
+
'unit_pricing_measure' => array( 'g:unit_pricing_measure', true ),
|
352 |
+
'unit_pricing_base_measure' => array( 'g:unit_pricing_base_measure', true ),
|
353 |
+
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
354 |
+
'loyalty_points' => array( 'g:loyalty_points', true ),
|
355 |
+
'installment' => array( 'g:installment', true ),
|
356 |
+
'promotion_id' => array( 'g:promotion_id', true ),
|
357 |
+
'cost_of_goods_sold' => array( 'g:cost_of_goods_sold', true ),
|
358 |
+
'availability_date' => array( 'g:availability_date', true ),
|
359 |
+
'tax_category' => array( 'g:tax_category', true ),
|
360 |
+
'included_destination' => array( 'g:included_destination', true ),
|
361 |
+
'quantity_to_sell_on_facebook' => array( 'g:quantity_to_sell_on_facebook', true ),
|
362 |
+
);
|
363 |
public $facebookCSVTXTAttribute
|
364 |
+
= array(
|
365 |
+
'id' => array( 'id', false ),
|
366 |
+
'title' => array( 'title', true ),
|
367 |
+
'description' => array( 'description', true ),
|
368 |
+
'link' => array( 'link', true ),
|
369 |
+
'mobile_link' => array( 'mobile_link', true ),
|
370 |
+
'product_type' => array( 'product type', true ),
|
371 |
+
'current_category' => array( 'google product category', true ),
|
372 |
+
'image' => array( 'image link', true ),
|
373 |
+
'images' => array( 'additional image link', true ),
|
374 |
+
'images_1' => array( 'additional image link', true ),
|
375 |
+
'images_2' => array( 'additional image link', true ),
|
376 |
+
'images_3' => array( 'additional image link', true ),
|
377 |
+
'images_4' => array( 'additional image link', true ),
|
378 |
+
'images_5' => array( 'additional image link', true ),
|
379 |
+
'images_6' => array( 'additional image link', true ),
|
380 |
+
'images_7' => array( 'additional image link', true ),
|
381 |
+
'images_8' => array( 'additional image link', true ),
|
382 |
+
'images_9' => array( 'additional image link', true ),
|
383 |
+
'images_10' => array( 'additional image link', true ),
|
384 |
+
'condition' => array( 'condition', false ),
|
385 |
+
'availability' => array( 'availability', false ),
|
386 |
+
'inventory' => array( 'inventory', false ),
|
387 |
+
'override' => array( 'override', false ),
|
388 |
+
'price' => array( 'price', true ),
|
389 |
+
'sale_price' => array( 'sale price', true ),
|
390 |
+
'sale_price_effective_date' => array( 'sale price effective date', true ),
|
391 |
+
'brand' => array( 'brand', true ),
|
392 |
+
'sku' => array( 'mpn', true ),
|
393 |
+
'upc' => array( 'gtin', true ),
|
394 |
+
'identifier_exists' => array( 'identifier exists', true ),
|
395 |
+
'item_group_id' => array( 'item group id', false ),
|
396 |
+
'color' => array( 'color', true ),
|
397 |
+
'gender' => array( 'gender', true ),
|
398 |
+
'age_group' => array( 'age group', true ),
|
399 |
+
'material' => array( 'material', true ),
|
400 |
+
'pattern' => array( 'pattern', true ),
|
401 |
+
'size' => array( 'size', true ),
|
402 |
+
'size_type' => array( 'size type', true ),
|
403 |
+
'size_system' => array( 'size system', true ),
|
404 |
+
'tax' => array( 'tax', true ),
|
405 |
+
'weight' => array( 'shipping weight', false ),
|
406 |
+
'length' => array( 'shipping length', false ),
|
407 |
+
'width' => array( 'shipping width', false ),
|
408 |
+
'height' => array( 'shipping height', false ),
|
409 |
+
'ships_from_country' => array( 'ships from country', false ),
|
410 |
+
'shipping_label' => array( 'shipping label', false ),
|
411 |
+
'shipping_country' => array( 'shipping country', false ),
|
412 |
+
'shipping_service' => array( 'shipping service', false ),
|
413 |
+
'shipping_price' => array( 'shipping price', false ),
|
414 |
+
'shipping_region' => array( 'shipping region', false ),
|
415 |
+
'multipack' => array( 'multipack', true ),
|
416 |
+
'is_bundle' => array( 'is bundle', true ),
|
417 |
+
'adult' => array( 'adult', true ),
|
418 |
+
'adwords_redirect' => array( 'adwords redirect', true ),
|
419 |
+
'custom_label_0' => array( 'custom label 0', true ),
|
420 |
+
'custom_label_1' => array( 'custom label 1', true ),
|
421 |
+
'custom_label_2' => array( 'custom label 2', true ),
|
422 |
+
'custom_label_3' => array( 'custom label 3', true ),
|
423 |
+
'custom_label_4' => array( 'custom label 4', true ),
|
424 |
+
'excluded_destination' => array( 'excluded destination', true ),
|
425 |
+
'expiration_date' => array( 'expiration date', true ),
|
426 |
+
'unit_pricing_measure' => array( 'unit pricing measure', true ),
|
427 |
+
'unit_pricing_base_measure' => array( 'unit pricing base measure', true ),
|
428 |
+
'energy_efficiency_class' => array( 'energy efficiency class', true ),
|
429 |
+
'loyalty_points' => array( 'loyalty points', true ),
|
430 |
+
'installment' => array( 'installment', true ),
|
431 |
+
'promotion_id' => array( 'promotion id', true ),
|
432 |
+
'cost_of_goods_sold' => array( 'cost of goods sold', true ),
|
433 |
+
'availability_date' => array( 'availability date', true ),
|
434 |
+
'tax_category' => array( 'tax category', true ),
|
435 |
+
'included_destination' => array( 'included destination', true ),
|
436 |
+
'quantity_to_sell_on_facebook' => array( 'quantity_to_sell_on_facebook', true ),
|
437 |
+
);
|
438 |
public $pinterestXMLAttribute
|
439 |
+
= array(
|
440 |
+
'id' => array( 'g:id', false ),
|
441 |
+
'title' => array( 'title', true ),
|
442 |
+
'description' => array( 'description', true ),
|
443 |
+
'link' => array( 'link', true ),
|
444 |
+
'mobile_link' => array( 'mobile_link', true ),
|
445 |
+
'product_type' => array( 'g:product_type', true ),
|
446 |
+
'current_category' => array( 'g:google_product_category', true ),
|
447 |
+
'image' => array( 'g:image_link', true ),
|
448 |
+
'images' => array( 'g:additional_image_link', false ),
|
449 |
+
'images_1' => array( 'g:additional_image_link', true ),
|
450 |
+
'images_2' => array( 'g:additional_image_link', true ),
|
451 |
+
'images_3' => array( 'g:additional_image_link', true ),
|
452 |
+
'images_4' => array( 'g:additional_image_link', true ),
|
453 |
+
'images_5' => array( 'g:additional_image_link', true ),
|
454 |
+
'images_6' => array( 'g:additional_image_link', true ),
|
455 |
+
'images_7' => array( 'g:additional_image_link', true ),
|
456 |
+
'images_8' => array( 'g:additional_image_link', true ),
|
457 |
+
'images_9' => array( 'g:additional_image_link', true ),
|
458 |
+
'images_10' => array( 'g:additional_image_link', true ),
|
459 |
+
'condition' => array( 'g:condition', false ),
|
460 |
+
'availability' => array( 'g:availability', false ),
|
461 |
+
'availability_date' => array( 'g:availability_date', false ),
|
462 |
+
'inventory' => array( 'g:inventory', false ),
|
463 |
+
'price' => array( 'g:price', true ),
|
464 |
+
'sale_price' => array( 'g:sale_price', true ),
|
465 |
+
'sale_price_effective_date' => array( 'g:sale_price_effective_date', true ),
|
466 |
+
'brand' => array( 'g:brand', true ),
|
467 |
+
'sku' => array( 'g:mpn', true ),
|
468 |
+
'upc' => array( 'g:gtin', true ),
|
469 |
+
'identifier_exists' => array( 'g:identifier_exists', true ),
|
470 |
+
'item_group_id' => array( 'g:item_group_id', false ),
|
471 |
+
'color' => array( 'g:color', true ),
|
472 |
+
'gender' => array( 'g:gender', true ),
|
473 |
+
'age_group' => array( 'g:age_group', true ),
|
474 |
+
'material' => array( 'g:material', true ),
|
475 |
+
'pattern' => array( 'g:pattern', true ),
|
476 |
+
'size' => array( 'g:size', true ),
|
477 |
+
'size_type' => array( 'g:size_type', true ),
|
478 |
+
'size_system' => array( 'g:size_system', true ),
|
479 |
+
'tax' => array( 'tax', true ),
|
480 |
+
'tax_country' => array( 'g:tax_country', true ),
|
481 |
+
'tax_region' => array( 'g:tax_region', true ),
|
482 |
+
'tax_rate' => array( 'g:tax_rate', true ),
|
483 |
+
'tax_ship' => array( 'g:tax_ship', true ),
|
484 |
+
'tax_category' => array( 'g:tax_category', true ),
|
485 |
+
'free_shipping_label' => array( 'g:free_shipping_label', true ),
|
486 |
+
'free_shipping_limit' => array( 'g:free_shipping_limit', true ),
|
487 |
+
'average_review_rating' => array( 'g:average_review_rating', true ),
|
488 |
+
'number_of_ratings' => array( 'g:number_of_ratings', true ),
|
489 |
+
'number_of_reviews' => array( 'g:number_of_reviews', true ),
|
490 |
+
'weight' => array( 'g:shipping_weight', false ),
|
491 |
+
'length' => array( 'g:shipping_length', false ),
|
492 |
+
'width' => array( 'g:shipping_width', false ),
|
493 |
+
'height' => array( 'g:shipping_height', false ),
|
494 |
+
'ships_from_country' => array( 'g:ships_from_country', false ),
|
495 |
+
'shipping_label' => array( 'g:shipping_label', false ),
|
496 |
+
'shipping_country' => array( 'g:shipping_country', false ),
|
497 |
+
'shipping_service' => array( 'g:shipping_service', false ),
|
498 |
+
'shipping_price' => array( 'g:shipping_price', false ),
|
499 |
+
'shipping_region' => array( 'g:shipping_region', false ),
|
500 |
+
'multipack' => array( 'g:multipack', true ),
|
501 |
+
'is_bundle' => array( 'g:is_bundle', true ),
|
502 |
+
'adult' => array( 'g:adult', true ),
|
503 |
+
'adwords_redirect' => array( 'g:adwords_redirect', true ),
|
504 |
+
'custom_label_0' => array( 'g:custom_label_0', true ),
|
505 |
+
'custom_label_1' => array( 'g:custom_label_1', true ),
|
506 |
+
'custom_label_2' => array( 'g:custom_label_2', true ),
|
507 |
+
'custom_label_3' => array( 'g:custom_label_3', true ),
|
508 |
+
'custom_label_4' => array( 'g:custom_label_4', true ),
|
509 |
+
'excluded_destination' => array( 'g:excluded_destination', true ),
|
510 |
+
'included_destination' => array( 'g:included_destination', true ),
|
511 |
+
'expiration_date' => array( 'g:expiration_date', true ),
|
512 |
+
'unit_pricing_measure' => array( 'g:unit_pricing_measure', true ),
|
513 |
+
'unit_pricing_base_measure' => array( 'g:unit_pricing_base_measure', true ),
|
514 |
+
'energy_efficiency_class' => array( 'g:energy_efficiency_class', true ),
|
515 |
+
'loyalty_points' => array( 'g:loyalty_points', true ),
|
516 |
+
'installment' => array( 'g:installment', true ),
|
517 |
+
'promotion_id' => array( 'g:promotion_id', true ),
|
518 |
+
'cost_of_goods_sold' => array( 'g:cost_of_goods_sold', true ),
|
519 |
+
);
|
520 |
public $pinterestCSVTXTAttribute
|
521 |
= array(
|
522 |
'id' => array( 'id', false ),
|
528 |
'current_category' => array( 'google_product_category', true ),
|
529 |
'image' => array( 'image_link', true ),
|
530 |
'images' => array( 'additional_image_link', true ),
|
531 |
+
'images_1' => array( 'additional_image_link', true ),
|
532 |
+
'images_2' => array( 'additional_image_link', true ),
|
533 |
+
'images_3' => array( 'additional_image_link', true ),
|
534 |
+
'images_4' => array( 'additional_image_link', true ),
|
535 |
+
'images_5' => array( 'additional_image_link', true ),
|
536 |
+
'images_6' => array( 'additional_image_link', true ),
|
537 |
+
'images_7' => array( 'additional_image_link', true ),
|
538 |
+
'images_8' => array( 'additional_image_link', true ),
|
539 |
+
'images_9' => array( 'additional_image_link', true ),
|
540 |
+
'images_10' => array( 'additional_image_link', true ),
|
541 |
'condition' => array( 'condition', false ),
|
542 |
'availability' => array( 'availability', false ),
|
543 |
'availability_date' => array( 'availability_date', false ),
|
564 |
'tax_rate' => array( 'tax_rate', true ),
|
565 |
'tax_ship' => array( 'tax_ship', true ),
|
566 |
'tax_category' => array( 'tax_category', true ),
|
567 |
+
'free_shipping_label' => array( 'free_shipping_label', true ),
|
568 |
+
'free_shipping_limit' => array( 'free_shipping_limit', true ),
|
569 |
+
'average_review_rating' => array( 'average_review_rating', true ),
|
570 |
+
'number_of_ratings' => array( 'number_of_ratings', true ),
|
571 |
+
'number_of_reviews' => array( 'number_of_reviews', true ),
|
572 |
'weight' => array( 'shipping_weight', false ),
|
573 |
'length' => array( 'shipping_length', false ),
|
574 |
'width' => array( 'shipping_width', false ),
|
575 |
'height' => array( 'shipping_height', false ),
|
576 |
+
'ships_from_country' => array( 'ships_from_country', false ),
|
577 |
'shipping_label' => array( 'shipping_label', false ),
|
578 |
'shipping_country' => array( 'shipping_country', false ),
|
579 |
'shipping_service' => array( 'shipping_service', false ),
|
600 |
'cost_of_goods_sold' => array( 'cost_of_goods_sold', true ),
|
601 |
);
|
602 |
public $skroutzXMLAttributes
|
603 |
+
= array(
|
604 |
+
'id' => array( 'id', false ),
|
605 |
+
'name' => array( 'name', true ),
|
606 |
+
'description' => array( 'description', true ),
|
607 |
+
'link' => array( 'link', true ),
|
608 |
+
'image' => array( 'image', true ),
|
609 |
+
'additional_imageurl' => array( 'additional_imageurl', false ),
|
610 |
+
'additional_imageurl_1' => array( 'additional_imageurl', true ),
|
611 |
+
'additional_imageurl_2' => array( 'additional_imageurl', true ),
|
612 |
+
'additional_imageurl_3' => array( 'additional_imageurl', true ),
|
613 |
+
'additional_imageurl_4' => array( 'additional_imageurl', true ),
|
614 |
+
'additional_imageurl_5' => array( 'additional_imageurl', true ),
|
615 |
+
'additional_imageurl_6' => array( 'additional_imageurl', true ),
|
616 |
+
'additional_imageurl_7' => array( 'additional_imageurl', true ),
|
617 |
+
'additional_imageurl_8' => array( 'additional_imageurl', true ),
|
618 |
+
'additional_imageurl_9' => array( 'additional_imageurl', true ),
|
619 |
+
'additional_imageurl_10' => array( 'additional_imageurl', true ),
|
620 |
+
'category' => array( 'category', true ),
|
621 |
+
'price' => array( 'price', false ),
|
622 |
+
'price_with_vat' => array( 'price_with_vat', false ),
|
623 |
+
'manufacturer' => array( 'manufacturer', true ),
|
624 |
+
'mpn' => array( 'mpn', false ),
|
625 |
+
'ean' => array( 'ean', false ),
|
626 |
+
'instock' => array( 'instock', false ),
|
627 |
+
'availability' => array( 'availability', false ),
|
628 |
+
'color' => array( 'color', false ),
|
629 |
+
'size' => array( 'size', false ),
|
630 |
+
'weight' => array( 'weight', false ),
|
631 |
+
'quantity' => array( 'quantity', false ),
|
632 |
+
);
|
633 |
|
634 |
public $gLocalAttributes
|
635 |
= array(
|
641 |
'description' => array( 'description', true ),
|
642 |
);
|
643 |
|
644 |
+
|
645 |
/**
|
646 |
* Google Attribute List
|
647 |
*
|
648 |
* @return array
|
649 |
*/
|
650 |
public function googleAttributes() {
|
651 |
+
return array(
|
652 |
+
'--1' => 'Basic Information',
|
653 |
+
'id' => 'Product Id[id]',
|
654 |
+
'webitemid' => 'Product WebItemId[webitemid]',
|
655 |
+
'region_id' => 'Region Id[region_id]',
|
656 |
+
'title' => 'Product Title[title]',
|
657 |
+
'description' => 'Product Description[description]',
|
658 |
+
'link' => 'Product URL[link]',
|
659 |
+
'canonical_link' => 'Canonical Link[canonical_link]',
|
660 |
+
'mobile_link' => 'Product URL[mobile_link]',
|
661 |
+
'product_type' => 'Product Categories[product_type] ',
|
662 |
+
'current_category' => 'Google Product Category[google_product_category]',
|
663 |
+
'image' => 'Main Image[image_link]',
|
664 |
+
'images' => 'Additional Images [additional_image_link]',
|
665 |
+
'images_1' => 'Additional Image 1 [additional_image_link]',
|
666 |
+
'images_2' => 'Additional Image 2 [additional_image_link]',
|
667 |
+
'images_3' => 'Additional Image 3 [additional_image_link]',
|
668 |
+
'images_4' => 'Additional Image 4 [additional_image_link]',
|
669 |
+
'images_5' => 'Additional Image 5 [additional_image_link]',
|
670 |
+
'images_6' => 'Additional Image 6 [additional_image_link]',
|
671 |
+
'images_7' => 'Additional Image 7 [additional_image_link]',
|
672 |
+
'images_8' => 'Additional Image 8 [additional_image_link]',
|
673 |
+
'images_9' => 'Additional Image 9 [additional_image_link]',
|
674 |
+
'images_10' => 'Additional Image 10 [additional_image_link]',
|
675 |
+
'condition' => 'Condition[condition]',
|
676 |
+
'---1' => '',
|
677 |
+
'--2' => 'Availability & Price',
|
678 |
+
'availability' => 'Stock Status[availability]',
|
679 |
+
'availability_date' => 'Availability Date[availability_date]',
|
680 |
+
'inventory' => 'Facebook Inventory[inventory]',
|
681 |
+
'override' => 'Facebook Override[override]',
|
682 |
+
'price' => 'Regular Price[price]',
|
683 |
+
'sale_price' => 'Sale Price[sale_price]',
|
684 |
+
'cost_of_goods_sold' => 'Cost of Goods Sold[cost_of_goods_sold]',
|
685 |
+
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
686 |
+
'---2' => '',
|
687 |
+
'--3' => 'Unique Product Identifiers',
|
688 |
+
'brand' => 'Manufacturer[brand]',
|
689 |
+
'upc' => 'GTIN[gtin]',
|
690 |
+
'sku' => 'MPN[mpn]',
|
691 |
+
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
692 |
+
'---3' => '',
|
693 |
+
'--4' => 'Detailed Product Attributes',
|
694 |
+
'item_group_id' => 'Item Group Id[item_group_id]',
|
695 |
+
'external_seller_id' => 'External seller ID[external_seller_id]',
|
696 |
+
'color' => 'Color[color]',
|
697 |
+
'gender' => 'Gender[gender]',
|
698 |
+
'age_group' => 'Age Group[age_group]',
|
699 |
+
'material' => 'Material[material]',
|
700 |
+
'pattern' => 'Pattern[pattern]',
|
701 |
+
'size' => 'Size of the item[size]',
|
702 |
+
'size_type' => 'Size Type[size_type]',
|
703 |
+
'size_system' => 'Size System[size_system]',
|
704 |
+
'product_length' => 'Product Length[product_length]',
|
705 |
+
'product_width' => 'Product Width[product_width]',
|
706 |
+
'product_height' => 'Product Height[product_height]',
|
707 |
+
'product_weight' => 'Product Weight[product_weight]',
|
708 |
+
'product_highlight_1' => 'Product Highlight 1[product_highlight]',
|
709 |
+
'product_highlight_2' => 'Product Highlight 2[product_highlight]',
|
710 |
+
'product_highlight_3' => 'Product Highlight 3[product_highlight]',
|
711 |
+
'product_highlight_4' => 'Product Highlight 4[product_highlight]',
|
712 |
+
'product_highlight_5' => 'Product Highlight 5[product_highlight]',
|
713 |
+
'product_highlight_6' => 'Product Highlight 6[product_highlight]',
|
714 |
+
'product_highlight_7' => 'Product Highlight 7[product_highlight]',
|
715 |
+
'product_highlight_8' => 'Product Highlight 8[product_highlight]',
|
716 |
+
'product_highlight_9' => 'Product Highlight 9[product_highlight]',
|
717 |
+
'product_highlight_10' => 'Product Highlight 10[product_highlight]',
|
718 |
+
'section_name' => 'Section Name (Product Detail)[section_name]',
|
719 |
+
'attribute_name' => 'Attribute Name (Product Detail)[attribute_name]',
|
720 |
+
'attribute_value' => 'Attribute Value (Product Detail)[attribute_value]',
|
721 |
+
'---4' => '',
|
722 |
+
'--5' => 'Tax & Shipping',
|
723 |
+
'tax' => 'Tax[tax]',
|
724 |
+
'tax_country' => 'Tax Country[tax_country]',
|
725 |
+
'tax_region' => 'Tax Region[tax_region]',
|
726 |
+
'tax_rate' => 'Tax Rate[tax_rate]',
|
727 |
+
'tax_ship' => 'Tax Ship[tax_ship]',
|
728 |
+
'tax_category' => 'Tax[tax_category]',
|
729 |
+
'shipping' => 'Shipping',
|
730 |
+
'min_handling_time' => 'Min Handling Time[min_handling_time]',
|
731 |
+
'max_handling_time' => 'Max Handling Time[max_handling_time]',
|
732 |
+
'min_transit_time' => 'Min Transit Time[min_transit_time]',
|
733 |
+
'max_transit_time' => 'Max Transit Time[max_transit_time]',
|
734 |
+
'weight' => 'Shipping Weight[shipping_weight]',
|
735 |
+
'length' => 'Shipping Length[shipping_length]',
|
736 |
+
'width' => 'Shipping Width[shipping_width]',
|
737 |
+
'height' => 'Shipping Height[shipping_height]',
|
738 |
+
'ships_from_country' => 'Shipping Country[ships_from_country]',
|
739 |
+
'shipping_label' => 'Shipping Label[shipping_label]',
|
740 |
+
'material_1' => 'The primary material',
|
741 |
+
'material_2' => 'The secondary material',
|
742 |
+
'material_3' => 'The tertiary material',
|
743 |
+
'---5' => '',
|
744 |
+
'--6' => 'Product Combinations',
|
745 |
+
'multipack' => 'Multipack[multipack]',
|
746 |
+
'is_bundle' => 'Is Bundle[is_bundle]',
|
747 |
+
'---6' => '',
|
748 |
+
'--7' => 'Adult Products',
|
749 |
+
'adult' => 'Adult[adult]',
|
750 |
+
'---7' => '',
|
751 |
+
'--8' => 'Ads Attributes',
|
752 |
+
'ads_redirect' => 'Ads Redirect[ads_redirect]',
|
753 |
+
'---8' => '',
|
754 |
+
'--9' => 'Custom Label Attributes',
|
755 |
+
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
756 |
+
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
757 |
+
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
758 |
+
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
759 |
+
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
760 |
+
'---9' => '',
|
761 |
+
'--10' => 'Additional Attributes',
|
762 |
+
'excluded_destination' => 'Excluded Destination[excluded_destination]',
|
763 |
+
'shopping_ads_excluded_country' => 'Shopping Ads Excluded Country[shopping_ads_excluded_country]',
|
764 |
+
'included_destination' => 'Included Destination[included_destination]',
|
765 |
+
'expiration_date' => 'Expiration Date [expiration_date]',
|
766 |
+
'transit_time_label' => 'Transit Time [transit_time_label]',
|
767 |
+
'---10' => '',
|
768 |
+
'--11' => 'Unit Prices (EU Countries and Switzerland Only)',
|
769 |
+
'unit_pricing_measure' => 'Unit Pricing Measure[unit_pricing_measure]',
|
770 |
+
'unit_pricing_base_measure' => 'Unit Pricing Base Measure[unit_pricing_base_measure]',
|
771 |
+
'installment_months' => 'Installment Months[months]',
|
772 |
+
'installment_amount' => 'Installment Amount[amount]',
|
773 |
+
'subscription_period' => 'Subscription Period[period]',
|
774 |
+
'subscription_period_length' => 'Subscription Period Length[period_length]',
|
775 |
+
'subscription_amount' => 'Subscription Amount[amount]',
|
776 |
+
'---11' => '',
|
777 |
+
'--12' => 'Energy Labels',
|
778 |
+
'energy_efficiency_class' => 'Energy Efficiency Class[energy_efficiency_class]',
|
779 |
+
'min_energy_efficiency_class' => 'Min Energy Efficiency Class[energy_efficiency_class]',
|
780 |
+
'max_energy_efficiency_class' => 'Max Energy Efficiency Class[energy_efficiency_class]',
|
781 |
+
'---12' => '',
|
782 |
+
'--13' => 'Loyalty Points (Japan Only)',
|
783 |
+
'loyalty_points' => 'loyalty_points[loyalty_points]',
|
784 |
+
'---13' => '',
|
785 |
+
'--14' => 'Multiple Installments (Brazil Only)',
|
786 |
+
'installment' => 'Installment[installment]',
|
787 |
+
'---14' => '',
|
788 |
+
'--15' => 'Pinterest Catalog Attributes',
|
789 |
+
'free_shipping_label' => 'Free Shipping Label[free_shipping_label]',
|
790 |
+
'free_shipping_limit' => 'Free Shipping Limit[free_shipping_limit]',
|
791 |
+
'average_review_rating' => 'Average Review Rating[average_review_rating]',
|
792 |
+
'number_of_ratings' => 'Number of Ratings[number_of_ratings]',
|
793 |
+
'number_of_reviews' => 'Number of Reviews[number_of_reviews]',
|
794 |
+
'---15' => '',
|
795 |
+
'--16' => 'Merchant Promotions Attributes',
|
796 |
+
'promotion_id' => 'Promotion Id[promotion_id]',
|
797 |
+
'product_applicability' => 'Product Applicability[product_applicability]',
|
798 |
+
'offer_type' => 'Offer Type[offer_type]',
|
799 |
+
'long_title' => 'Long Title[long_title]',
|
800 |
+
'promotion_effective_dates' => 'Promotion Effective Dates[promotion_effective_dates]',
|
801 |
+
'redemption_channel' => 'Redemption Channel[redemption_channel]',
|
802 |
+
'promotion_destination' => 'Promotion Destination[promotion_destination]',
|
803 |
+
'percent_off' => 'Percent Off[percent_off]',
|
804 |
+
'money_off_amount' => 'Money Off Amount[money_off_amount]',
|
805 |
+
'get_this_quantity_discounted' => 'Get Quantity Discounted[get_this_quantity_discounted]',
|
806 |
+
'free_shipping' => 'Free Shipping[free_shipping]',
|
807 |
+
'free_gift_value' => 'Free Gift Value[free_gift_value]',
|
808 |
+
'free_gift_description' => 'Free Gift Description[free_gift_description]',
|
809 |
+
'free_gift_item_id' => 'Free Gift Item ID[free_gift_item_id]',
|
810 |
+
'promotion_display_dates' => 'Promotion Display Dates[promotion_display_dates]',
|
811 |
+
'generic_redemption_code' => 'Generic Redemption Code[generic_redemption_code]',
|
812 |
+
'fine_print' => 'Fine Print[fine_print]',
|
813 |
+
'promotion_price' => 'Promotion Price[promotion_price]',
|
814 |
+
'coupon_value_type' => 'Coupon Value Type[coupon_value_type]',
|
815 |
+
'limit_quantity' => 'Limit Quantity[limit_quantity]',
|
816 |
+
'limit_value' => 'Limit Value[limit_value]',
|
817 |
+
'minimum_purchase_amount' => 'Minimum Purchase Amount[minimum_purchase_amount]',
|
818 |
+
'item_id_exclusion' => 'Item ID Exclusion[item_id_exclusion]',
|
819 |
+
'product_type_exclusion' => 'Product Type Exclusion[product_type_exclusion]',
|
820 |
+
'brand_exclusion' => 'Brand Exclusion[brand_exclusion]',
|
821 |
+
'item_group_id_exclusion' => 'Item Group Exclusion[item_group_id_exclusion]',
|
822 |
+
'---16' => '',
|
823 |
+
'--17' => 'Shopping Action Attributes',
|
824 |
+
'sell_on_google_quantity' => 'Number of Product Sold On Google [sell_on_google_quantity]',
|
825 |
+
'return_address_label' => 'Return Address [return_address_label]',
|
826 |
+
'return_policy_label' => 'Return Policy [return_policy_label]',
|
827 |
+
'google_funded_promotion_eligibility' => 'Google Funded Promotion Eligibility [google_funded_promotion_eligibility]',
|
828 |
+
'---17' => '',
|
829 |
+
'--18' => 'Local Inventory / Product Inventory',
|
830 |
+
'store_code' => 'Store Code [store_code]',
|
831 |
+
'quantity' => 'Quantity [quantity]',
|
832 |
+
'pickup_method' => 'Pickup Method [pickup_method]',
|
833 |
+
'pickup_sla' => 'Pickup SLA [pickup_sla]',
|
834 |
+
'pickup_link_template' => 'Pickup Link Template [pickup_link_template]',
|
835 |
+
'link_template' => 'Link Template [link_template]',
|
836 |
+
'mobile_link_template' => 'Mobile Link Template [mobile_link_template]',
|
837 |
+
'mobile_pickup_link_template' => 'Mobile Pickup Link Template [mobile_pickup_link_template]',
|
838 |
+
'---18' => '',
|
839 |
+
);
|
840 |
}
|
841 |
|
842 |
+
/**
|
843 |
+
* Facebook Attribute List
|
844 |
+
*
|
845 |
+
* @return array
|
846 |
+
*/
|
847 |
+
public function facebookAttributes() {
|
848 |
+
return array(
|
849 |
+
'--1' => 'Basic Information',
|
850 |
+
'id' => 'Product Id[id]',
|
851 |
+
'title' => 'Product Title[title]',
|
852 |
+
'description' => 'Product Description[description]',
|
853 |
+
'link' => 'Product URL[link]',
|
854 |
+
'mobile_link' => 'Product URL[mobile_link]',
|
855 |
+
'product_type' => 'Product Categories[product_type] ',
|
856 |
+
'fb_product_category' => 'Facebook Product Category[fb_product_category]',
|
857 |
+
'current_category' => 'Google Product Category[google_product_category]',
|
858 |
+
'image' => 'Main Image[image_link]',
|
859 |
+
'images' => 'Additional Images [additional_image_link]',
|
860 |
+
'images_1' => 'Additional Image 1 [additional_image_link]',
|
861 |
+
'images_2' => 'Additional Image 2 [additional_image_link]',
|
862 |
+
'images_3' => 'Additional Image 3 [additional_image_link]',
|
863 |
+
'images_4' => 'Additional Image 4 [additional_image_link]',
|
864 |
+
'images_5' => 'Additional Image 5 [additional_image_link]',
|
865 |
+
'images_6' => 'Additional Image 6 [additional_image_link]',
|
866 |
+
'images_7' => 'Additional Image 7 [additional_image_link]',
|
867 |
+
'images_8' => 'Additional Image 8 [additional_image_link]',
|
868 |
+
'images_9' => 'Additional Image 9 [additional_image_link]',
|
869 |
+
'images_10' => 'Additional Image 10 [additional_image_link]',
|
870 |
+
'condition' => 'Condition[condition]',
|
871 |
+
'---1' => '',
|
872 |
+
'--2' => 'Availability & Price',
|
873 |
+
'availability' => 'Stock Status[availability]',
|
874 |
+
'availability_date' => 'Availability Date[availability_date]',
|
875 |
+
'price' => 'Regular Price[price]',
|
876 |
+
'sale_price' => 'Sale Price[sale_price]',
|
877 |
+
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
878 |
+
'---2' => '',
|
879 |
+
'--3' => 'Unique Product Identifiers',
|
880 |
+
'brand' => 'Manufacturer[brand]',
|
881 |
+
'gtin' => 'GTIN[gtin]',
|
882 |
+
'mpn' => 'MPN[mpn]',
|
883 |
+
'identifier_exists' => 'Identifier Exist[identifier_exists]',
|
884 |
+
'---3' => '',
|
885 |
+
'--4' => 'Detailed Product Attributes',
|
886 |
+
'item_group_id' => 'Item Group Id[item_group_id]',
|
887 |
+
'color' => 'Color[color]',
|
888 |
+
'gender' => 'Gender[gender]',
|
889 |
+
'age_group' => 'Age Group[age_group]',
|
890 |
+
'material' => 'Material[material]',
|
891 |
+
'pattern' => 'Pattern[pattern]',
|
892 |
+
'size' => 'Size of the item[size]',
|
893 |
+
'---4' => '',
|
894 |
+
'--5' => 'Tax & Shipping',
|
895 |
+
'tax' => 'Tax[tax]',
|
896 |
+
'tax_country' => 'Tax Country[tax_country]',
|
897 |
+
'tax_region' => 'Tax Region[tax_region]',
|
898 |
+
'tax_rate' => 'Tax Rate[tax_rate]',
|
899 |
+
'tax_ship' => 'Tax Ship[tax_ship]',
|
900 |
+
'tax_category' => 'Tax[tax_category]',
|
901 |
+
'shipping' => 'Shipping',
|
902 |
+
'shipping_weight' => 'Shipping Weight[shipping_weight]',
|
903 |
+
'---5' => '',
|
904 |
+
'--6' => 'Custom Label Attributes',
|
905 |
+
'custom_label_0' => 'Custom label 0 [custom_label_0]',
|
906 |
+
'custom_label_1' => 'Custom label 1 [custom_label_1]',
|
907 |
+
'custom_label_2' => 'Custom label 2 [custom_label_2]',
|
908 |
+
'custom_label_3' => 'Custom label 3 [custom_label_3]',
|
909 |
+
'custom_label_4' => 'Custom label 4 [custom_label_4]',
|
910 |
+
'---6' => '',
|
911 |
+
'--7' => 'Additional Attributes',
|
912 |
+
'inventory' => 'Facebook Inventory[inventory]',
|
913 |
+
'override' => 'Facebook Override[override]',
|
914 |
+
'status' => 'Status [status]',
|
915 |
+
'video' => 'Video [video]',
|
916 |
+
'unit_price_value' => 'Unit Price > Value [unit_price_value]',
|
917 |
+
'unit_price_currency' => 'Unit Price > Currency [unit_price_currency]',
|
918 |
+
'unit_price_unit' => 'Unit Price > Unit [unit_price_unit]',
|
919 |
+
'quantity_to_sell_on_facebook' => 'Quantity to Sell on Facebook [quantity_to_sell_on_facebook]',
|
920 |
+
'commerce_tax_category' => 'Commerce Tax Category [commerce_tax_category]',
|
921 |
+
'expiration_date' => 'Expiration Date[expiration_date]',
|
922 |
+
'marked_for_product_launch' => 'Marked for Product Launce [marked_for_product_launch]',
|
923 |
+
'rich_text_description' => 'Rich Text Description [rich_text_description]',
|
924 |
+
'visibility' => 'Visibility [visibility]',
|
925 |
+
'additional_variant_label' => 'Additional Variant Attribute > Label [Variant Label]',
|
926 |
+
'additional_variant_value' => 'Additional Variant Attribute > Value [Variant Value]',
|
927 |
+
'applink' => 'Applink [applink]',
|
928 |
+
'origin_country' => 'Origin Country [origin_country]',
|
929 |
+
'importer_name' => 'Importer Name [importer_name]',
|
930 |
+
'importer_address' => 'Importer Address [importer_address]',
|
931 |
+
'manufacturer_info' => 'Manufacturer Info [manufacturer_info]',
|
932 |
+
'return_policy_info' => 'Return Policy Info [return_policy_info]',
|
933 |
+
'---7' => '',
|
934 |
+
);
|
935 |
+
}
|
936 |
|
937 |
+
/**
|
938 |
+
* Google Dynamic Ads Attribute List
|
939 |
+
*
|
940 |
+
* @return array
|
941 |
+
*/
|
942 |
+
public function google_dynamic_adsAttributes() {
|
943 |
|
944 |
+
return array(
|
945 |
+
'--1' => 'Basic Information',
|
946 |
+
'Page URL' => 'Page URL[Page URL]',
|
947 |
+
'Custom Label' => 'Custom Label [Custom Label]',
|
948 |
+
'---1' => '',
|
949 |
|
950 |
+
);
|
951 |
+
}
|
952 |
|
953 |
+
/**
|
954 |
+
* Bing Attribute List
|
955 |
+
*
|
956 |
+
* @return array
|
957 |
+
*/
|
958 |
+
public function bingAttributes() {
|
959 |
|
960 |
+
return array(
|
961 |
+
'--1' => 'Basic Information',
|
962 |
+
'id' => 'Product Id[id]',
|
963 |
+
'title' => 'Product Title[title]',
|
964 |
+
'link' => 'Product URL[link]',
|
965 |
+
'price' => 'Product Price[price]',
|
966 |
+
'description' => 'Product Description[description]',
|
967 |
+
'image_link' => 'Image[image_link]',
|
968 |
+
'shipping' => 'Shipping [shipping]',
|
969 |
+
'shipping_country' => 'Shipping Country[shipping]',
|
970 |
+
'shipping_service' => 'Shipping Service[shipping]',
|
971 |
+
'shipping_price' => 'Shipping Price[shipping]',
|
972 |
+
'gtin' => 'GTIN[gtin]',
|
973 |
+
'mpn' => 'MPN[mpn]',
|
974 |
+
'brand' => 'Brand[brand]',
|
975 |
+
'identifier_exists' => 'Identifier Exists[identifier_exists]',
|
976 |
+
'---1' => '',
|
977 |
+
'--2' => 'Apparel Products',
|
978 |
+
'gender' => 'Gender[gender]',
|
979 |
+
'age_group' => 'Age Group[age_group]',
|
980 |
+
'color' => 'Color[color]',
|
981 |
+
'size' => 'Size[size]',
|
982 |
+
'size_type' => 'Size Type[size_type]',
|
983 |
+
'size_system' => 'Size System[size_system]',
|
984 |
+
'---2' => '',
|
985 |
+
'--3' => 'Product Variants',
|
986 |
+
'item_group_id' => 'Item Group ID[item_group_id]',
|
987 |
+
'material' => 'Material[material]',
|
988 |
+
'pattern' => 'Pattern[pattern]',
|
989 |
+
'additional_image_link' => 'Additional Image Link[additional_image_link]',
|
990 |
+
'---3' => '',
|
991 |
+
'--4' => 'Other Information',
|
992 |
+
'adult' => 'Adult[adult]',
|
993 |
+
'availability' => 'Availability[availability]',
|
994 |
+
'product_category' => 'Product Category[product_category]',
|
995 |
+
'condition' => 'Condition[condition]',
|
996 |
+
'expiration_date' => 'Expiration Date[expiration_date]',
|
997 |
+
'multipack' => 'Multipack[multipack]',
|
998 |
+
'product_type' => 'Product Type[product_type]',
|
999 |
+
'mobile_link' => 'Mobile Link[mobile_link]',
|
1000 |
+
'unit_pricing_measure' => 'Unit Pricing Measure[unit_pricing_measure]',
|
1001 |
+
'unit_pricing_base_measure' => 'Unit Pricing Base Measure[unit_pricing_base_measure]',
|
1002 |
+
'installment' => 'Installment[installment]',
|
1003 |
+
'energy_efficiency_class' => 'Energy Efficiency Class[energy_efficiency_class]',
|
1004 |
+
'min_energy_efficiency_class' => 'Min Energy Efficiency Class[min_energy_efficiency_class]',
|
1005 |
+
'max_energy_efficiency_class' => 'Max Energy Efficiency Class[max_energy_efficiency_class]',
|
1006 |
+
'seller_name' => 'Seller Name[seller_name]',
|
1007 |
+
'ads_redirect' => 'Ads Redirect[ads_redirect]',
|
1008 |
+
'custom_label_0' => 'Custom Label 0[custom_label_0]',
|
1009 |
+
'custom_label_1' => 'Custom Label 1[custom_label_1]',
|
1010 |
+
'custom_label_2' => 'Custom Label 2[custom_label_2]',
|
1011 |
+
'custom_label_3' => 'Custom Label 3[custom_label_3]',
|
1012 |
+
'custom_label_4' => 'Custom Label 4[custom_label_4]',
|
1013 |
+
'---4' => '',
|
1014 |
+
'--5' => 'Sales & Promotions',
|
1015 |
+
'sale_price' => 'Sale Price[sale_price]',
|
1016 |
+
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
1017 |
+
'promotion_ID' => 'Promotion ID[promotion_ID]',
|
1018 |
+
'---5' => '',
|
1019 |
+
'--6' => 'Local Product Inventory',
|
1020 |
+
'store_code' => 'Store Code[store_code]',
|
1021 |
+
'itemid' => 'Item ID[itemid]',
|
1022 |
+
'quantity' => 'Quantity[quantity]',
|
1023 |
+
'weeks_of_supply' => 'Weeks Of Supply[weeks_of_supply]',
|
1024 |
+
'pick_up_method' => 'Pick Up Method[pick_up_method]',
|
1025 |
+
'pick_up_sla' => 'Pick Up SLA[pick_up_sla]',
|
1026 |
+
'---6' => '',
|
1027 |
+
);
|
1028 |
+
}
|
1029 |
|
1030 |
+
/**
|
1031 |
+
* Pinterest RSS Board Attribute List
|
1032 |
+
*
|
1033 |
+
* @return array
|
1034 |
+
*/
|
1035 |
+
public function pinterest_rssAttributes() {
|
1036 |
|
1037 |
+
return array(
|
1038 |
+
'--1' => 'Basic Information',
|
1039 |
+
'title' => 'Product Title[title]',
|
1040 |
+
'description' => 'Product Description[description]',
|
1041 |
+
'link' => 'Product URL[link]',
|
1042 |
+
'image' => 'Main Image[image]',
|
1043 |
+
'pubDate' => 'Publish Date[pubDate]',
|
1044 |
+
'guid' => 'GUID[guid]',
|
1045 |
+
'---1' => '',
|
1046 |
|
1047 |
+
);
|
1048 |
+
}
|
1049 |
|
1050 |
+
/**
|
1051 |
+
* Google Product Review Attribute List
|
1052 |
+
*
|
1053 |
+
* @return array
|
1054 |
+
*/
|
1055 |
+
public function googlereviewAttributes() {
|
1056 |
+
return array(
|
1057 |
+
'product_name' => 'Product Title [product_name]',
|
1058 |
+
'product_url' => 'Product URL [product_url]',
|
1059 |
+
'review_temp_gtin' => 'GTIN [gtin]',
|
1060 |
+
'review_temp_mpn' => 'MPN [mpn]',
|
1061 |
+
'review_temp_sku' => 'SKU [sku]',
|
1062 |
+
'review_temp_brand' => 'Brand [brand]',
|
1063 |
+
);
|
1064 |
+
}
|
1065 |
|
1066 |
+
/**
|
1067 |
+
* Wine Searcher Attribute List
|
1068 |
+
*
|
1069 |
+
* @return array
|
1070 |
+
*/
|
1071 |
+
public function winesearcherAttributes() {
|
1072 |
+
return array(
|
1073 |
+
'--1' => 'Basic Information',
|
1074 |
+
'name' => 'Product Title[name]',
|
1075 |
+
'description' => 'Product description[description]',
|
1076 |
+
'vintage' => 'Vintage[vintage]',
|
1077 |
+
'link' => 'Product URL[link]',
|
1078 |
+
'unit-size' => 'Unit Size[unit-size]',
|
1079 |
+
'price' => 'Price[price]',
|
1080 |
+
'url' => 'URL[url] ',
|
1081 |
+
'min-order' => 'Minimum Order[min-order]',
|
1082 |
+
'tax' => 'Tax[tax]',
|
1083 |
+
'offer-type' => 'Offer Type[offer-type]',
|
1084 |
+
'delivery-time' => 'Delivery Time[delivery-time]',
|
1085 |
+
'stock-level' => 'Stock Level[stock-level]',
|
1086 |
+
);
|
1087 |
+
}
|
1088 |
|
1089 |
+
/**
|
1090 |
+
* TikTok Attribute List
|
1091 |
+
*
|
1092 |
+
* @since 4.4.31
|
1093 |
+
* @author Nazrul Islam Nayan
|
1094 |
+
* @return array
|
1095 |
+
*/
|
1096 |
+
public function tiktokAttributes() {
|
1097 |
+
return array(
|
1098 |
+
'--1' => 'Basic Information',
|
1099 |
+
'sku_id' => 'SKU ID[id]',
|
1100 |
+
'title' => 'Product Title[title]',
|
1101 |
+
'description' => 'Product description[description]',
|
1102 |
+
'availability' => 'Availability[availability]',
|
1103 |
+
'condition' => 'Condition[condition]',
|
1104 |
+
'price' => 'Price[price]',
|
1105 |
+
'sale_price' => 'Sale Price[sale_price]',
|
1106 |
+
'shipping' => 'Shipping[shipping]',
|
1107 |
+
'tax ' => 'Tax[tax]',
|
1108 |
+
'shipping_weight' => 'Shipping Weight[shipping_weight]',
|
1109 |
+
'link' => 'Product URL[link]',
|
1110 |
+
'image_link' => 'Product Image[image_link]',
|
1111 |
+
'additional_image_link' => 'Additional Image [additional_image_link]',
|
1112 |
+
'item_group_id' => 'Parent ID[item_group_id]',
|
1113 |
+
'brand' => 'Product Brand[brand]',
|
1114 |
+
'gtin' => 'Gtin[gtin]',
|
1115 |
+
'mpn' => 'MPN[mpn]',
|
1116 |
+
'google_product_category' => 'Google Product Category[google_product_category]',
|
1117 |
+
'video_link' => 'Video Link[video_link]',
|
1118 |
+
'age_group' => 'Age Group[age_group]',
|
1119 |
+
'color' => 'Color[color]',
|
1120 |
+
'size' => 'Size[size]',
|
1121 |
+
'gender' => 'Gender[gender]',
|
1122 |
+
'material' => 'Material[material]',
|
1123 |
+
'pattern' => 'Pattern[pattern]',
|
1124 |
+
'product_type' => 'Product Type[product_type]',
|
1125 |
+
'ios_url' => 'IOS URL[ios_url]',
|
1126 |
+
'ios_app_store_id' => 'IOS App Store ID[ios_app_store_id]',
|
1127 |
+
'ios_app_name' => 'IOS App Name[ios_app_name]',
|
1128 |
+
'iPhone_url' => 'iPhone URL[iPhone_url]',
|
1129 |
+
'iPhone_app_store_id' => 'iPhone App Store ID[iPhone_app_store_id]',
|
1130 |
+
'iPhone_app_name' => 'iPhone App Name[iPhone_app_name]',
|
1131 |
+
'iPad_url' => 'iPad URL[iPad_url]',
|
1132 |
+
'iPad_app_store_id' => 'iPad App Store ID[iPad_app_store_id]',
|
1133 |
+
'iPad_app_name' => 'iPad App Name[iPad_app_name]',
|
1134 |
+
'android_url' => 'Android URL[android_url]',
|
1135 |
+
'android_package' => 'Android Package[android_package]',
|
1136 |
+
'android_app_name' => 'Android App Name[android_app_name]',
|
1137 |
+
'custom_label_0' => 'custom_label_0[custom_label_0]',
|
1138 |
+
'custom_label_1' => 'custom_label_1[custom_label_1]',
|
1139 |
+
'custom_label_2' => 'custom_label_2[custom_label_2]',
|
1140 |
+
'custom_label_3' => 'custom_label_3[custom_label_3]',
|
1141 |
+
'custom_label_4' => 'custom_label_4[custom_label_4]',
|
1142 |
+
'merchant_brand' => 'Merchant Brand[merchant_brand]',
|
1143 |
+
'productHisEval' => 'Purchase Count:FeedBack[productHisEval]',
|
1144 |
+
'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
|
1145 |
+
);
|
1146 |
+
}
|
1147 |
|
1148 |
+
/**
|
1149 |
+
* Modalova Attribute List
|
1150 |
+
*
|
1151 |
+
* @since 5.2.10
|
1152 |
+
* @author Nazrul Islam Nayan
|
1153 |
+
* @return array
|
1154 |
+
*/
|
1155 |
+
public function modalovaAttributes() {
|
1156 |
+
return array(
|
1157 |
+
'--1' => 'Basic Information',
|
1158 |
+
'id' => 'Product ID[id]',
|
1159 |
+
'title' => 'Product Title[title]',
|
1160 |
+
'slug' => 'Product URL Slug[slug]',
|
1161 |
+
'description' => 'Product description[description]',
|
1162 |
+
'short_description' => 'Product Short description[short_description]',
|
1163 |
+
'link' => 'Product URL[link]',
|
1164 |
+
'sku' => 'SKU[sku]',
|
1165 |
+
'brand' => 'Product Brand[brand]',
|
1166 |
+
'main_image' => 'Product Image[main_image]',
|
1167 |
+
'featured_image' => 'Featured Image[featured_image]',
|
1168 |
+
'images' => 'Images[images]',
|
1169 |
+
'price' => 'Price[price]',
|
1170 |
+
'sale_price' => 'Sale Price[sale_price]',
|
1171 |
+
'availability' => 'Availability[availability]',
|
1172 |
+
'tags' => 'Tags[tags]',
|
1173 |
+
'color' => 'Color[color]',
|
1174 |
+
'size' => 'Size[size]',
|
1175 |
+
'quantity' => 'Quantity[quantity]',
|
1176 |
+
'parent_id' => 'Parent ID[parent_id]',
|
1177 |
+
'condition' => 'Condition[condition]',
|
1178 |
+
'category' => 'Category[category]',
|
1179 |
+
'parent_category' => 'Parent Category[parent_category]',
|
1180 |
+
'child_category' => 'Child Category[child_category]',
|
1181 |
+
'category_path' => 'Category Path[category_path]',
|
1182 |
+
'created_at' => 'Created At[created_at]',
|
1183 |
+
'updated_at' => 'Updated At[updated_at]',
|
1184 |
+
);
|
1185 |
+
}
|
1186 |
|
1187 |
+
/**
|
1188 |
+
* Catch.com.au Attribute List
|
1189 |
+
*
|
1190 |
+
* @return array
|
1191 |
+
*/
|
1192 |
+
public function catchdotcomAttributes() {
|
1193 |
+
return array(
|
1194 |
+
'product-id' => 'Product ID [product-id]',
|
1195 |
+
'title' => 'Product title [title]',
|
1196 |
+
'product-description' => 'Product Description[product-description]',
|
1197 |
+
'product-id-type' => 'Product ID Type[product-id-type]',
|
1198 |
+
'internal-sku' => 'Internal SKU[internal-sku]',
|
1199 |
+
'category' => 'Product Category[category]',
|
1200 |
+
'image-1' => 'Image 1 [image-1]',
|
1201 |
+
'images-2' => 'Image 2 [image-2]',
|
1202 |
+
'images-3' => 'Image 3 [image-3]',
|
1203 |
+
'images-4' => 'Image 4 [image-4]',
|
1204 |
+
'images-5' => 'Image 5 [image-5]',
|
1205 |
+
'images-6' => 'Image 6 [image-6]',
|
1206 |
+
'image-size-chart' => 'Image Size Chart[image-size-chart]',
|
1207 |
+
'brand' => 'Brand[brand]',
|
1208 |
+
'adult' => 'Adult[adult]',
|
1209 |
+
'keywords' => 'Keywords[keywords]',
|
1210 |
+
'sku' => 'Offer SKU[sku]',
|
1211 |
+
'inventory' => 'Facebook Inventory[inventory]',
|
1212 |
+
'override' => 'Facebook Override[override]',
|
1213 |
+
'price' => 'Regular Price[price]',
|
1214 |
+
'quantity' => 'Offer Quantity[quantity]',
|
1215 |
+
'min-quantity-alert' => 'Minimum Quantity Alert[min-quantity-alert]',
|
1216 |
+
'state' => 'Offer State[state]',
|
1217 |
+
'logistic-class' => 'Logistic Class[logistic-class]',
|
1218 |
+
'discount-price' => 'Discount Price[discount-price]',
|
1219 |
+
'leadtime-to-ship' => 'Lead Time to Ship[leadtime-to-ship]',
|
1220 |
+
'club-catch-eligible' => 'Club Catch eligible[club-catch-eligible]',
|
1221 |
+
'tax-au' => 'GST %[tax-au]',
|
1222 |
+
);
|
1223 |
+
}
|
1224 |
|
1225 |
+
/**
|
1226 |
+
* Fashionchick.nl Attribute List
|
1227 |
+
*
|
1228 |
+
* @return array
|
1229 |
+
*/
|
1230 |
+
public function fashionchickAttributes() {
|
1231 |
+
return array(
|
1232 |
+
'Product ID' => 'Product ID [Product ID]',
|
1233 |
+
'Titel' => 'Product Titel [Titel]',
|
1234 |
+
'Omschrijving' => 'Product Description [Omschrijving]',
|
1235 |
+
'Url' => 'Product URL [Url]',
|
1236 |
+
'Image' => 'Image [Image]',
|
1237 |
+
'Category' => 'Product Category [Category (pad)]',
|
1238 |
+
'Prijs' => 'Regular Price [Prijs]',
|
1239 |
+
'Merk' => 'Brand [Merk]',
|
1240 |
+
'Cluster ID' => 'Cluster ID [Cluster ID]',
|
1241 |
+
'internal-sku' => 'Internal SKU [internal-sku]',
|
1242 |
+
'sku' => 'Offer SKU[sku]',
|
1243 |
+
'Delivery Time' => 'Delivery Time [Delivery Time]',
|
1244 |
+
'Shipping Costs' => 'Shipping Costs [Shipping Costs]',
|
1245 |
+
'Old price' => 'Old price [Old price]',
|
1246 |
+
'Product maten' => 'Product sizes [Product maten]',
|
1247 |
+
'Stock' => 'Stock [Stock]',
|
1248 |
+
'Voorraad aantal' => 'Stock quantity [Voorraad aantal]',
|
1249 |
+
'Materiaal' => 'Material [Materiaal]',
|
1250 |
+
'Geslacht' => 'Gender [Geslacht]',
|
1251 |
+
'Kleur' => 'Color [Kleur]',
|
1252 |
+
);
|
1253 |
+
}
|
1254 |
+
|
1255 |
+
/**
|
1256 |
+
* GoedGeplaatst.nl Attribute List
|
1257 |
+
*
|
1258 |
+
* @return array
|
1259 |
+
*/
|
1260 |
+
public function goedgeplaatstAttributes() {
|
1261 |
+
return array(
|
1262 |
+
'title' => 'Product Title [title]',
|
1263 |
+
'description' => 'Product Description [description]',
|
1264 |
+
'type' => 'Product Type [type]',
|
1265 |
+
'price' => 'Price [price]',
|
1266 |
+
'images' => 'Images [images]',
|
1267 |
+
'categoryId' => 'Category ID [categoryId]',
|
1268 |
+
'externalAdId' => 'External Ad ID [externalAdId]',
|
1269 |
+
'priceRetail' => 'Retail Price [priceRetail]',
|
1270 |
+
'priceOther' => 'Other Price [priceOther]',
|
1271 |
+
'bid' => 'Bid [bid]',
|
1272 |
+
'showContact' => 'Show Contact [showContact]',
|
1273 |
+
'website' => 'Website [website]',
|
1274 |
+
'name' => 'Name [name]',
|
1275 |
+
'phone' => 'Phone [phone]',
|
1276 |
+
'address' => 'Address [address]',
|
1277 |
+
'houseNumber' => 'House Number [houseNumber]',
|
1278 |
+
'postalCode' => 'Postal Code [postalCode]',
|
1279 |
+
'city' => 'City [city]',
|
1280 |
+
'country' => 'Country [country]',
|
1281 |
+
'autoReplace' => 'Auto Replace [autoReplace]',
|
1282 |
+
'directForwardToMp' => 'Direct Forward Mp [directForwardToMp]',
|
1283 |
+
'priceBidMinimal' => 'Price Bid Minimal [priceBidMinimal]',
|
1284 |
+
'priceBidAsking' => 'Price Bid Asking [priceBidAsking]',
|
1285 |
+
);
|
1286 |
+
}
|
1287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1288 |
/**
|
1289 |
* Skroutz Attribute List
|
1290 |
*
|
1291 |
* @return array
|
1292 |
*/
|
1293 |
public function skroutzAttributes() {
|
1294 |
+
return array(
|
1295 |
+
'--1' => 'Required Information',
|
1296 |
+
'id' => 'Unique ID',
|
1297 |
+
'name' => 'Product Title',
|
1298 |
+
'description' => 'Product Description',
|
1299 |
+
'link' => 'Product Link',
|
1300 |
+
'image' => 'Image Link',
|
1301 |
+
'category' => 'Category Name',
|
1302 |
+
'price' => 'Price',
|
1303 |
+
'price_with_vat' => 'Price With Tax',
|
1304 |
+
'manufacturer' => 'Manufacturer',
|
1305 |
+
'mpn' => 'MPN / ISBN',
|
1306 |
+
'availability' => 'Availability',
|
1307 |
+
'---1' => '',
|
1308 |
+
'instock' => 'Stock Status [InStock]',
|
1309 |
+
'ean' => 'EAN / Barcode',
|
1310 |
+
'additional_imageurl' => 'Additional Image Link',
|
1311 |
+
'additional_imageurl_1' => 'Additional Image Link 1',
|
1312 |
+
'additional_imageurl_2' => 'Additional Image Link 2',
|
1313 |
+
'additional_imageurl_3' => 'Additional Image Link 3',
|
1314 |
+
'additional_imageurl_4' => 'Additional Image Link 4',
|
1315 |
+
'additional_imageurl_5' => 'Additional Image Link 5',
|
1316 |
+
'additional_imageurl_6' => 'Additional Image Link 6',
|
1317 |
+
'additional_imageurl_7' => 'Additional Image Link 7',
|
1318 |
+
'additional_imageurl_8' => 'Additional Image Link 8',
|
1319 |
+
'additional_imageurl_9' => 'Additional Image Link 9',
|
1320 |
+
'additional_imageurl_10' => 'Additional Image Link 10',
|
1321 |
+
'color' => 'Color',
|
1322 |
+
'size' => 'Size',
|
1323 |
+
'weight' => 'Weight',
|
1324 |
+
'quantity' => 'Quantity',
|
1325 |
+
);
|
1326 |
+
}
|
1327 |
+
/**
|
1328 |
+
* BestPrice Attribute List
|
1329 |
+
*
|
1330 |
+
* @return array
|
1331 |
+
*/
|
1332 |
+
public function bestpriceAttributes() {
|
1333 |
+
return array(
|
1334 |
+
'--1' => 'Required Attributes',
|
1335 |
+
'productId' => 'Product ID[productId]',
|
1336 |
+
'name' => 'Product Title[name]',
|
1337 |
+
'description' => 'Product Description[description]',
|
1338 |
+
'link' => 'Product Link[link]',
|
1339 |
+
'image' => 'Image Link[image]',
|
1340 |
+
'categoryPath' => 'Category Path[categoryPath]',
|
1341 |
+
'categoryID' => 'Category Id[categoryID]',
|
1342 |
+
'price' => 'Price[price]',
|
1343 |
+
'manufacturer' => 'Manufacturer[manufacturer]',
|
1344 |
+
'mpn' => 'MPN / ISBN',
|
1345 |
+
'availability' => 'Availability',
|
1346 |
+
'---1' => 'Recommended Attributes',
|
1347 |
+
'instock' => 'Stock Status[instock]',
|
1348 |
+
'ean' => 'EAN/Barcode',
|
1349 |
+
'additional_image' => 'Additional Image Link',
|
1350 |
+
'color' => 'Color',
|
1351 |
+
'size' => 'Size',
|
1352 |
+
'weight' => 'Weight',
|
1353 |
+
'features' => 'Features',
|
1354 |
+
);
|
1355 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1356 |
/**
|
1357 |
* Daisycon Attribute List
|
1358 |
*
|
1359 |
* @return array
|
1360 |
*/
|
1361 |
public function daisyconAttributes() {
|
1362 |
+
return array(
|
1363 |
'--1' => 'Required Attributes',
|
1364 |
'sku' => 'Unique Product ID [SKU]',
|
1365 |
'description' => 'Description',
|
1407 |
'size_description' => 'Description for the “size” field',
|
1408 |
'terms_conditions' => 'Full terms and conditions',
|
1409 |
'---4' => '',
|
1410 |
+
);
|
1411 |
}
|
1412 |
+
|
1413 |
/**
|
1414 |
* Daisycon Automotive Attribute List
|
1415 |
*
|
1416 |
* @return array
|
1417 |
*/
|
1418 |
public function daisycon_automotiveAttributes() {
|
1419 |
+
return array(
|
1420 |
'--1' => 'Required Attributes',
|
1421 |
'description' => 'Description of the product',
|
1422 |
'link' => 'URL to the page of the product',
|
1473 |
'year_built' => 'Year in which the product is fabricated',
|
1474 |
'terms_conditions' => 'Full terms and conditions',
|
1475 |
'---4' => '',
|
1476 |
+
);
|
1477 |
}
|
1478 |
+
|
1479 |
/**
|
1480 |
* Daisycon Books Attribute List
|
1481 |
*
|
1482 |
* @return array
|
1483 |
*/
|
1484 |
public function daisycon_booksAttributes() {
|
1485 |
+
return array(
|
1486 |
'--1' => 'Required Attributes',
|
1487 |
'description' => 'Description of the product',
|
1488 |
'link' => 'URL to the page of the product',
|
1545 |
'material_3' => 'The tertiary material',
|
1546 |
'terms_conditions' => 'Full terms and conditions',
|
1547 |
'---5' => '',
|
1548 |
+
);
|
1549 |
}
|
1550 |
+
|
1551 |
/**
|
1552 |
* Daisycon Cosmetics Attribute List
|
1553 |
*
|
1554 |
* @return array
|
1555 |
*/
|
1556 |
public function daisycon_cosmeticsAttributes() {
|
1557 |
+
return array(
|
1558 |
'--1' => 'Required Attributes',
|
1559 |
'description' => 'Description of the product',
|
1560 |
'link' => 'URL to the page of the product',
|
1609 |
'material_3' => 'The tertiary material',
|
1610 |
'terms_conditions' => 'Full terms and conditions',
|
1611 |
'---5' => '',
|
1612 |
+
);
|
1613 |
}
|
1614 |
+
|
1615 |
/**
|
1616 |
* Daisycon Daily Offers Attribute List
|
1617 |
*
|
1618 |
* @return array
|
1619 |
*/
|
1620 |
public function daisycon_daily_offersAttributes() {
|
1621 |
+
return array(
|
1622 |
'--1' => 'Required Attributes',
|
1623 |
'description' => 'Description of the product',
|
1624 |
'link' => 'URL to the page of the product',
|
1669 |
'material_3' => 'The tertiary material',
|
1670 |
'terms_conditions' => 'Full terms and conditions',
|
1671 |
'---4' => '',
|
1672 |
+
);
|
1673 |
}
|
1674 |
+
|
1675 |
/**
|
1676 |
* Daisycon Electronics Attribute List
|
1677 |
*
|
1678 |
* @return array
|
1679 |
*/
|
1680 |
public function daisycon_electronicsAttributes() {
|
1681 |
+
return array(
|
1682 |
'--1' => 'Required Attributes',
|
1683 |
'description' => 'Description of the product',
|
1684 |
'link' => 'URL to the page of the product',
|
1757 |
'material_2' => 'The secondary material',
|
1758 |
'material_3' => 'The tertiary material',
|
1759 |
'---5' => '',
|
1760 |
+
);
|
1761 |
}
|
1762 |
+
|
1763 |
/**
|
1764 |
* Daisycon Food & Drinks Attribute List
|
1765 |
*
|
1766 |
* @return array
|
1767 |
*/
|
1768 |
public function daisycon_food_drinksAttributes() {
|
1769 |
+
return array(
|
1770 |
'--1' => 'Required Attributes',
|
1771 |
'description' => 'Description of the product',
|
1772 |
'link' => 'URL to the page of the product',
|
1832 |
'material_3' => 'The tertiary material',
|
1833 |
'terms_conditions' => 'Full terms and conditions',
|
1834 |
'---5' => '',
|
1835 |
+
);
|
1836 |
}
|
1837 |
+
|
1838 |
/**
|
1839 |
* Daisycon Home & Garden Attribute List
|
1840 |
*
|
1841 |
* @return array
|
1842 |
*/
|
1843 |
public function daisycon_home_gardenAttributes() {
|
1844 |
+
return array(
|
1845 |
'--1' => 'Required Attributes',
|
1846 |
'description' => 'Description of the product',
|
1847 |
'link' => 'URL to the page of the product',
|
1896 |
'material_3' => 'The tertiary material',
|
1897 |
'terms_conditions' => 'Full terms and conditions',
|
1898 |
'---5' => '',
|
1899 |
+
);
|
1900 |
}
|
1901 |
+
|
1902 |
/**
|
1903 |
* Daisycon Housing Attribute List
|
1904 |
*
|
1905 |
* @return array
|
1906 |
*/
|
1907 |
public function daisycon_housingAttributes() {
|
1908 |
+
return array(
|
1909 |
'--1' => 'Required Attributes',
|
1910 |
'description' => 'Description of the product',
|
1911 |
'link' => 'URL to the page of the product',
|
2002 |
'material_3' => 'The tertiary material',
|
2003 |
'terms_conditions' => 'Full terms and conditions',
|
2004 |
'---5' => '',
|
2005 |
+
);
|
2006 |
}
|
2007 |
+
|
2008 |
/**
|
2009 |
* Daisycon Fashion Attribute List
|
2010 |
*
|
2011 |
* @return array
|
2012 |
*/
|
2013 |
public function daisycon_fashionAttributes() {
|
2014 |
+
return array(
|
2015 |
'--1' => 'Required Attributes',
|
2016 |
'description' => 'Description of the product',
|
2017 |
'link' => 'URL to the page of the product',
|
2061 |
'material_3' => 'The tertiary material',
|
2062 |
'terms_conditions' => 'Full terms and conditions',
|
2063 |
'---5' => '',
|
2064 |
+
);
|
2065 |
}
|
2066 |
+
|
2067 |
/**
|
2068 |
* Daisycon Studies & Trainings Attribute List
|
2069 |
*
|
2070 |
* @return array
|
2071 |
*/
|
2072 |
public function daisycon_studies_trainingsAttributes() {
|
2073 |
+
return array(
|
2074 |
'--1' => 'Required Attributes',
|
2075 |
'description' => 'Description of the product',
|
2076 |
'link' => 'URL to the page of the product',
|
2123 |
'material_3' => 'The tertiary material',
|
2124 |
'terms_conditions' => 'Full terms and conditions',
|
2125 |
'---5' => '',
|
2126 |
+
);
|
2127 |
}
|
2128 |
+
|
2129 |
/**
|
2130 |
* Daisycon Telecom: Accessories Attribute List
|
2131 |
*
|
2132 |
* @return array
|
2133 |
*/
|
2134 |
public function daisycon_telecom_accessoriesAttributes() {
|
2135 |
+
return array(
|
2136 |
'--1' => 'Required Attributes',
|
2137 |
'description' => 'Description of the product',
|
2138 |
'link' => 'URL to the page of the product',
|
2183 |
'material_3' => 'The tertiary material',
|
2184 |
'terms_conditions' => 'Full terms and conditions',
|
2185 |
'---5' => '',
|
2186 |
+
);
|
2187 |
}
|
2188 |
+
|
2189 |
/**
|
2190 |
* Daisycon Telecom: All-in-one Attribute List
|
2191 |
*
|
2192 |
* @return array
|
2193 |
*/
|
2194 |
public function daisycon_telecom_all_in_oneAttributes() {
|
2195 |
+
return array(
|
2196 |
'--1' => 'Required Attributes',
|
2197 |
'allinone_subscription_type' => 'Subscription type',
|
2198 |
'bandwidth_download' => 'Download in Mbits',
|
2261 |
'material_3' => 'The tertiary material',
|
2262 |
'terms_conditions' => 'Full terms and conditions',
|
2263 |
'---5' => '',
|
2264 |
+
);
|
2265 |
}
|
2266 |
+
|
2267 |
/**
|
2268 |
* Daisycon Telecom: GSM + Subscription Attribute List
|
2269 |
*
|
2270 |
* @return array
|
2271 |
*/
|
2272 |
public function daisycon_telecom_gsm_subscriptionAttributes() {
|
2273 |
+
return array(
|
2274 |
'--1' => 'Required Attributes',
|
2275 |
'description' => 'Description of the product',
|
2276 |
'link' => 'URL to the page of the product',
|
2366 |
'material_3' => 'The tertiary material',
|
2367 |
'terms_conditions' => 'Full terms and conditions',
|
2368 |
'---5' => '',
|
2369 |
+
);
|
2370 |
}
|
2371 |
+
|
2372 |
/**
|
2373 |
* Daisycon Telecom: GSM only Attribute List
|
2374 |
*
|
2375 |
* @return array
|
2376 |
*/
|
2377 |
public function daisycon_telecom_gsmAttributes() {
|
2378 |
+
return array(
|
2379 |
'--1' => 'Required Attributes',
|
2380 |
'description' => 'Description of the GSM-device',
|
2381 |
'link' => 'URL to the page of the GSM-device',
|
2433 |
'size_description' => 'Description for the "size" field',
|
2434 |
'size_length' => 'GSM-device length in mm',
|
2435 |
'size_width' => 'GSM-device width in mm',
|
2436 |
+
|
2437 |
'weight' => 'GSM-device weight in grams',
|
2438 |
'material_1' => 'The primary material',
|
2439 |
'material_2' => 'The secondary material',
|
2440 |
'material_3' => 'The tertiary material',
|
2441 |
'terms_conditions' => 'Full terms and conditions',
|
2442 |
'---5' => '',
|
2443 |
+
);
|
2444 |
}
|
2445 |
+
|
2446 |
/**
|
2447 |
* Daisycon Telecom: Sim only Attribute List
|
2448 |
*
|
2449 |
* @return array
|
2450 |
*/
|
2451 |
public function daisycon_telecom_simAttributes() {
|
2452 |
+
return array(
|
2453 |
'--1' => 'Required Attributes',
|
2454 |
'description' => 'Description of the subscription',
|
2455 |
'link' => 'URL to the page of the subscription',
|
2523 |
'material_3' => 'The tertiary material',
|
2524 |
'terms_conditions' => 'Full terms and conditions',
|
2525 |
'---5' => '',
|
2526 |
+
);
|
2527 |
}
|
2528 |
+
|
2529 |
/**
|
2530 |
* Daisycon Magazines Attribute List
|
2531 |
*
|
2532 |
* @return array
|
2533 |
*/
|
2534 |
public function daisycon_magazinesAttributes() {
|
2535 |
+
return array(
|
2536 |
'--1' => 'Required Attributes',
|
2537 |
'description' => 'Description of the magazine',
|
2538 |
'link' => 'URL to the page of the magazine',
|
2597 |
'material_3' => 'The tertiary material',
|
2598 |
'terms_conditions' => 'Full terms and conditions',
|
2599 |
'---5' => '',
|
2600 |
+
);
|
2601 |
}
|
2602 |
+
|
2603 |
/**
|
2604 |
* Daisycon Holidays: Accommodations Attribute List
|
2605 |
*
|
2606 |
* @return array
|
2607 |
*/
|
2608 |
public function daisycon_holidays_accommodationsAttributes() {
|
2609 |
+
return array(
|
2610 |
'--1' => 'Required Attributes',
|
2611 |
'description' => 'Description of the product',
|
2612 |
'link' => 'URL to the page of the product',
|
2716 |
'material_3' => 'The tertiary material',
|
2717 |
'terms_conditions' => 'Full terms and conditions',
|
2718 |
'---5' => '',
|
2719 |
+
);
|
2720 |
}
|
2721 |
+
|
2722 |
/**
|
2723 |
* Daisycon Holidays: Accommodations and transport Attribute List
|
2724 |
*
|
2725 |
* @return array
|
2726 |
*/
|
2727 |
public function daisycon_holidays_accommodations_and_transportAttributes() {
|
2728 |
+
return array(
|
2729 |
'--1' => 'Required Attributes',
|
2730 |
'description' => 'Description of the product',
|
2731 |
'link' => 'URL to the page of the product',
|
2851 |
'material_3' => 'The tertiary material',
|
2852 |
'terms_conditions' => 'Full terms and conditions',
|
2853 |
'---5' => '',
|
2854 |
+
);
|
2855 |
}
|
2856 |
+
|
2857 |
/**
|
2858 |
* Daisycon Holidays: Trips Attribute List
|
2859 |
*
|
2860 |
* @return array
|
2861 |
*/
|
2862 |
public function daisycon_holidays_tripsAttributes() {
|
2863 |
+
return array(
|
2864 |
'--1' => 'Required Attributes',
|
2865 |
'description' => 'Description of the product',
|
2866 |
'link' => 'URL to the page of the product',
|
2936 |
'material_3' => 'The tertiary material',
|
2937 |
'terms_conditions' => 'Full terms and conditions',
|
2938 |
'---5' => '',
|
2939 |
+
);
|
2940 |
}
|
2941 |
+
|
2942 |
/**
|
2943 |
* Daisycon Work & Jobs Attribute List
|
2944 |
*
|
2945 |
* @return array
|
2946 |
*/
|
2947 |
public function daisycon_work_jobsAttributes() {
|
2948 |
+
return array(
|
2949 |
'--1' => 'Required Attributes',
|
2950 |
'description' => 'Description of the product',
|
2951 |
'link' => 'URL to the page of the product',
|
3006 |
'material_3' => 'The tertiary material',
|
3007 |
'terms_conditions' => 'Full terms and conditions',
|
3008 |
'---5' => '',
|
3009 |
+
);
|
3010 |
}
|
3011 |
}
|
woo-feed.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
-
* Version: 4.5.
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
+
* Version: 4.5.10
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|