@@ -400,7 +400,7 @@ public function testTransformProductWithVariants(): void
400400 $ variant1 = $ product ['variants ' ][0 ];
401401 $ this ->assertEquals ('26911 ' , $ variant1 ['id ' ]);
402402 $ this ->assertEquals ('M0E20000000EAAK-34 ' , $ variant1 ['sku ' ]);
403- $ this ->assertEquals ('http://prestashop/sneakers/1807-26911-sneakers.html ' , $ variant1 ['url ' ]);
403+ $ this ->assertEquals ('http://prestashop/sneakers/1807-26911-sneakers.html ' , $ variant1 ['productUrl ' ]);
404404 $ this ->assertEquals ([
405405 [
406406 'name ' => 'size ' ,
@@ -416,7 +416,7 @@ public function testTransformProductWithVariants(): void
416416 $ variant2 = $ product ['variants ' ][1 ];
417417 $ this ->assertEquals ('26912 ' , $ variant2 ['id ' ]);
418418 $ this ->assertEquals ('M0E20000000EAAL ' , $ variant2 ['sku ' ]);
419- $ this ->assertEquals ('http://prestashop/sneakers/1807-26912-sneakers.html ' , $ variant2 ['url ' ]);
419+ $ this ->assertEquals ('http://prestashop/sneakers/1807-26912-sneakers.html ' , $ variant2 ['productUrl ' ]);
420420 $ this ->assertEquals ([
421421 [
422422 'name ' => 'size ' ,
@@ -1189,4 +1189,109 @@ public function testTransformWithInvalidVariantsTypes(): void
11891189 $ this ->assertCount (1 , $ result ["products " ]);
11901190 $ this ->assertEmpty ($ this ->getProductFromResult ($ result )['variants ' ]); // All variants invalid or filtered out
11911191 }
1192+
1193+ public function testTransformVariantWithPricesAndImageUrl (): void
1194+ {
1195+ $ prestaShopData = [
1196+ 'products ' => [
1197+ [
1198+ 'remoteId ' => '3642 ' ,
1199+ 'sku ' => 'V-L558 ' ,
1200+ 'price ' => '10.00 ' ,
1201+ 'basePrice ' => '12.00 ' ,
1202+ 'priceTaxExcluded ' => '8.50 ' ,
1203+ 'basePriceTaxExcluded ' => '10.00 ' ,
1204+ 'localizedNames ' => [
1205+ 'en-US ' => 'Drip tray '
1206+ ],
1207+ 'categories ' => [],
1208+ 'variants ' => [
1209+ [
1210+ 'remoteId ' => 1 ,
1211+ 'sku ' => 'ABCD1 ' ,
1212+ 'price ' => 0 ,
1213+ 'basePrice ' => '0.00 ' ,
1214+ 'priceTaxExcluded ' => '0.00 ' ,
1215+ 'basePriceTaxExcluded ' => '0.00 ' ,
1216+ 'attributes ' => [
1217+ 'Pusė ' => [
1218+ 'localizedNames ' => [
1219+ 'en-US ' => 'Side '
1220+ ],
1221+ 'localizedValues ' => [
1222+ 'en-US ' => 'right '
1223+ ]
1224+ ]
1225+ ],
1226+ 'productUrl ' => [
1227+ 'localizedValues ' => [
1228+ 'en-US ' => 'http://prestashop/en/3642-1-drip-tray.html '
1229+ ]
1230+ ],
1231+ 'imageUrl ' => [
1232+ 'small ' => 'http://prestashop/13600-square_cart_default/drip-tray.jpg ' ,
1233+ 'medium ' => 'http://prestashop/13600-home_default/drip-tray.jpg '
1234+ ]
1235+ ],
1236+ [
1237+ 'remoteId ' => 2 ,
1238+ 'sku ' => 'ABCD-333 ' ,
1239+ 'price ' => 15.99 ,
1240+ 'basePrice ' => '18.00 ' ,
1241+ 'priceTaxExcluded ' => '13.50 ' ,
1242+ 'basePriceTaxExcluded ' => '15.00 ' ,
1243+ 'attributes ' => [
1244+ 'Pusė ' => [
1245+ 'localizedNames ' => [
1246+ 'en-US ' => 'Side '
1247+ ],
1248+ 'localizedValues ' => [
1249+ 'en-US ' => 'left '
1250+ ]
1251+ ]
1252+ ],
1253+ 'productUrl ' => [
1254+ 'localizedValues ' => [
1255+ 'en-US ' => 'http://prestashop/en/3642-2-drip-tray.html '
1256+ ]
1257+ ],
1258+ 'imageUrl ' => [
1259+ 'small ' => 'http://prestashop/13601-square_cart_default/drip-tray.jpg ' ,
1260+ 'medium ' => 'http://prestashop/13601-home_default/drip-tray.jpg '
1261+ ]
1262+ ]
1263+ ]
1264+ ]
1265+ ]
1266+ ];
1267+
1268+ $ result = $ this ->adapter ->transform ($ prestaShopData );
1269+ $ product = $ this ->getProductFromResult ($ result );
1270+
1271+ $ this ->assertCount (2 , $ product ['variants ' ]);
1272+
1273+ // First variant - check prices and imageUrl
1274+ $ variant1 = $ product ['variants ' ][0 ];
1275+ $ this ->assertEquals ('1 ' , $ variant1 ['id ' ]);
1276+ $ this ->assertEquals ('ABCD1 ' , $ variant1 ['sku ' ]);
1277+ $ this ->assertEquals (0 , $ variant1 ['price ' ]);
1278+ $ this ->assertEquals ('0.00 ' , $ variant1 ['basePrice ' ]);
1279+ $ this ->assertEquals ('0.00 ' , $ variant1 ['priceTaxExcluded ' ]);
1280+ $ this ->assertEquals ('0.00 ' , $ variant1 ['basePriceTaxExcluded ' ]);
1281+ $ this ->assertArrayHasKey ('imageUrl ' , $ variant1 );
1282+ $ this ->assertEquals ('http://prestashop/13600-square_cart_default/drip-tray.jpg ' , $ variant1 ['imageUrl ' ]['small ' ]);
1283+ $ this ->assertEquals ('http://prestashop/13600-home_default/drip-tray.jpg ' , $ variant1 ['imageUrl ' ]['medium ' ]);
1284+
1285+ // Second variant - check prices and imageUrl
1286+ $ variant2 = $ product ['variants ' ][1 ];
1287+ $ this ->assertEquals ('2 ' , $ variant2 ['id ' ]);
1288+ $ this ->assertEquals ('ABCD-333 ' , $ variant2 ['sku ' ]);
1289+ $ this ->assertEquals (15.99 , $ variant2 ['price ' ]);
1290+ $ this ->assertEquals ('18.00 ' , $ variant2 ['basePrice ' ]);
1291+ $ this ->assertEquals ('13.50 ' , $ variant2 ['priceTaxExcluded ' ]);
1292+ $ this ->assertEquals ('15.00 ' , $ variant2 ['basePriceTaxExcluded ' ]);
1293+ $ this ->assertArrayHasKey ('imageUrl ' , $ variant2 );
1294+ $ this ->assertEquals ('http://prestashop/13601-square_cart_default/drip-tray.jpg ' , $ variant2 ['imageUrl ' ]['small ' ]);
1295+ $ this ->assertEquals ('http://prestashop/13601-home_default/drip-tray.jpg ' , $ variant2 ['imageUrl ' ]['medium ' ]);
1296+ }
11921297}
0 commit comments