@@ -124,35 +124,47 @@ public function canMerge(Job $job, $maxJobDataSize)
124
124
125
125
$ decodedData = $ this ->getDecodedData ();
126
126
127
+ // @todo Remove legacy checks on 3.16.0
127
128
if ((!isset ($ decodedData ['product_ids ' ]) || count ($ decodedData ['product_ids ' ]) <= 0 )
128
129
&& (!isset ($ decodedData ['category_ids ' ]) || count ($ decodedData ['category_ids ' ]) < 0 )
130
+ && (!isset ($ decodedData ['ids ' ]) || count ($ decodedData ['ids ' ]) < 0 )
129
131
&& (!isset ($ decodedData ['page_ids ' ]) || count ($ decodedData ['page_ids ' ]) < 0 )) {
130
132
return false ;
131
133
}
132
134
133
135
$ candidateDecodedData = $ job ->getDecodedData ();
134
136
137
+ // @todo Remove legacy checks on 3.16.0
135
138
if ((!isset ($ candidateDecodedData ['product_ids ' ]) || count ($ candidateDecodedData ['product_ids ' ]) <= 0 )
136
139
&& (!isset ($ candidateDecodedData ['category_ids ' ]) || count ($ candidateDecodedData ['category_ids ' ]) < 0 )
140
+ && (!isset ($ candidateDecodedData ['ids ' ]) || count ($ candidateDecodedData ['ids ' ]) < 0 )
137
141
&& (!isset ($ candidateDecodedData ['page_ids ' ]) || count ($ candidateDecodedData ['page_ids ' ]) < 0 )) {
138
142
return false ;
139
143
}
140
144
145
+ // @todo Remove on 3.16.0
141
146
if (isset ($ decodedData ['product_ids ' ])
142
147
&& count ($ decodedData ['product_ids ' ]) + count ($ candidateDecodedData ['product_ids ' ]) > $ maxJobDataSize ) {
143
148
return false ;
144
149
}
145
150
151
+ // @todo Remove on 3.16.0
146
152
if (isset ($ decodedData ['category_ids ' ])
147
153
&& count ($ decodedData ['category_ids ' ]) + count ($ candidateDecodedData ['category_ids ' ]) > $ maxJobDataSize ) {
148
154
return false ;
149
155
}
150
156
157
+ // @todo Remove on 3.16.0
151
158
if (isset ($ decodedData ['page_ids ' ])
152
159
&& count ($ decodedData ['page_ids ' ]) + count ($ candidateDecodedData ['page_ids ' ]) > $ maxJobDataSize ) {
153
160
return false ;
154
161
}
155
162
163
+ if (isset ($ decodedData ['ids ' ])
164
+ && count ($ decodedData ['ids ' ]) + count ($ candidateDecodedData ['ids ' ]) > $ maxJobDataSize ) {
165
+ return false ;
166
+ }
167
+
156
168
return true ;
157
169
}
158
170
@@ -173,6 +185,7 @@ public function merge(Job $mergedJob)
173
185
174
186
$ dataSize = $ this ->getDataSize ();
175
187
188
+ // @todo Remove useless code on 3.16.0
176
189
if (isset ($ decodedData ['product_ids ' ])) {
177
190
$ decodedData ['product_ids ' ] = array_unique (array_merge (
178
191
$ decodedData ['product_ids ' ],
@@ -194,6 +207,13 @@ public function merge(Job $mergedJob)
194
207
));
195
208
196
209
$ dataSize = count ($ decodedData ['page_ids ' ]);
210
+ } elseif (isset ($ decodedData ['ids ' ])) {
211
+ $ decodedData ['ids ' ] = array_unique (array_merge (
212
+ $ decodedData ['ids ' ],
213
+ $ mergedJobDecodedData ['ids ' ]
214
+ ));
215
+
216
+ $ dataSize = count ($ decodedData ['ids ' ]);
197
217
}
198
218
199
219
$ this ->setDecodedData ($ decodedData );
0 commit comments