diff --git a/app/Domains/Commerce/Catalog/Services/CatalogService.php b/app/Domains/Commerce/Catalog/Services/CatalogService.php index 61cef228..5d2c0280 100644 --- a/app/Domains/Commerce/Catalog/Services/CatalogService.php +++ b/app/Domains/Commerce/Catalog/Services/CatalogService.php @@ -2,8 +2,6 @@ namespace App\Domains\Commerce\Catalog\Services; -use App\Shared\Attachable\Models\Attachment; -use App\Shared\Attachable\Services\AttachmentService; use App\Domains\Commerce\Catalog\Enums\CatalogItemType; use App\Domains\Commerce\Catalog\Models\Attribute; use App\Domains\Commerce\Catalog\Models\CatalogItem; @@ -11,8 +9,10 @@ use App\Domains\Commerce\Catalog\Models\Category; use App\Domains\Commerce\Catalog\Models\Inventory; use App\Domains\Commerce\Catalog\Models\ItemAttribute; use App\Domains\Commerce\Catalog\Models\Variant; -use App\Domains\Ticketing\Event\Models\EventDate; use App\Domains\Core\Tenant\Models\Tenant; +use App\Domains\Ticketing\Event\Models\EventDate; +use App\Shared\Attachable\Models\Attachment; +use App\Shared\Attachable\Services\AttachmentService; use Illuminate\Database\Eloquent\Builder; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Facades\DB; @@ -286,9 +286,11 @@ class CatalogService int $perPage, int $page, ): LengthAwarePaginator { + $categoryIds = $this->categoryAndDescendantIds($tenant, $category); + return CatalogItem::query() ->forTenantCatalog($tenant) - ->where('category_id', $category->id) + ->whereIn('category_id', $categoryIds) ->whereAvailable() ->with([ 'attachments', @@ -306,6 +308,34 @@ class CatalogService ->paginate(perPage: $perPage, pageName: 'page', page: $page); } + /** @return array */ + private function categoryAndDescendantIds(Tenant $tenant, Category $category): array + { + $childrenByParent = Category::query() + ->where('tenant_code', $tenant->codigo) + ->get(['id', 'categoria_id']) + ->groupBy('categoria_id'); + + $categoryIds = []; + $pendingIds = [$category->id]; + + while ($pendingIds !== []) { + $categoryId = array_shift($pendingIds); + + if (isset($categoryIds[$categoryId])) { + continue; + } + + $categoryIds[$categoryId] = $categoryId; + + foreach ($childrenByParent->get($categoryId, collect()) as $child) { + $pendingIds[] = $child->id; + } + } + + return array_values($categoryIds); + } + public function delete(CatalogItem $catalogItem): void { DB::transaction(function () use ($catalogItem): void { diff --git a/database/data/mutual_smep_catalog_v1.json b/database/data/mutual_smep_catalog_v1.json new file mode 100644 index 00000000..ab9f26d1 --- /dev/null +++ b/database/data/mutual_smep_catalog_v1.json @@ -0,0 +1,2691 @@ +{ + "version": 1, + "tenant_code": "mutual_smep", + "default_stock": 10, + "source_product_count": 150, + "catalog_item_count": 142, + "image_count": 511, + "items": [ + { + "slug": "acolchado-1-1-2-pl-dobby-kavanagh-negro", + "name": "Acolchado 1 1/2 pl Dobby Kavanagh negro", + "description": null, + "price": 82000, + "stock": 10, + "brand": "Kavanagh", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-dobby-kavanagh-negro-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "acolchado-kavanagh-simil-plumon-reversible", + "name": "Acolchado Kavanagh Símil Plumón Reversible", + "description": "Color sujeto a disponibilidad", + "price": 86000, + "stock": null, + "brand": "Kavanagh", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "acolchado-queen-simil-plumon-reversible-kavanagh", + "description": "Color sujeto a disponibilidad", + "price": 100000, + "stock": 10, + "values": { + "medida_cama": "Queen" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-02.webp" + ] + }, + { + "source_slug": "acolchado-1-1-2-pl-kavanagh-simil-plumon-reversible", + "description": null, + "price": 86000, + "stock": 10, + "values": { + "medida_cama": "1 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-kavanagh-simil-plumon-reversible-01.webp" + ] + }, + { + "source_slug": "acolchado-king-kavanagh-simil-plumon-reversible", + "description": null, + "price": 125000, + "stock": 10, + "values": { + "medida_cama": "King" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-reversible-01.webp" + ] + } + ] + }, + { + "slug": "acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon", + "name": "Acolchado King Kavanagh Simil plumón con 2 fundas almohadón", + "description": null, + "price": 130000, + "stock": 10, + "brand": "Kavanagh", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "acolchado-queen-hotel-oxford-platinum-700-h-jc", + "name": "Acolchado Queen Hotel Oxford Platinum 700 H JC", + "description": "Color sujeto a disponibilidad", + "price": 100000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "acolchado-sense-duo-bitono-corderito", + "name": "Acolchado Sense Dúo Bitono con Corderito", + "description": "Color sujeto a disponibilidad", + "price": 70000, + "stock": null, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "acolchado-king-sense-duo-bitono-con-corderito-jc", + "description": "Color sujeto a disponibilidad", + "price": 100000, + "stock": 10, + "values": { + "medida_cama": "King" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-02.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-03.webp" + ] + }, + { + "source_slug": "acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc", + "description": "Color sujeto a disponibilidad", + "price": 70000, + "stock": 10, + "values": { + "medida_cama": "1 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-02.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-03.webp" + ] + } + ] + }, + { + "slug": "auricular-bt-negro-on-ear-moonki-sound-mh-0510bt", + "name": "Auricular BT negro on ear Moonki sound MH-0510BT", + "description": "Color sujeto a disponibilidad", + "price": 30000, + "stock": 10, + "brand": "Moonki", + "parent_category": "Tecnología", + "category": "Audio", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-01.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-02.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "auricular-moonki-earbuds-sound-ma-tws66-black", + "name": "Auricular Moonki Earbuds sound MA-TWS66 black", + "description": null, + "price": 16000, + "stock": 10, + "brand": "Moonki", + "parent_category": "Tecnología", + "category": "Audio", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-01.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-02.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-03.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-04.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "auricular-on-ear-moonki-sound-mh-0613", + "name": "Auricular on ear Moonki sound MH-0613", + "description": "Color sujeto a disponibilidad", + "price": 15000, + "stock": 10, + "brand": "Moonki", + "parent_category": "Tecnología", + "category": "Audio", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-01.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-02.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-03.webp", + "images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bafle-havit-bluetooth-sk-816bt", + "name": "Bafle Havit Bluetooth SK-816BT", + "description": null, + "price": 145000, + "stock": 10, + "brand": "Havit", + "parent_category": "Tecnología", + "category": "Audio", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/bafle-havit-bluetooth-sk-816bt-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "batidora-de-mano-oster-hm-2600-negra", + "name": "Batidora de mano Oster HM 2600 negra", + "description": null, + "price": 97000, + "stock": 10, + "brand": "Oster", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "batidora-planetaria-atma-bpat21wp", + "name": "Batidora planetaria Atma BPAT21WP", + "description": null, + "price": 225000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bici-stark-r16-flowers-pink-nena-c-acc-6095", + "name": "BICI STARK R16 FLOWERS/PINK NENA C/ACC 6095", + "description": "El color de los accesorios puede variar", + "price": 320000, + "stock": 10, + "brand": "Stark", + "parent_category": "Bicicletas y Aire Libre", + "category": "Bicicletas Infantiles", + "images": [ + "images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-flowers-pink-nena-c-acc-6095-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bici-stark-r16-team-junior-nene-6064", + "name": "BICI STARK R16 TEAM JUNIOR NENE 6064", + "description": null, + "price": 300000, + "stock": 10, + "brand": "Stark", + "parent_category": "Bicicletas y Aire Libre", + "category": "Bicicletas Infantiles", + "images": [ + "images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-01.webp", + "images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bicicleta-fire-bird-r29-frenio-disco", + "name": "BICICLETA FIRE BIRD R29 FRENIO DISCO", + "description": null, + "price": 399000, + "stock": 10, + "brand": "Fire Bird", + "parent_category": "Bicicletas y Aire Libre", + "category": "Bicicletas para Adultos", + "images": [ + "images/tennants/mutual_smep/catalog/bicicletas/bicicleta-fire-bird-r29-frenio-disco-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bicicleta-playera-ross-full-r26", + "name": "BICICLETA PLAYERA ROSS FULL R26", + "description": null, + "price": 300000, + "stock": 10, + "brand": "Ross", + "parent_category": "Bicicletas y Aire Libre", + "category": "Bicicletas para Adultos", + "images": [ + "images/tennants/mutual_smep/catalog/bicicletas/bicicleta-playera-ross-full-r26-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "bicicleta-venzo-loki-r29-fd-21-v-shimano", + "name": "BICICLETA VENZO LOKI R29 FD 21 V SHIMANO", + "description": null, + "price": 660000, + "stock": 10, + "brand": "Venzo", + "parent_category": "Bicicletas y Aire Libre", + "category": "Bicicletas para Adultos", + "images": [ + "images/tennants/mutual_smep/catalog/bicicletas/bicicleta-venzo-loki-r29-fd-21-v-shimano-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "blu-g73-128-gb", + "name": "BLU G73 128 GB", + "description": "Color sujeto a disponibilidad", + "price": 225000, + "stock": 10, + "brand": "BLU", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cafetera-atma-ca-8182p-digital-1000-w-1-8-l", + "name": "Cafetera Atma CA-8182P digital 1000 W 1,8 L", + "description": null, + "price": 85000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cafetera-express-atma-ceat-5418p-1-litro", + "name": "Cafetera Express Atma CEAT-5418P 1 Litro", + "description": null, + "price": 275000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-07.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-08.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-09.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-10.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cafetera-express-liliana-ac-980-3-en-1", + "name": "Cafetera Express Liliana AC-980 3 en 1", + "description": null, + "price": 310000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-07.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-08.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cafetera-moulinex-mini-me-dolce-capsulas", + "name": "Cafetera Moulinex mini me Dolce cápsulas", + "description": null, + "price": 230000, + "stock": 10, + "brand": "Moulinex", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared", + "name": "Calefactor de vidrio Whitenblack PVWB-01 Pie/Pared", + "description": null, + "price": 100000, + "stock": 10, + "brand": "Whitenblack", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w", + "name": "Calefactor infrarrojo Liliana Calore CI-080 fijo 1400 W", + "description": null, + "price": 70000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "calefon-longvie-14-l-cn-514-ss-n-enc-sensor", + "name": "Calefón Longvie 14 L CN-514 SS-N Enc. Sensor", + "description": null, + "price": 690000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Electrodomésticos", + "category": "Calefones y Termotanques", + "images": [ + "images/tennants/mutual_smep/catalog/calefones-y-termotanques/calefon-longvie-14-l-cn-514-ss-n-enc-sensor-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "caloventor-liliana-cfh417-hotwind-2000-w", + "name": "Caloventor Liliana CFH417 Hotwind 2000 W", + "description": null, + "price": 58000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-03.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-04.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-05.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "caloventor-split-liliana-whitenblack-cpwb-01-2000-w", + "name": "Caloventor split Liliana Whitenblack CPWB-01 2000 W", + "description": null, + "price": 110000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "caloventor-whitenblack-cawb-02-2000-w-doble-posicion", + "name": "Caloventor Whitenblack CAWB-02 2000 W doble posición", + "description": null, + "price": 46000, + "stock": 10, + "brand": "Whitenblack", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cocina-florencia-5536-f-56-cm-color-blanca", + "name": "Cocina Florencia 5536-F 56 cm color Blanca", + "description": "Multigas", + "price": 620000, + "stock": 10, + "brand": "Florencia", + "parent_category": "Electrodomésticos", + "category": "Cocinas", + "images": [ + "images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-01.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-02.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-03.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cocina-longvie-13331bf-56-cm-color-blanca", + "name": "Cocina Longvie 13331BF 56 cm color blanca", + "description": "Multigas", + "price": 940000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Electrodomésticos", + "category": "Cocinas", + "images": [ + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-01.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-02.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-03.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-04.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-05.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-06.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cocina-longvie-13331xf-56cm-acero-inoxidable", + "name": "Cocina Longvie 13331XF 56cm Acero inoxidable", + "description": null, + "price": 999000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Electrodomésticos", + "category": "Cocinas", + "images": [ + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-01.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-02.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cocina-longvie-13501bf-56-cm-color-blanca", + "name": "Cocina Longvie 13501BF 56 cm color Blanca", + "description": "Multigas", + "price": 1100000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Electrodomésticos", + "category": "Cocinas", + "images": [ + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-01.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-02.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-03.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-04.webp", + "images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-espuma-inducol-aurelia-0-80x1-90x0-20", + "name": "Colchón Espuma Inducol Aurelia 0,80x1,90x0,20", + "description": null, + "price": 175000, + "stock": 10, + "brand": "Inducol", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-espuma-inducol-aurelia-0-80x1-90x0-20-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-inducol-constanza", + "name": "Colchón Inducol Constanza", + "description": null, + "price": 280000, + "stock": null, + "brand": "Inducol", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "colchon-inducol-constanza-espuma-alta-densidad-080x24", + "description": null, + "price": 280000, + "stock": 10, + "values": { + "medida_cama": "1 Plaza" + }, + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-01.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-02.webp" + ] + }, + { + "source_slug": "colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24", + "description": null, + "price": 475000, + "stock": 10, + "values": { + "medida_cama": "2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-01.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-02.webp" + ] + } + ] + }, + { + "slug": "colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24", + "name": "Colchón King Koil G22 Espuma Alta Densidad 1,40x1,90x0,24", + "description": "Viene en bolsa, fácil traslado. \n\nEl fabricante recomienda esperar 24hs luego de desenrollado para comenzar a usarse.", + "price": 347000, + "stock": 10, + "brand": "King Koil", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-01.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-02.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-03.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-04.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-05.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-06.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-king-koil-resortes-bradley-080x190x026", + "name": "Colchón King Koil resortes Bradley 080x190x026", + "description": null, + "price": 400000, + "stock": 10, + "brand": "King Koil", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-01.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-02.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-03.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-04.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20", + "name": "Colchón Piero Body Matelasse Espuma Media Densidad 0,90x1,90x0,20", + "description": null, + "price": 300000, + "stock": 10, + "brand": "Piero", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-01.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-piero-resorte-corona-real-0-8x1-90x0-26", + "name": "COLCHON PIERO RESORTE CORONA REAL 0,8X1,90X0,26", + "description": null, + "price": 325000, + "stock": 10, + "brand": "Piero", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-01.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-02.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "colchon-suavegom-espuma-merit-doble-pillow-140x190x029", + "name": "Colchón Suavegom Espuma Merit Doble Pillow 140x190x029", + "description": "Color sujeto a disponibilidad", + "price": 650000, + "stock": 10, + "brand": "Suavegom", + "parent_category": "Dormitorio y Blanco", + "category": "Colchones", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-01.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-02.webp", + "images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cortabarba-philips-bt-7201", + "name": "Cortabarba Philips BT-7201", + "description": null, + "price": 70000, + "stock": 10, + "brand": "Philips", + "parent_category": "Electrodomésticos", + "category": "Cuidado Personal", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "cortacabello-philips-qc-5560-8-posiciones", + "name": "Cortacabello Philips QC 5560 8 Posiciones", + "description": null, + "price": 45000, + "stock": 10, + "brand": "Philips", + "parent_category": "Electrodomésticos", + "category": "Cuidado Personal", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "edredon-1-1-2-pl-londres-jc", + "name": "Edredón 1 1/2 pl Londres JC", + "description": "Color sujeto a disponibilidad", + "price": 50000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "edredon-lisboa-jean-cartier", + "name": "Edredón Lisboa Jean Cartier", + "description": "Color sujeto a disponibilidad", + "price": 90000, + "stock": null, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "edredon-2-1-2-pl-lisboa-jc", + "description": "Color sujeto a disponibilidad", + "price": 120000, + "stock": 10, + "values": { + "medida_cama": "2 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-02.webp" + ] + }, + { + "source_slug": "edredon-1-1-2-pl-lisboa-jc", + "description": null, + "price": 90000, + "stock": 10, + "values": { + "medida_cama": "1 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-lisboa-jc-01.webp" + ] + } + ] + }, + { + "slug": "eskabe-3000-cal-s21-mx3-sin-salida", + "name": "Eskabe 3000 cal. S21 MX3 sin salida", + "description": "Color marfil", + "price": 290000, + "stock": 10, + "brand": "Eskabe", + "parent_category": "Climatización", + "category": "Calefactores a Gas sin Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-01.webp", + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-02.webp", + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "eskabe-3000-cal-s21-tiro-balanceado-sin-termostato", + "name": "Eskabe 3000 cal. S21 Tiro Balanceado sin termostato", + "description": null, + "price": 430000, + "stock": 10, + "brand": "Eskabe", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "eskabe-3000-cal-tiro-balanceado-con-termostato", + "name": "Eskabe 3000 cal. Tiro Balanceado con termostato", + "description": null, + "price": 450000, + "stock": 10, + "brand": "Eskabe", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "eskabe-tt-2000-cal-tiro-balanceado-con-termostato", + "name": "Eskabe TT 2000 cal. Tiro Balanceado con termostato", + "description": null, + "price": 450000, + "stock": 10, + "brand": "Eskabe", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-03.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-04.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "eskabe-tt-3000-cal-tiro-balanceado-con-termostato", + "name": "Eskabe TT 3000 cal. Tiro Balanceado con termostato", + "description": null, + "price": 499000, + "stock": 10, + "brand": "Eskabe", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "exprimidor-electrico-liliana-ae-920-citrijug-40-w", + "name": "Exprimidor eléctrico Liliana AE-920 Citrijug 40 W", + "description": null, + "price": 35000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc", + "name": "Frazada 2 1/2 pl Sherpa doble corderito y polar JC", + "description": "Color sujeto a disponibilidad", + "price": 70000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Frazadas y Mantas", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "frazada-kavanagh-premium-soft", + "name": "Frazada Kavanagh Premium Soft", + "description": "Color sujeto a disponibilidad", + "price": 47000, + "stock": null, + "brand": "Kavanagh", + "parent_category": "Dormitorio y Blanco", + "category": "Frazadas y Mantas", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "frazada-polar-1-1-2-pl-kavanagh-premium-soft", + "description": null, + "price": 47000, + "stock": 10, + "values": { + "medida_cama": "1 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-1-1-2-pl-kavanagh-premium-soft-01.webp" + ] + }, + { + "source_slug": "frazada-polar-king-kavanagh-premium-soft", + "description": "Color sujeto a disponibilidad", + "price": 72000, + "stock": 10, + "values": { + "medida_cama": "King" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-king-kavanagh-premium-soft-01.webp" + ] + } + ] + }, + { + "slug": "freidora-de-aire-peabody-pe-afd420n-4-2-l-digital", + "name": "Freidora de aire Peabody PE-AFD420N 4,2 L digital", + "description": null, + "price": 115000, + "stock": 10, + "brand": "Peabody", + "parent_category": "Electrodomésticos", + "category": "Freidoras y Cocción", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-07.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-08.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "freidora-de-aire-peabody-pe-afg03n-7-l-grill", + "name": "Freidora de aire Peabody PE-AFG03N 7 L Grill", + "description": null, + "price": 260000, + "stock": 10, + "brand": "Peabody", + "parent_category": "Electrodomésticos", + "category": "Freidoras y Cocción", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "heladera-gafa-hgf-358-afb-282-litros-blanca", + "name": "Heladera Gafa HGF 358 AFB 282 LITROS BLANCA", + "description": null, + "price": 780000, + "stock": 10, + "brand": "Gafa", + "parent_category": "Electrodomésticos", + "category": "Heladeras", + "images": [ + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-01.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-02.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-03.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "heladera-gafa-hgf-368afp-330-lt-color-plata", + "name": "Heladera Gafa HGF-368AFP 330 LT color plata", + "description": null, + "price": 910000, + "stock": 10, + "brand": "Gafa", + "parent_category": "Electrodomésticos", + "category": "Heladeras", + "images": [ + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-01.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-02.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-03.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-04.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "heladera-gafa-hgf-388-afb-374-litros-blanca", + "name": "Heladera Gafa HGF 388 AFB 374 LITROS BLANCA", + "description": null, + "price": 950000, + "stock": 10, + "brand": "Gafa", + "parent_category": "Electrodomésticos", + "category": "Heladeras", + "images": [ + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-01.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-02.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-03.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-04.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata", + "name": "Heladera No Frost Gafa HGNF333P Inverter 356 L plata", + "description": null, + "price": 950000, + "stock": 10, + "brand": "Gafa", + "parent_category": "Electrodomésticos", + "category": "Heladeras", + "images": [ + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-01.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-02.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-03.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-04.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-05.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-06.webp", + "images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "horno-electrico-25l-bgh-bhe-25m25i-duo-negro", + "name": "Horno Eléctrico 25L BGH BHE-25M25I Dúo negro", + "description": null, + "price": 145000, + "stock": 10, + "brand": "BGH", + "parent_category": "Electrodomésticos", + "category": "Hornos Eléctricos", + "images": [ + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-01.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-02.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api", + "name": "Horno eléctrico Atma Grill 40 litros c/2 anafes HG-4022API", + "description": null, + "price": 250000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Hornos Eléctricos", + "images": [ + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-01.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-02.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-03.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-04.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-05.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades", + "name": "Juguera Liliana AJ-950 Nutrijug vaso 350 ml 2 velocidades", + "description": null, + "price": 120000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "kit-acolchado-queen-zurich-2-fundas-almohadon-jc", + "name": "Kit Acolchado Queen Zúrich + 2 fundas almohadón JC", + "description": "Color sujeto a disponibilidad", + "price": 80000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "kit-edredon-alaska-corderito", + "name": "Kit Edredón Alaska con Corderito", + "description": "Color sujeto a disponibilidad", + "price": 130000, + "stock": null, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Acolchados y Edredones", + "images": [], + "attribute_codes": [ + "medida_cama" + ], + "variants": [ + { + "source_slug": "kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones", + "description": "Color sujeto a disponibilidad", + "price": 130000, + "stock": 10, + "values": { + "medida_cama": "2 1/2 Plazas" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-01.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-02.webp", + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-03.webp" + ] + }, + { + "source_slug": "kit-edredon-king-alaska-c-corderito-2-fundas-almohadones", + "description": "Para colchón 2 x 2", + "price": 160000, + "stock": 10, + "values": { + "medida_cama": "King" + }, + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-king-alaska-c-corderito-2-fundas-almohadones-01.webp" + ] + } + ] + }, + { + "slug": "lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm", + "name": "Lavarropas automático Drean Concept 5.05 V1 5 Kg 500 rpm", + "description": "Carga superior", + "price": 650000, + "stock": 10, + "brand": "Drean", + "parent_category": "Electrodomésticos", + "category": "Lavarropas y Secarropas", + "images": [ + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-01.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-02.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-03.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-04.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco", + "name": "Lavarropas automático Gafa Fuzzy Fit 7 kg 760 rpm color blanco", + "description": "Carga superior", + "price": 650000, + "stock": 10, + "brand": "Gafa", + "parent_category": "Electrodomésticos", + "category": "Lavarropas y Secarropas", + "images": [ + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-01.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-02.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-03.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-04.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-05.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco", + "name": "Lavarropas automático Philco PHLF-6510B2 6,5 KG 1000 rpm blanco", + "description": null, + "price": 600000, + "stock": 10, + "brand": "Philco", + "parent_category": "Electrodomésticos", + "category": "Lavarropas y Secarropas", + "images": [ + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-01.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-02.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-03.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-04.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-05.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco", + "name": "Lavarropas automático Samsung WW65 6,5 Kg 1000 rpm blanco", + "description": "Carga frontal", + "price": 920000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Electrodomésticos", + "category": "Lavarropas y Secarropas", + "images": [ + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-01.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-02.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-03.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-04.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "licuadora-electrolux-sba10-personal-600-ml", + "name": "Licuadora Electrolux SBA10 personal 600 ml", + "description": null, + "price": 75000, + "stock": 10, + "brand": "Electrolux", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "longvie-eba2s-2000-cal-tiro-balanceado", + "name": "Longvie EBA2S 2000 cal. Tiro Balanceado", + "description": null, + "price": 280000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "longvie-eba3s-3000-cal-tiro-balanceado", + "name": "Longvie EBA3S 3000 cal. Tiro Balanceado", + "description": null, + "price": 420000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Climatización", + "category": "Calefactores a Gas con Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-03.webp", + "images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida", + "name": "Longvie ECA-3KV 3200 cal. Infr visor grafito sin salida", + "description": null, + "price": 300000, + "stock": 10, + "brand": "Longvie", + "parent_category": "Climatización", + "category": "Calefactores a Gas sin Salida", + "images": [ + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-01.webp", + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-02.webp", + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-03.webp", + "images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "lustraspiradora-liliana-espejo-ll350-850-w", + "name": "Lustraspiradora Liliana espejo LL350 850 W", + "description": null, + "price": 210000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Limpieza y Planchado", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier", + "name": "Manta simil piel de conejo con reverso aterciopelado Jean Cartier", + "description": "Color sujeto a disponibilidad", + "price": 50000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Frazadas y Mantas", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill", + "name": "Microondas BGH 28 L BGH B-228DS20I Plata Digital con grill", + "description": null, + "price": 350000, + "stock": 10, + "brand": "BGH", + "parent_category": "Electrodomésticos", + "category": "Microondas", + "images": [ + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-01.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-02.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro", + "name": "Microondas Samsung MG23 F3K3TAK 23 litros Grill color negro", + "description": null, + "price": 335000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Electrodomésticos", + "category": "Microondas", + "images": [ + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-01.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-02.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-03.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-04.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-05.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-06.webp", + "images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "mixer-liliana-ah-300-450-w-vaso", + "name": "Mixer Liliana AH-300 450 W + Vaso", + "description": null, + "price": 56000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor", + "name": "Mixer Liliana Rainbow Mix AH-101/2/3 + Vaso medidor", + "description": null, + "price": 67000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "mixer-philips-hr-2531-50-promix-400-w-vaso", + "name": "Mixer Philips HR-2531/50 Promix 400 W + Vaso", + "description": null, + "price": 83000, + "stock": 10, + "brand": "Philips", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "motorola-g15", + "name": "Motorola G15", + "description": "Color sujeto a disponibilidad", + "price": 330000, + "stock": null, + "brand": "Motorola", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [], + "attribute_codes": [ + "memoria_ram", + "almacenamiento" + ], + "variants": [ + { + "source_slug": "motorola-g15-4-256-gb", + "description": "Color sujeto a disponibilidad", + "price": 330000, + "stock": 10, + "values": { + "memoria_ram": "4 GB", + "almacenamiento": "256 GB" + }, + "images": [ + "images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-03.webp" + ] + }, + { + "source_slug": "motorola-g15-4-512-gb", + "description": "Color sujeto a disponibilidad", + "price": 430000, + "stock": 10, + "values": { + "memoria_ram": "4 GB", + "almacenamiento": "512 GB" + }, + "images": [ + "images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-02.webp" + ] + } + ] + }, + { + "slug": "motorola-g35-4-256-gb", + "name": "Motorola G35 4/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 410000, + "stock": 10, + "brand": "Motorola", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-03.webp", + "images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "mouse-xtrike-me-backlit", + "name": "Mouse Xtrike Me Backlit", + "description": null, + "price": 12000, + "stock": 10, + "brand": "Xtrike Me", + "parent_category": "Tecnología", + "category": "Accesorios de Computación", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/mouse-xtrike-me-backlit-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "multiprocesadora-liliana-am-700-simplix-700-w", + "name": "Multiprocesadora Liliana AM-700 Simplix 700 W", + "description": null, + "price": 137000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050", + "name": "Notebook Acer Aspire 7 I5-13420H/512SSD/16GB/15.6/RTX3050", + "description": null, + "price": 2800000, + "stock": 10, + "brand": "Acer", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11", + "name": "NOTEBOOK ASUS VIVOBOOK F1504VAP Intel Core 7 512GB SSD 8GB 15.6 Touch WIN 11", + "description": null, + "price": 1700000, + "stock": 10, + "brand": "ASUS", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11", + "name": "Notebook ASUS Vivobook Go 15 E1504GA-WS35 Intel Core i3 N305 8/256 GB Win11", + "description": null, + "price": 1300000, + "stock": 10, + "brand": "ASUS", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11", + "name": "Notebook Lenovo IdeaPad Slim 3 AMD Ryzen 5 8/512GB SSD 15.6\" Full HD Win11", + "description": null, + "price": 1400000, + "stock": 10, + "brand": "Lenovo", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6", + "name": "Notebook Lenovo Ryzen 7 8840HS 16/512GB 15,6\"", + "description": null, + "price": 1700000, + "stock": 10, + "brand": "Lenovo", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-04.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11", + "name": "Notebook Lenovo S3 15Q8X10 SNAPDRAGON X 512GB SSD 16GB DDR5 15.3\" WIN11", + "description": null, + "price": 1500000, + "stock": 10, + "brand": "Lenovo", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-04.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-05.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-06.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11", + "name": "Notebook MSI Katana 15 HX B14WGK-293US I7-14650HX UP TO 5.2GHZ 1TB SSD 16GB DDR5 Geforce RTX 5070 8GB 15.6\" QHD 165HZ WIN 11", + "description": null, + "price": 3800000, + "stock": 10, + "brand": "MSI", + "parent_category": "Tecnología", + "category": "Notebooks", + "images": [ + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-01.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-02.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-03.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-04.webp", + "images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "parlante-jbl-go-4-bluetooth-altavoz-ultraportatil", + "name": "Parlante JBL GO 4 Bluetooth altavoz ultraportátil", + "description": "Color sujeto a disponibilidad", + "price": 97000, + "stock": 10, + "brand": "JBL", + "parent_category": "Tecnología", + "category": "Audio", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-01.webp", + "images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pava-electrica-atma-pe-0821ap-nap-1-7-l", + "name": "Pava eléctrica Atma PE-0821AP/NAP 1,7 L", + "description": null, + "price": 40000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pava-electrica-atma-ped23mp-disney-vintage", + "name": "Pava eléctrica Atma PED23MP Disney vintage", + "description": null, + "price": 90000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada", + "name": "Pava eléctrica GIGO G-17898 SD 1,7 L Digital cromada", + "description": null, + "price": 76000, + "stock": 10, + "brand": "GIGO", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pava-electrica-liliana-ap-165-matera-color-negra", + "name": "Pava eléctrica Liliana AP-165 matera color negra", + "description": null, + "price": 59000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pava-electrica-liliana-ap-200-infustyle-1-7-l", + "name": "Pava eléctrica Liliana AP-200 Infustyle 1,7 L", + "description": null, + "price": 85000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "picadora-moulinex-ad-6011ar-750-w-blanca", + "name": "Picadora Moulinex AD-6011AR 750 W Blanca", + "description": null, + "price": 98000, + "stock": 10, + "brand": "Moulinex", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-07.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pileta-pelopincho-1010", + "name": "Pileta Pelopincho 1010", + "description": null, + "price": 87000, + "stock": 10, + "brand": "Pelopincho", + "parent_category": "Bicicletas y Aire Libre", + "category": "Piletas", + "images": [ + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-01.webp", + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pileta-pelopincho-1020", + "name": "Pileta Pelopincho 1020", + "description": null, + "price": 115000, + "stock": 10, + "brand": "Pelopincho", + "parent_category": "Bicicletas y Aire Libre", + "category": "Piletas", + "images": [ + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-01.webp", + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pileta-pelopincho-1030", + "name": "Pileta Pelopincho 1030", + "description": null, + "price": 140000, + "stock": 10, + "brand": "Pelopincho", + "parent_category": "Bicicletas y Aire Libre", + "category": "Piletas", + "images": [ + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-01.webp", + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pileta-pelopincho-1043", + "name": "Pileta Pelopincho 1043", + "description": null, + "price": 240000, + "stock": 10, + "brand": "Pelopincho", + "parent_category": "Bicicletas y Aire Libre", + "category": "Piletas", + "images": [ + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-01.webp", + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pileta-pelopincho-1055", + "name": "Pileta Pelopincho 1055", + "description": null, + "price": 315000, + "stock": 10, + "brand": "Pelopincho", + "parent_category": "Bicicletas y Aire Libre", + "category": "Piletas", + "images": [ + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-01.webp", + "images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "plancha-vapor-philips-gc-1022-40-2000-w", + "name": "Plancha vapor Philips GC-1022/40 2000 W", + "description": null, + "price": 91000, + "stock": 10, + "brand": "Philips", + "parent_category": "Electrodomésticos", + "category": "Limpieza y Planchado", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "pochoclera-atma-po-at9801dnp-disney-mickey", + "name": "Pochoclera Atma PO-AT9801DNP Disney Mickey", + "description": null, + "price": 64000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Freidoras y Cocción", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "purificador-spar-bios-3766-boo-color-blanco", + "name": "Purificador Spar Bios 3766-BOO color blanco", + "description": "1 motor", + "price": 200000, + "stock": 10, + "brand": "Spar", + "parent_category": "Electrodomésticos", + "category": "Purificadores y Extractores de Cocina", + "images": [ + "images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-01.webp", + "images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-02.webp", + "images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "purificador-tst-360-60-estratto-acero-inox-60-cm", + "name": "Purificador Tst #360-60 Estratto acero inox. 60 cm", + "description": null, + "price": 200000, + "stock": 10, + "brand": "Acer", + "parent_category": "Electrodomésticos", + "category": "Purificadores y Extractores de Cocina", + "images": [ + "images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-01.webp", + "images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a07-4-128-gb", + "name": "Samsung A07 4/128 GB", + "description": "Color sujeto a disponibilidad", + "price": 310000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a17-4-128-gb", + "name": "SAMSUNG A17 4/128 GB", + "description": "Color sujeto a disponibilidad", + "price": 390000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a17-5g-8-256-gb", + "name": "SAMSUNG A17 5G 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 620000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a26-5g-8-256-gb", + "name": "SAMSUNG A26 5G 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 650000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a36-5g-8-256-gb", + "name": "Samsung A36 5G 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 780000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-03.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-04.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-a56-5g-8-256-gb", + "name": "Samsung A56 5G 8/256 GB", + "description": null, + "price": 920000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "samsung-galaxy-a16-4-128-gb", + "name": "Samsung Galaxy A16 4/128 GB", + "description": "Color sujeto a disponibilidad", + "price": 340000, + "stock": 10, + "brand": "Samsung", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-03.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-04.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-05.webp", + "images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "secador-cabello-atma-sp-8970-classic-3-velocidades", + "name": "Secador cabello Atma SP-8970 Classic 3 Velocidades", + "description": null, + "price": 60000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Cuidado Personal", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "secador-cabello-gama-9465-brillant-blue-titanium", + "name": "Secador cabello Gama 9465 Brillant Blue Titanium", + "description": null, + "price": 120000, + "stock": 10, + "brand": "Gama", + "parent_category": "Electrodomésticos", + "category": "Cuidado Personal", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "secador-cabello-philips-bhd-302-10-1600-w", + "name": "Secador cabello Philips BHD-302/10 1600 W", + "description": null, + "price": 110000, + "stock": 10, + "brand": "Philips", + "parent_category": "Electrodomésticos", + "category": "Cuidado Personal", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg", + "name": "Secarropas Kohinoor A-665 acero inoxidable 6,5 Kg", + "description": null, + "price": 300000, + "stock": 10, + "brand": "Kohinoor", + "parent_category": "Electrodomésticos", + "category": "Lavarropas y Secarropas", + "images": [ + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-01.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-02.webp", + "images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc", + "name": "Set Cuna de 6 piezas Acolchado + Sabanas Arcoiris multicolor JC", + "description": null, + "price": 50000, + "stock": 10, + "brand": "Jean Cartier", + "parent_category": "Dormitorio y Blanco", + "category": "Infantil y Cuna", + "images": [ + "images/tennants/mutual_smep/catalog/acolchados-y-sabanas-infantil/set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "smart-32-bgh-b-3225s5a-android", + "name": "SMART 32\" BGH B-3225S5A ANDROID", + "description": null, + "price": 340000, + "stock": 10, + "brand": "BGH", + "parent_category": "Tecnología", + "category": "Smart TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-03.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "smart-tv-43-noblex-dr43-x7180-android", + "name": "Smart TV 43\" Noblex DR43-X7180 Android", + "description": null, + "price": 510000, + "stock": 10, + "brand": "Noblex", + "parent_category": "Tecnología", + "category": "Smart TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-03.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "smart-tv-noblex-32-dk32-x7000-android", + "name": "Smart TV Noblex 32\" DK32-X7000 Android", + "description": null, + "price": 340000, + "stock": 10, + "brand": "Noblex", + "parent_category": "Tecnología", + "category": "Smart TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "smart-tv-noblex-50-dr50-x8500-google-tv", + "name": "SMART TV NOBLEX 50\" DR50-X8500 GOOGLE TV", + "description": null, + "price": 730000, + "stock": 10, + "brand": "Noblex", + "parent_category": "Tecnología", + "category": "Smart TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-03.webp", + "images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "sommier-inducol-0-80x1-90", + "name": "Sommier Inducol 0,80x1,90", + "description": null, + "price": 180000, + "stock": 10, + "brand": "Inducol", + "parent_category": "Dormitorio y Blanco", + "category": "Bases y Sommiers", + "images": [ + "images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-01.webp", + "images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "sommier-king-koil-elite-contour-140x190", + "name": "Sommier King Koil Elite Contour 140x190", + "description": "Ideal para armar el conjunto con el Colchón Inducol Vinson Espuma. Color sujeto a disponibilidad.", + "price": 260000, + "stock": 10, + "brand": "King Koil", + "parent_category": "Dormitorio y Blanco", + "category": "Bases y Sommiers", + "images": [ + "images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-01.webp", + "images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-02.webp", + "images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "sommier-piero-legrand-140x190x020", + "name": "Sommier Piero Legrand 140x190x020", + "description": null, + "price": 280000, + "stock": 10, + "brand": "Piero", + "parent_category": "Dormitorio y Blanco", + "category": "Bases y Sommiers", + "images": [ + "images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-01.webp", + "images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "sommier-piero-paraiso-0-90x1-90x0-20", + "name": "Sommier Piero Paraíso 0,90x1,90x0,20", + "description": "Base de sommier Piero para colchón de 0,90x1,90", + "price": 200000, + "stock": 10, + "brand": "Piero", + "parent_category": "Dormitorio y Blanco", + "category": "Bases y Sommiers", + "images": [ + "images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-01.webp", + "images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio", + "name": "Soporte led 26\"-60\" Nakan SPL-375E extensible y giratorio", + "description": null, + "price": 55000, + "stock": 10, + "brand": "Nakan", + "parent_category": "Tecnología", + "category": "Soportes para TV", + "images": [ + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-01.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-02.webp", + "images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "soporte-led-32-55-gbs-con-inclinacion", + "name": "Soporte led 32\"-55\" GBS con inclinacion", + "description": null, + "price": 20000, + "stock": 10, + "brand": "GBS", + "parent_category": "Tecnología", + "category": "Soportes para TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "soporte-led-gbs-32-55-fijo", + "name": "Soporte led GBS 32\"-55\" fijo", + "description": null, + "price": 20000, + "stock": 10, + "brand": "GBS", + "parent_category": "Tecnología", + "category": "Soportes para TV", + "images": [ + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-01.webp", + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-02.webp", + "images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "split-3300-w-tcl-taca-3300fcsa-frio-calor", + "name": "Split 3300 W TCL TACA-3300FCSA frío/calor", + "description": null, + "price": 840000, + "stock": 10, + "brand": "TCL", + "parent_category": "Climatización", + "category": "Aires Acondicionados", + "images": [ + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-01.webp", + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias", + "name": "Split BGH 5200 W BSH-52WCU frío/calor Silent Air 4300 frigorías", + "description": null, + "price": 1200000, + "stock": 10, + "brand": "BGH", + "parent_category": "Climatización", + "category": "Aires Acondicionados", + "images": [ + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-01.webp", + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-02.webp", + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-03.webp", + "images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "teclado-xtrike-me-rainbow-mecanico", + "name": "Teclado Xtrike Me Rainbow mecánico", + "description": null, + "price": 40000, + "stock": 10, + "brand": "Xtrike Me", + "parent_category": "Tecnología", + "category": "Accesorios de Computación", + "images": [ + "images/tennants/mutual_smep/catalog/tecnologia/teclado-xtrike-me-rainbow-mecanico-01.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "termo-stanley-1-l-adventure-go-to-con-tapon", + "name": "Termo Stanley 1 L Adventure Go-To con tapón", + "description": "Color sujeto a disponibilidad", + "price": 170000, + "stock": 10, + "brand": "Stanley", + "parent_category": "Bazar", + "category": "Termos", + "images": [ + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-01.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-02.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-03.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-04.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "termo-stanley-800-ml-mate-system-classic", + "name": "Termo Stanley 800 ml Mate System classic", + "description": "Color sujeto a disponibilidad", + "price": 160000, + "stock": 10, + "brand": "Stanley", + "parent_category": "Bazar", + "category": "Termos", + "images": [ + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-01.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-02.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-03.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "termo-stanley-950-ml-clasico-con-manija", + "name": "Termo Stanley 950 ml clásico con manija", + "description": "Color sujeto a disponibilidad", + "price": 155000, + "stock": 10, + "brand": "Stanley", + "parent_category": "Bazar", + "category": "Termos", + "images": [ + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-01.webp", + "images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "torre-liliana-tropic-ftp-530-1500-w", + "name": "Torre Liliana Tropic FTP-530 1500 W", + "description": null, + "price": 164000, + "stock": 10, + "brand": "Liliana", + "parent_category": "Climatización", + "category": "Calefacción Eléctrica", + "images": [ + "images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-01.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-02.webp", + "images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "tostadora-atma-toat-21vcp-vintage-color-crema", + "name": "Tostadora Atma TOAT-21VCP Vintage color crema", + "description": null, + "price": 60000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "tostadora-oster-tr500-acero-inoxidable", + "name": "Tostadora Oster TR500 Acero Inoxidable", + "description": null, + "price": 84000, + "stock": 10, + "brand": "Oster", + "parent_category": "Electrodomésticos", + "category": "Café y Desayuno", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-04.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "waflera-atma-ws-027drn-disney-2-en-1", + "name": "Waflera Atma WS-027DRN disney 2 en 1", + "description": null, + "price": 64000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Freidoras y Cocción", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-05.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-06.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-07.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-08.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-09.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-10.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "xiaomi-poco-c85-8-256-gb", + "name": "XIAOMI POCO C85 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 430000, + "stock": 10, + "brand": "Xiaomi", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "xiaomi-poco-m7-8-256-gb", + "name": "XIAOMI POCO M7 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 420000, + "stock": 10, + "brand": "Xiaomi", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-03.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "xiaomi-redmi-15c-8-256-gb", + "name": "Xiaomi Redmi 15C 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 380000, + "stock": 10, + "brand": "Xiaomi", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-02.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "xiaomi-redmi-note-14-pro-5g-8-256-gb", + "name": "Xiaomi Redmi Note 14 Pro 5G 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 630000, + "stock": 10, + "brand": "Xiaomi", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-03.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-04.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-05.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-06.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "xiaomi-redmi-note-15-8-256-gb", + "name": "Xiaomi Redmi Note 15 8/256 GB", + "description": "Color sujeto a disponibilidad", + "price": 496000, + "stock": 10, + "brand": "Xiaomi", + "parent_category": "Tecnología", + "category": "Celulares", + "images": [ + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-01.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-02.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-03.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-04.webp", + "images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-05.webp" + ], + "attribute_codes": [], + "variants": [] + }, + { + "slug": "yogurtera-atma-ym3010p-7-porciones", + "name": "Yogurtera Atma YM3010P 7 porciones", + "description": null, + "price": 65000, + "stock": 10, + "brand": "Atma", + "parent_category": "Electrodomésticos", + "category": "Preparación de Alimentos", + "images": [ + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-01.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-02.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-03.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-04.webp", + "images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-05.webp" + ], + "attribute_codes": [], + "variants": [] + } + ] +} diff --git a/database/migrations/2026_09_24_000000_provision_mutual_smep_tenant.php b/database/migrations/2026_09_24_000000_provision_mutual_smep_tenant.php new file mode 100644 index 00000000..f118f6e8 --- /dev/null +++ b/database/migrations/2026_09_24_000000_provision_mutual_smep_tenant.php @@ -0,0 +1,326 @@ + */ + private array $storedPaths = []; + + public function up(): void + { + if (DB::table('tenants')->where('codigo', self::TENANT_CODE)->exists()) { + return; + } + + if ( + ! DB::table('admin_website_types')->where('codigo', 'shopit')->exists() + || ! DB::table('storefront_website_types')->where('codigo', 'shopit')->exists() + ) { + // Fresh installations provision website-type reference data separately. + return; + } + + try { + DB::transaction(function (): void { + $clientId = $this->clientId(); + $headerLogoId = $this->storeImage( + 'images/tennants/mutual_smep/mutual_smep_header.png', + 'mutual_smep_header.png', + ); + $footerLogoId = $this->storeImage( + 'images/tennants/mutual_smep/mutual_smep_footer.png', + 'mutual_smep_footer.png', + ); + $faviconId = $this->storeImage( + 'images/tennants/mutual_smep/mutual_smep_favicon.png', + 'mutual_smep_favicon.png', + ); + $now = now(); + + DB::table('tenants')->insert([ + 'client_id' => $clientId, + 'codigo' => self::TENANT_CODE, + 'nombre' => 'Mutual SMEP', + 'timezone' => 'America/Argentina/Buenos_Aires', + 'dominio' => 'mutual-smep.localhost', + 'base_path' => '/', + 'site_title' => 'Tienda Mutual SMEP', + 'address' => 'San Lorenzo 1543, Rosario, Santa Fe', + 'phone' => '+54 9 341 247-4530', + 'primary_color' => '#4A7FF5', + 'secondary_color' => '#0051A4', + 'danger_color' => '#FF8888', + 'success_color' => '#198754', + 'header_bg_color' => '#FFFFFF', + 'footer_bg_color' => '#0051A4', + 'header_logo_id' => $headerLogoId, + 'footer_logo_id' => $footerLogoId, + 'favicon_id' => $faviconId, + 'admin_website_type_code' => 'shopit', + 'storefront_website_type_code' => 'shopit', + 'display_categories' => true, + 'display_seach_bar' => true, + 'display_cart' => true, + 'cart_editing_policy' => 'quantity_and_remove', + 'checkout_editing_policy' => 'disabled', + 'created_at' => $now, + 'updated_at' => $now, + ]); + + $this->assignSocialMedia($now); + $this->assignMenus($now); + }); + } catch (Throwable $throwable) { + Storage::disk('s3')->delete($this->storedPaths); + + throw $throwable; + } + } + + public function down(): void + { + $tenant = DB::table('tenants') + ->where('codigo', self::TENANT_CODE) + ->first(['id', 'client_id', 'header_logo_id', 'footer_logo_id', 'favicon_id']); + + if ($tenant === null) { + return; + } + + $attachmentIds = collect([ + $tenant->header_logo_id, + $tenant->footer_logo_id, + $tenant->favicon_id, + ])->filter()->unique()->values(); + $storedPaths = DB::table('attachments') + ->whereIn('id', $attachmentIds) + ->pluck('path') + ->all(); + + DB::transaction(function () use ($tenant, $attachmentIds): void { + DB::table('tenant_social_media') + ->where('tenant_code', self::TENANT_CODE) + ->delete(); + DB::table('tenants_menues') + ->where('tenant_code', self::TENANT_CODE) + ->delete(); + DB::table('tenants') + ->where('id', $tenant->id) + ->delete(); + DB::table('attachments') + ->whereIn('id', $attachmentIds) + ->delete(); + + $clientHasTenants = DB::table('tenants') + ->where('client_id', $tenant->client_id) + ->exists(); + + if (! $clientHasTenants) { + DB::table('clients') + ->where('id', $tenant->client_id) + ->where('code', self::CLIENT_CODE) + ->delete(); + } + }); + + Storage::disk('s3')->delete($storedPaths); + } + + private function clientId(): int + { + $clientId = DB::table('clients')->where('code', self::CLIENT_CODE)->value('id'); + + if ($clientId !== null) { + DB::table('clients')->where('id', $clientId)->update([ + 'name' => 'Mutual SMEP', + 'updated_at' => now(), + ]); + + return (int) $clientId; + } + + return (int) DB::table('clients')->insertGetId([ + 'code' => self::CLIENT_CODE, + 'name' => 'Mutual SMEP', + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + private function assignSocialMedia(DateTimeInterface $now): void + { + $socialMedia = [ + [ + 'code' => 'instagram', + 'icon' => 'fa-brands fa-instagram', + 'name' => 'Instagram', + 'url' => 'https://www.instagram.com/mutualsmep/', + 'orden' => 0, + ], + [ + 'code' => 'facebook', + 'icon' => 'fa-brands fa-facebook', + 'name' => 'Facebook', + 'url' => 'https://www.facebook.com/smeprosario', + 'orden' => 1, + ], + [ + 'code' => 'whatsapp', + 'icon' => 'fa-brands fa-whatsapp', + 'name' => 'WhatsApp', + 'url' => 'https://wa.me/5493412474530', + 'orden' => 2, + ], + ]; + + foreach ($socialMedia as $network) { + DB::table('social_media')->insertOrIgnore([ + 'code' => $network['code'], + 'icon' => $network['icon'], + 'name' => $network['name'], + 'created_at' => $now, + 'updated_at' => $now, + ]); + + DB::table('tenant_social_media')->insertOrIgnore([ + 'tenant_code' => self::TENANT_CODE, + 'social_media_code' => $network['code'], + 'url' => $network['url'], + 'orden' => $network['orden'], + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + } + + private function assignMenus(DateTimeInterface $now): void + { + DB::table('menues') + ->whereNotIn('code', self::EXCLUDED_MENU_CODES) + ->pluck('code') + ->each(function (string $menuCode) use ($now): void { + $staticContent = match ($menuCode) { + 'help.faq' => $this->frequentlyAskedQuestions(), + 'help.contact' => $this->contactContent(), + default => null, + }; + + DB::table('tenants_menues')->updateOrInsert( + [ + 'tenant_code' => self::TENANT_CODE, + 'menu_code' => $menuCode, + ], + [ + 'static_content' => $staticContent === null + ? null + : json_encode($staticContent, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + 'created_at' => $now, + 'updated_at' => $now, + ], + ); + }); + } + + /** @return list */ + private function frequentlyAskedQuestions(): array + { + return [ + [ + 'pregunta' => '¿Hay algún límite de compra?', + 'respuesta' => 'La cantidad disponible depende del stock de cada producto.', + 'is_active' => true, + ], + [ + 'pregunta' => '¿Cuáles son los medios de pago disponibles?', + 'respuesta' => 'Podés consultar y seleccionar los medios de pago habilitados al finalizar tu compra.', + 'is_active' => false, + ], + [ + 'pregunta' => '¿Cómo puedo recibir asesoramiento antes de comprar?', + 'respuesta' => 'Podés comunicarte con Mutual SMEP por WhatsApp al +54 9 341 247-4530.', + 'is_active' => false, + ], + ]; + } + + /** @return array */ + private function contactContent(): array + { + return [ + 'whatsapp' => [ + 'whatsapp_url' => 'https://wa.me/5493412474530', + 'whatsapp_label' => 'Chateá con Mutual SMEP', + ], + 'phone' => '+54 9 341 247-4530', + 'locations' => [ + 'rosario' => [ + 'label' => 'Rosario', + 'addresses' => [ + [ + 'label' => 'Mutual SMEP', + 'address' => 'San Lorenzo 1543, Rosario, Santa Fe', + 'coordinates' => [-32.9431184, -60.6437991], + ], + ], + ], + ], + ]; + } + + private function storeImage(string $relativePath, string $filename): int + { + $sourcePath = public_path($relativePath); + + if (! is_file($sourcePath)) { + throw new RuntimeException("Image not found at path: {$sourcePath}"); + } + + $contents = file_get_contents($sourcePath); + + if ($contents === false) { + throw new RuntimeException("Could not read image at path: {$sourcePath}"); + } + + $key = (string) Str::uuid(); + $storedPath = 'tenants/'.self::TENANT_CODE."/{$key}.png"; + + if (! Storage::disk('s3')->put($storedPath, $contents)) { + throw new RuntimeException("Could not store image at path: {$storedPath}"); + } + + $this->storedPaths[] = $storedPath; + + return DB::table('attachments')->insertGetId([ + 'key' => $key, + 'path' => $storedPath, + 'filename' => $filename, + 'type' => 'image', + 'mime_type' => 'image/png', + 'extension' => 'png', + 'size' => strlen($contents), + 'created_at' => now(), + 'updated_at' => now(), + ]); + } +}; diff --git a/database/migrations/2026_09_24_010000_seed_mutual_smep_categories.php b/database/migrations/2026_09_24_010000_seed_mutual_smep_categories.php new file mode 100644 index 00000000..f89abb0c --- /dev/null +++ b/database/migrations/2026_09_24_010000_seed_mutual_smep_categories.php @@ -0,0 +1,141 @@ +> */ + private const CATEGORIES = [ + 'Dormitorio y Blanco' => [ + 'Colchones', + 'Bases y Sommiers', + 'Acolchados y Edredones', + 'Frazadas y Mantas', + 'Infantil y Cuna', + ], + 'Electrodomésticos' => [ + 'Heladeras', + 'Lavarropas y Secarropas', + 'Cocinas', + 'Microondas', + 'Hornos Eléctricos', + 'Calefones y Termotanques', + 'Purificadores y Extractores de Cocina', + 'Preparación de Alimentos', + 'Café y Desayuno', + 'Freidoras y Cocción', + 'Cuidado Personal', + 'Limpieza y Planchado', + ], + 'Climatización' => [ + 'Aires Acondicionados', + 'Calefactores a Gas con Salida', + 'Calefactores a Gas sin Salida', + 'Calefacción Eléctrica', + ], + 'Tecnología' => [ + 'Celulares', + 'Notebooks', + 'Smart TV', + 'Audio', + 'Accesorios de Computación', + 'Soportes para TV', + ], + 'Bicicletas y Aire Libre' => [ + 'Bicicletas Infantiles', + 'Bicicletas para Adultos', + 'Piletas', + ], + 'Bazar' => [ + 'Termos', + ], + ]; + + public function up(): void + { + if (! DB::table('tenants')->where('codigo', self::TENANT_CODE)->exists()) { + return; + } + + DB::transaction(function (): void { + foreach (self::CATEGORIES as $parentName => $subcategoryNames) { + $parentId = $this->upsertCategory($parentName, null); + + foreach ($subcategoryNames as $subcategoryName) { + $this->upsertCategory($subcategoryName, $parentId); + } + } + }); + } + + public function down(): void + { + DB::transaction(function (): void { + foreach (self::CATEGORIES as $parentName => $subcategoryNames) { + $parentId = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->where('nombre', $parentName) + ->whereNull('categoria_id') + ->value('id'); + + if ($parentId === null) { + continue; + } + + $subcategoryIds = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->where('categoria_id', $parentId) + ->whereIn('nombre', $subcategoryNames) + ->pluck('id'); + + foreach ($subcategoryIds as $subcategoryId) { + $hasChildren = DB::table('categorias') + ->where('categoria_id', $subcategoryId) + ->exists(); + + if (! $hasChildren) { + DB::table('categorias')->where('id', $subcategoryId)->delete(); + } + } + + $hasChildren = DB::table('categorias') + ->where('categoria_id', $parentId) + ->exists(); + + if (! $hasChildren) { + DB::table('categorias')->where('id', $parentId)->delete(); + } + } + }); + } + + private function upsertCategory(string $name, ?int $parentId): int + { + $categoryId = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->where('nombre', $name) + ->value('id'); + + if ($categoryId !== null) { + DB::table('categorias')->where('id', $categoryId)->update([ + 'categoria_id' => $parentId, + 'is_enabled' => true, + 'updated_at' => now(), + ]); + + return (int) $categoryId; + } + + return (int) DB::table('categorias')->insertGetId([ + 'tenant_code' => self::TENANT_CODE, + 'categoria_id' => $parentId, + 'nombre' => $name, + 'is_enabled' => true, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } +}; diff --git a/database/migrations/2026_09_24_020000_seed_mutual_smep_attributes.php b/database/migrations/2026_09_24_020000_seed_mutual_smep_attributes.php new file mode 100644 index 00000000..7d5a17ee --- /dev/null +++ b/database/migrations/2026_09_24_020000_seed_mutual_smep_attributes.php @@ -0,0 +1,139 @@ +> */ + private const ATTRIBUTES = [ + [ + 'codigo' => 'color', + 'nombre' => 'Color', + 'metadata_schema' => [ + 'hex' => ['type' => 'string'], + ], + 'options' => [ + ['value' => 'Negro', 'label' => 'Negro', 'metadata' => ['hex' => '#000000']], + ['value' => 'Blanco', 'label' => 'Blanco', 'metadata' => ['hex' => '#FFFFFF']], + ['value' => 'Gris', 'label' => 'Gris', 'metadata' => ['hex' => '#808080']], + ['value' => 'Plata', 'label' => 'Plata', 'metadata' => ['hex' => '#C0C0C0']], + ['value' => 'Azul', 'label' => 'Azul', 'metadata' => ['hex' => '#0000FF']], + ['value' => 'Rojo', 'label' => 'Rojo', 'metadata' => ['hex' => '#DC3545']], + ['value' => 'Rosa', 'label' => 'Rosa', 'metadata' => ['hex' => '#FFC0CB']], + ['value' => 'Multicolor', 'label' => 'Multicolor'], + ], + ], + [ + 'codigo' => 'medida_cama', + 'nombre' => 'Medida', + 'options' => [ + ['value' => 'Cuna', 'label' => 'Cuna'], + ['value' => '1 Plaza', 'label' => '1 Plaza'], + ['value' => '1 1/2 Plazas', 'label' => '1 1/2 Plazas'], + ['value' => '2 Plazas', 'label' => '2 Plazas'], + ['value' => '2 1/2 Plazas', 'label' => '2 1/2 Plazas'], + ['value' => 'Queen', 'label' => 'Queen'], + ['value' => 'King', 'label' => 'King'], + ], + ], + [ + 'codigo' => 'almacenamiento', + 'nombre' => 'Almacenamiento', + 'options' => [ + ['value' => '128 GB', 'label' => '128 GB'], + ['value' => '256 GB', 'label' => '256 GB'], + ['value' => '512 GB', 'label' => '512 GB'], + ['value' => '1 TB', 'label' => '1 TB'], + ], + ], + [ + 'codigo' => 'memoria_ram', + 'nombre' => 'Memoria RAM', + 'options' => [ + ['value' => '4 GB', 'label' => '4 GB'], + ['value' => '8 GB', 'label' => '8 GB'], + ['value' => '16 GB', 'label' => '16 GB'], + ], + ], + [ + 'codigo' => 'rodado', + 'nombre' => 'Rodado', + 'options' => [ + ['value' => '16', 'label' => '16'], + ['value' => '26', 'label' => '26'], + ['value' => '29', 'label' => '29'], + ], + ], + ]; + + public function up(): void + { + if (! DB::table('tenants')->where('codigo', self::TENANT_CODE)->exists()) { + return; + } + + DB::transaction(function (): void { + foreach (self::ATTRIBUTES as $definition) { + $attributeId = $this->upsertAttribute($definition); + + DB::table('attribute_options')->where('attribute_id', $attributeId)->delete(); + + foreach ($definition['options'] as $index => $option) { + DB::table('attribute_options')->insert([ + 'attribute_id' => $attributeId, + 'value' => $option['value'], + 'label' => $option['label'], + 'sort_order' => $index + 1, + 'metadata' => isset($option['metadata']) + ? json_encode($option['metadata'], JSON_THROW_ON_ERROR) + : null, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } + }); + } + + public function down(): void + { + DB::table('attribute') + ->where('tenant_codigo', self::TENANT_CODE) + ->whereIn('codigo', array_column(self::ATTRIBUTES, 'codigo')) + ->delete(); + } + + /** @param array $definition */ + private function upsertAttribute(array $definition): int + { + $attributeId = DB::table('attribute') + ->where('tenant_codigo', self::TENANT_CODE) + ->where('codigo', $definition['codigo']) + ->value('id'); + $values = [ + 'nombre' => $definition['nombre'], + 'is_required' => false, + 'metadata_schema' => isset($definition['metadata_schema']) + ? json_encode($definition['metadata_schema'], JSON_THROW_ON_ERROR) + : null, + 'type' => 'select', + 'updated_at' => now(), + ]; + + if ($attributeId !== null) { + DB::table('attribute')->where('id', $attributeId)->update($values); + + return (int) $attributeId; + } + + return (int) DB::table('attribute')->insertGetId([ + 'tenant_codigo' => self::TENANT_CODE, + 'codigo' => $definition['codigo'], + ...$values, + 'created_at' => now(), + ]); + } +}; diff --git a/database/migrations/2026_09_24_030000_seed_mutual_smep_catalog.php b/database/migrations/2026_09_24_030000_seed_mutual_smep_catalog.php new file mode 100644 index 00000000..3ab824aa --- /dev/null +++ b/database/migrations/2026_09_24_030000_seed_mutual_smep_catalog.php @@ -0,0 +1,462 @@ + */ + private const FEATURED_GROUPS = [ + ['code' => 'smep-dormitorio-y-blanco', 'category' => 'Dormitorio y Blanco'], + ['code' => 'smep-electrodomesticos', 'category' => 'Electrodomésticos'], + ['code' => 'smep-climatizacion', 'category' => 'Climatización'], + ['code' => 'smep-tecnologia', 'category' => 'Tecnología'], + ['code' => 'smep-bicicletas-y-aire-libre', 'category' => 'Bicicletas y Aire Libre'], + ['code' => 'smep-bazar', 'category' => 'Bazar'], + ]; + + private const HIGHLIGHTED_GROUP_CODE = 'productos-destacados-smep'; + + private const CATEGORY_FEATURED_ITEM_LIMIT = 6; + + /** @var list */ + private const HIGHLIGHTED_PRODUCT_SLUGS = [ + 'acolchado-kavanagh-simil-plumon-reversible', + 'acolchado-sense-duo-bitono-corderito', + 'colchon-inducol-constanza', + 'edredon-lisboa-jean-cartier', + 'frazada-kavanagh-premium-soft', + 'kit-edredon-alaska-corderito', + 'motorola-g15', + 'smart-tv-noblex-50-dr50-x8500-google-tv', + 'heladera-gafa-hgf-368afp-330-lt-color-plata', + 'cafetera-express-atma-ceat-5418p-1-litro', + 'split-3300-w-tcl-taca-3300fcsa-frio-calor', + 'bicicleta-venzo-loki-r29-fd-21-v-shimano', + 'termo-stanley-1-l-adventure-go-to-con-tapon', + ]; + + /** @var list */ + private array $storedPaths = []; + + public function up(): void + { + if (! DB::table('tenants')->where('codigo', self::TENANT_CODE)->exists()) { + throw new RuntimeException("Tenant '".self::TENANT_CODE."' not found."); + } + + $manifest = $this->manifest(); + $slugs = array_column($manifest['items'], 'slug'); + $existingSlug = DB::table('catalog_items') + ->where('tenant_code', self::TENANT_CODE) + ->whereIn('slug', $slugs) + ->value('slug'); + + if ($existingSlug !== null) { + throw new RuntimeException("Catalog item '{$existingSlug}' already exists for Mutual SMEP."); + } + + try { + DB::transaction(function () use ($manifest): void { + $brandIds = []; + $categoryIds = []; + $attributeIds = []; + + foreach ($manifest['items'] as $order => $item) { + $brandId = $this->brandId($item['brand'], $brandIds); + $categoryId = $this->categoryId( + $item['parent_category'], + $item['category'], + $categoryIds, + ); + $hasVariants = $item['variants'] !== []; + $inventoryId = $hasVariants + ? null + : $this->createInventory((int) $item['stock']); + $catalogItemId = DB::table('catalog_items')->insertGetId([ + 'tenant_code' => self::TENANT_CODE, + 'category_id' => $categoryId, + 'brand_id' => $brandId, + 'inventory_id' => $inventoryId, + 'type' => 'standard', + 'slug' => $item['slug'], + 'nombre' => $item['name'], + 'group_order' => $order + 1, + 'descripcion' => $item['description'], + 'precio' => $item['price'], + 'inventory_policy' => 'tracked', + 'inventory_subject' => 'product', + 'has_tickets' => false, + ]); + + $this->attachImages($catalogItemId, null, $item['images']); + + if (! $hasVariants) { + continue; + } + + $itemAttributeIds = []; + foreach ($item['attribute_codes'] as $attributeOrder => $attributeCode) { + $attributeId = $this->attributeId($attributeCode, $attributeIds); + $itemAttributeIds[$attributeCode] = DB::table('item_attributes')->insertGetId([ + 'catalog_item_id' => $catalogItemId, + 'attribute_id' => $attributeId, + 'allow_multi_select' => false, + 'sort_order' => $attributeOrder + 1, + 'show_in_selector' => true, + 'ticket_label' => null, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + foreach ($item['variants'] as $variant) { + $variantId = DB::table('variantes')->insertGetId([ + 'catalog_item_id' => $catalogItemId, + 'inventory_id' => $this->createInventory((int) $variant['stock']), + 'descripcion' => $variant['description'], + 'precio' => $variant['price'], + ]); + + foreach ($variant['values'] as $attributeCode => $value) { + $itemAttributeId = $itemAttributeIds[$attributeCode] ?? null; + + if ($itemAttributeId === null) { + throw new RuntimeException( + "Attribute '{$attributeCode}' is not assigned to '{$item['slug']}'." + ); + } + + DB::table('variant_values')->insert([ + 'variant_id' => $variantId, + 'item_attribute_id' => $itemAttributeId, + 'value' => $value, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + $this->attachImages($catalogItemId, $variantId, $variant['images']); + } + } + + $this->createFeaturedGroups(); + }); + } catch (Throwable $throwable) { + Storage::disk('s3')->delete($this->storedPaths); + + throw $throwable; + } + } + + public function down(): void + { + $manifest = $this->manifest(); + $catalogItemIds = DB::table('catalog_items') + ->where('tenant_code', self::TENANT_CODE) + ->whereIn('slug', array_column($manifest['items'], 'slug')) + ->pluck('id'); + $variantInventoryIds = DB::table('variantes') + ->whereIn('catalog_item_id', $catalogItemIds) + ->pluck('inventory_id'); + $itemInventoryIds = DB::table('catalog_items') + ->whereIn('id', $catalogItemIds) + ->whereNotNull('inventory_id') + ->pluck('inventory_id'); + $attachmentIds = DB::table('catalog_items_attachments') + ->whereIn('catalog_item_id', $catalogItemIds) + ->pluck('attachment_id') + ->unique() + ->values(); + $storedPaths = DB::table('attachments') + ->whereIn('id', $attachmentIds) + ->where(fn ($query) => $query + ->where('path', 'like', self::STORAGE_PREFIX.'%') + ->orWhere('path', 'like', self::LEGACY_STORAGE_PREFIX.'%')) + ->pluck('path') + ->all(); + + DB::transaction(function () use ( + $catalogItemIds, + $variantInventoryIds, + $itemInventoryIds, + $attachmentIds, + ): void { + DB::table('featured_groups') + ->where('tenant_code', self::TENANT_CODE) + ->whereIn('code', [ + self::HIGHLIGHTED_GROUP_CODE, + ...array_column(self::FEATURED_GROUPS, 'code'), + ]) + ->delete(); + DB::table('catalog_items')->whereIn('id', $catalogItemIds)->delete(); + DB::table('inventories') + ->whereIn('id', $variantInventoryIds->merge($itemInventoryIds)->unique()) + ->delete(); + DB::table('attachments')->whereIn('id', $attachmentIds)->delete(); + DB::table('brands') + ->where('tenant_codigo', self::TENANT_CODE) + ->where('descripcion', self::BRAND_MARKER) + ->whereNotExists(fn ($query) => $query + ->selectRaw('1') + ->from('catalog_items') + ->whereColumn('catalog_items.brand_id', 'brands.id')) + ->delete(); + }); + + Storage::disk('s3')->delete($storedPaths); + } + + /** @return array */ + private function manifest(): array + { + $path = database_path(self::MANIFEST); + + if (! is_file($path)) { + throw new RuntimeException("Mutual SMEP catalog manifest not found: {$path}"); + } + + $manifest = json_decode( + (string) file_get_contents($path), + true, + flags: JSON_THROW_ON_ERROR, + ); + + if ( + ($manifest['version'] ?? null) !== 1 + || ($manifest['tenant_code'] ?? null) !== self::TENANT_CODE + || count($manifest['items'] ?? []) !== 142 + || ($manifest['image_count'] ?? null) !== 511 + ) { + throw new RuntimeException('Mutual SMEP catalog manifest is invalid.'); + } + + return $manifest; + } + + /** @param array $cache */ + private function brandId(?string $name, array &$cache): ?int + { + if ($name === null) { + return null; + } + + if (isset($cache[$name])) { + return $cache[$name]; + } + + $brandId = DB::table('brands') + ->where('tenant_codigo', self::TENANT_CODE) + ->where('nombre', $name) + ->value('id'); + + if ($brandId === null) { + $brandId = DB::table('brands')->insertGetId([ + 'tenant_codigo' => self::TENANT_CODE, + 'nombre' => $name, + 'descripcion' => self::BRAND_MARKER, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + return $cache[$name] = (int) $brandId; + } + + /** @param array $cache */ + private function categoryId(string $parentName, string $name, array &$cache): int + { + $key = "{$parentName}|{$name}"; + + if (isset($cache[$key])) { + return $cache[$key]; + } + + $parentId = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->where('nombre', $parentName) + ->whereNull('categoria_id') + ->value('id'); + $categoryId = $parentId === null + ? null + : DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->where('categoria_id', $parentId) + ->where('nombre', $name) + ->value('id'); + + if ($categoryId === null) { + throw new RuntimeException("Category '{$parentName} > {$name}' not found for Mutual SMEP."); + } + + return $cache[$key] = (int) $categoryId; + } + + /** @param array $cache */ + private function attributeId(string $code, array &$cache): int + { + if (isset($cache[$code])) { + return $cache[$code]; + } + + $attributeId = DB::table('attribute') + ->where('tenant_codigo', self::TENANT_CODE) + ->where('codigo', $code) + ->value('id'); + + if ($attributeId === null) { + throw new RuntimeException("Attribute '{$code}' not found for Mutual SMEP."); + } + + return $cache[$code] = (int) $attributeId; + } + + private function createInventory(int $stock): int + { + return (int) DB::table('inventories')->insertGetId([ + 'sold_units' => 0, + 'refunded_units' => 0, + 'reserved_stock' => 0, + 'real_stock' => $stock, + ]); + } + + private function createFeaturedGroups(): void + { + $this->createHighlightedGroup(); + + foreach (self::FEATURED_GROUPS as $order => $group) { + $categoryId = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->whereNull('categoria_id') + ->where('nombre', $group['category']) + ->value('id'); + + if ($categoryId === null) { + throw new RuntimeException("Parent category '{$group['category']}' not found for Mutual SMEP."); + } + + $featuredGroupId = DB::table('featured_groups')->insertGetId([ + 'tenant_code' => self::TENANT_CODE, + 'code' => $group['code'], + 'source_type' => 'manual', + 'category_id' => $categoryId, + 'product_layout' => 'column_with_image', + 'group_layout' => 'carousel', + 'group_name' => $group['category'], + 'group_order' => $order + 2, + ]); + + $catalogItemIds = DB::table('catalog_items') + ->join('categorias', 'categorias.id', '=', 'catalog_items.category_id') + ->where('catalog_items.tenant_code', self::TENANT_CODE) + ->where('categorias.tenant_code', self::TENANT_CODE) + ->where('categorias.categoria_id', $categoryId) + ->orderBy('catalog_items.group_order') + ->orderBy('catalog_items.id') + ->limit(self::CATEGORY_FEATURED_ITEM_LIMIT) + ->pluck('catalog_items.id'); + + foreach ($catalogItemIds as $itemOrder => $catalogItemId) { + DB::table('featured_items')->insert([ + 'featured_group_id' => $featuredGroupId, + 'catalog_item_id' => $catalogItemId, + 'order' => $itemOrder + 1, + ]); + } + } + } + + private function createHighlightedGroup(): void + { + $featuredGroupId = DB::table('featured_groups')->insertGetId([ + 'tenant_code' => self::TENANT_CODE, + 'code' => self::HIGHLIGHTED_GROUP_CODE, + 'source_type' => 'manual', + 'category_id' => null, + 'product_layout' => 'column_with_image', + 'group_layout' => 'carousel', + 'group_name' => 'Productos destacados', + 'group_order' => 1, + ]); + + $catalogItemIds = DB::table('catalog_items') + ->where('tenant_code', self::TENANT_CODE) + ->whereIn('slug', self::HIGHLIGHTED_PRODUCT_SLUGS) + ->pluck('id', 'slug'); + + foreach (self::HIGHLIGHTED_PRODUCT_SLUGS as $order => $slug) { + $catalogItemId = $catalogItemIds->get($slug); + + if ($catalogItemId === null) { + throw new RuntimeException("Highlighted product '{$slug}' not found for Mutual SMEP."); + } + + DB::table('featured_items')->insert([ + 'featured_group_id' => $featuredGroupId, + 'catalog_item_id' => $catalogItemId, + 'order' => $order + 1, + ]); + } + } + + /** @param list $images */ + private function attachImages(int $catalogItemId, ?int $variantId, array $images): void + { + foreach ($images as $order => $relativePath) { + $sourcePath = public_path($relativePath); + + if (! is_file($sourcePath)) { + throw new RuntimeException("Catalog image not found: {$sourcePath}"); + } + + $contents = file_get_contents($sourcePath); + if ($contents === false) { + throw new RuntimeException("Catalog image could not be read: {$sourcePath}"); + } + + $catalogRelativePath = Str::after( + str_replace('\\', '/', $relativePath), + 'images/tennants/mutual_smep/catalog/', + ); + $storedPath = self::STORAGE_PREFIX.$catalogRelativePath; + + if (! Storage::disk('s3')->put($storedPath, $contents)) { + throw new RuntimeException("Catalog image could not be stored: {$storedPath}"); + } + + $this->storedPaths[] = $storedPath; + $attachmentId = DB::table('attachments')->insertGetId([ + 'key' => (string) Str::uuid(), + 'path' => $storedPath, + 'filename' => basename($relativePath), + 'type' => 'image', + 'mime_type' => 'image/webp', + 'extension' => 'webp', + 'size' => strlen($contents), + 'created_at' => now(), + 'updated_at' => now(), + ]); + + DB::table('catalog_items_attachments')->insert([ + 'catalog_item_id' => $catalogItemId, + 'variant_id' => $variantId, + 'attachment_id' => $attachmentId, + 'orden' => $order, + 'is_enabled' => true, + ]); + } + } +}; diff --git a/database/migrations/2026_09_24_040000_seed_mutual_smep_carousel.php b/database/migrations/2026_09_24_040000_seed_mutual_smep_carousel.php new file mode 100644 index 00000000..8f686a2a --- /dev/null +++ b/database/migrations/2026_09_24_040000_seed_mutual_smep_carousel.php @@ -0,0 +1,140 @@ + */ + private const IMAGES = [ + '01-tecnologia.webp', + '02-hogar.webp', + '03-vida-activa.webp', + '04-descanso.webp', + ]; + + /** @var list */ + private array $storedPaths = []; + + public function up(): void + { + $tenant = DB::table('tenants') + ->where('codigo', self::TENANT_CODE) + ->first(['codigo', 'storefront_website_type_code']); + + if ($tenant === null) { + return; + } + + $extraId = DB::table('storefront_website_type_extras') + ->where('storefront_website_type_code', $tenant->storefront_website_type_code) + ->where('codigo', self::EXTRA_CODE) + ->value('id'); + + if ($extraId === null || DB::table('websites_extras')->where([ + 'website_code' => self::TENANT_CODE, + 'website_type_extra_id' => $extraId, + ])->exists()) { + return; + } + + try { + DB::transaction(function () use ($extraId): void { + $attachmentIds = []; + + foreach (self::IMAGES as $filename) { + $attachmentIds[] = $this->storeImage($filename); + } + + DB::table('websites_extras')->insert([ + 'website_code' => self::TENANT_CODE, + 'website_type_extra_id' => $extraId, + 'config' => json_encode($attachmentIds, JSON_THROW_ON_ERROR), + 'is_enabled' => true, + 'created_at' => now(), + 'updated_at' => now(), + ]); + }); + } catch (Throwable $throwable) { + Storage::disk('s3')->delete($this->storedPaths); + + throw $throwable; + } + } + + public function down(): void + { + $attachments = DB::table('attachments') + ->where('path', 'like', self::STORAGE_PREFIX.'%') + ->get(['id', 'path']); + + if ($attachments->isEmpty()) { + return; + } + + $attachmentIds = $attachments->pluck('id')->map(fn ($id): int => (int) $id)->all(); + $extraId = DB::table('storefront_website_type_extras') + ->where('storefront_website_type_code', 'shopit') + ->where('codigo', self::EXTRA_CODE) + ->value('id'); + + DB::transaction(function () use ($attachmentIds, $extraId): void { + if ($extraId !== null) { + DB::table('websites_extras') + ->where('website_code', self::TENANT_CODE) + ->where('website_type_extra_id', $extraId) + ->where('config', json_encode($attachmentIds, JSON_THROW_ON_ERROR)) + ->delete(); + } + + DB::table('attachments')->whereIn('id', $attachmentIds)->delete(); + }); + + Storage::disk('s3')->delete($attachments->pluck('path')->all()); + } + + private function storeImage(string $filename): int + { + $sourcePath = public_path(self::IMAGE_DIRECTORY."/{$filename}"); + + if (! is_file($sourcePath)) { + throw new RuntimeException("Carousel image not found: {$sourcePath}"); + } + + $contents = file_get_contents($sourcePath); + + if ($contents === false) { + throw new RuntimeException("Carousel image could not be read: {$sourcePath}"); + } + + $storedPath = self::STORAGE_PREFIX.$filename; + + if (! Storage::disk('s3')->put($storedPath, $contents)) { + throw new RuntimeException("Carousel image could not be stored: {$storedPath}"); + } + + $this->storedPaths[] = $storedPath; + + return (int) DB::table('attachments')->insertGetId([ + 'key' => (string) Str::uuid(), + 'path' => $storedPath, + 'filename' => $filename, + 'type' => 'image', + 'mime_type' => 'image/webp', + 'extension' => 'webp', + 'size' => strlen($contents), + 'created_at' => now(), + 'updated_at' => now(), + ]); + } +}; diff --git a/database/migrations/2026_09_24_050000_limit_mutual_smep_category_featured_groups.php b/database/migrations/2026_09_24_050000_limit_mutual_smep_category_featured_groups.php new file mode 100644 index 00000000..0e7f9762 --- /dev/null +++ b/database/migrations/2026_09_24_050000_limit_mutual_smep_category_featured_groups.php @@ -0,0 +1,88 @@ + */ + private const GROUPS = [ + 'smep-dormitorio-y-blanco' => 'Dormitorio y Blanco', + 'smep-electrodomesticos' => 'Electrodomésticos', + 'smep-climatizacion' => 'Climatización', + 'smep-tecnologia' => 'Tecnología', + 'smep-bicicletas-y-aire-libre' => 'Bicicletas y Aire Libre', + 'smep-bazar' => 'Bazar', + ]; + + public function up(): void + { + foreach (array_keys(self::GROUPS) as $code) { + $groupId = DB::table('featured_groups') + ->where('tenant_code', self::TENANT_CODE) + ->where('code', $code) + ->value('id'); + + if ($groupId === null) { + continue; + } + + $keptItemIds = DB::table('featured_items') + ->where('featured_group_id', $groupId) + ->orderBy('order') + ->orderBy('id') + ->limit(self::ITEM_LIMIT) + ->pluck('id'); + + DB::table('featured_items') + ->where('featured_group_id', $groupId) + ->when( + $keptItemIds->isNotEmpty(), + fn ($query) => $query->whereNotIn('id', $keptItemIds), + ) + ->delete(); + } + } + + public function down(): void + { + foreach (self::GROUPS as $code => $parentCategoryName) { + $groupId = DB::table('featured_groups') + ->where('tenant_code', self::TENANT_CODE) + ->where('code', $code) + ->value('id'); + $parentCategoryId = DB::table('categorias') + ->where('tenant_code', self::TENANT_CODE) + ->whereNull('categoria_id') + ->where('nombre', $parentCategoryName) + ->value('id'); + + if ($groupId === null || $parentCategoryId === null) { + continue; + } + + $catalogItemIds = DB::table('catalog_items') + ->join('categorias', 'categorias.id', '=', 'catalog_items.category_id') + ->where('catalog_items.tenant_code', self::TENANT_CODE) + ->where('categorias.tenant_code', self::TENANT_CODE) + ->where('categorias.categoria_id', $parentCategoryId) + ->orderBy('catalog_items.group_order') + ->orderBy('catalog_items.id') + ->pluck('catalog_items.id'); + + DB::table('featured_items')->where('featured_group_id', $groupId)->delete(); + + foreach ($catalogItemIds as $order => $catalogItemId) { + DB::table('featured_items')->insert([ + 'featured_group_id' => $groupId, + 'catalog_item_id' => $catalogItemId, + 'order' => $order + 1, + ]); + } + } + } +}; diff --git a/database/migrations/2026_09_24_060000_optimize_mutual_smep_catalog_images.php b/database/migrations/2026_09_24_060000_optimize_mutual_smep_catalog_images.php new file mode 100644 index 00000000..d419d627 --- /dev/null +++ b/database/migrations/2026_09_24_060000_optimize_mutual_smep_catalog_images.php @@ -0,0 +1,112 @@ +attachments(self::LEGACY_PREFIX); + $uploadedPaths = []; + + try { + foreach ($attachments as $attachment) { + $relativePath = Str::after($attachment->path, self::LEGACY_PREFIX); + $localPath = public_path(self::LOCAL_PREFIX.$relativePath); + + if (! is_file($localPath)) { + throw new RuntimeException("Optimized catalog image not found: {$localPath}"); + } + + $contents = file_get_contents($localPath); + if ($contents === false) { + throw new RuntimeException("Optimized catalog image could not be read: {$localPath}"); + } + + $optimizedPath = self::OPTIMIZED_PREFIX.$relativePath; + if (! Storage::disk('s3')->put($optimizedPath, $contents)) { + throw new RuntimeException("Optimized catalog image could not be stored: {$optimizedPath}"); + } + + $uploadedPaths[] = $optimizedPath; + $attachment->optimized_path = $optimizedPath; + $attachment->optimized_size = strlen($contents); + } + + DB::transaction(function () use ($attachments): void { + foreach ($attachments as $attachment) { + DB::table('attachments')->where('id', $attachment->id)->update([ + 'path' => $attachment->optimized_path, + 'size' => $attachment->optimized_size, + 'updated_at' => now(), + ]); + } + }); + } catch (Throwable $throwable) { + Storage::disk('s3')->delete($uploadedPaths); + + throw $throwable; + } + } + + public function down(): void + { + $attachments = $this->attachments(self::OPTIMIZED_PREFIX) + ->filter(function (object $attachment): bool { + $relativePath = Str::after($attachment->path, self::OPTIMIZED_PREFIX); + $legacyPath = self::LEGACY_PREFIX.$relativePath; + + if (! Storage::disk('s3')->exists($legacyPath)) { + return false; + } + + $attachment->legacy_path = $legacyPath; + $attachment->legacy_size = Storage::disk('s3')->size($legacyPath); + + return true; + }) + ->values(); + + DB::transaction(function () use ($attachments): void { + foreach ($attachments as $attachment) { + DB::table('attachments')->where('id', $attachment->id)->update([ + 'path' => $attachment->legacy_path, + 'size' => $attachment->legacy_size, + 'updated_at' => now(), + ]); + } + }); + + Storage::disk('s3')->delete($attachments->pluck('path')->all()); + } + + private function attachments(string $prefix): Collection + { + return DB::table('attachments') + ->join( + 'catalog_items_attachments', + 'catalog_items_attachments.attachment_id', + '=', + 'attachments.id', + ) + ->join('catalog_items', 'catalog_items.id', '=', 'catalog_items_attachments.catalog_item_id') + ->where('catalog_items.tenant_code', self::TENANT_CODE) + ->where('attachments.path', 'like', $prefix.'%') + ->select('attachments.id', 'attachments.path', 'attachments.size') + ->distinct() + ->orderBy('attachments.id') + ->get(); + } +}; diff --git a/database/scripts/build_mutual_smep_catalog_assets.php b/database/scripts/build_mutual_smep_catalog_assets.php new file mode 100644 index 00000000..c9bc6f98 --- /dev/null +++ b/database/scripts/build_mutual_smep_catalog_assets.php @@ -0,0 +1,311 @@ + preg_match('/^(Frazada|Manta)/iu', $name) + ? ['Dormitorio y Blanco', 'Frazadas y Mantas'] + : ['Dormitorio y Blanco', 'Acolchados y Edredones'], + 'acolchados-y-sabanas-infantil' => ['Dormitorio y Blanco', 'Infantil y Cuna'], + 'base-sommier-1-pl-0-80x1-90', 'base-sommier-2-pl-1-40x1-90' => ['Dormitorio y Blanco', 'Bases y Sommiers'], + 'colchon-1-plaza-0-80x1-90', 'colchon-2-plazas-1-40x1-90' => str_starts_with(mb_strtolower($name), 'soporte') + ? ['Tecnología', 'Soportes para TV'] + : ['Dormitorio y Blanco', 'Colchones'], + 'aires-acondicionados' => ['Climatización', 'Aires Acondicionados'], + 'calefaccion-con-salida-al-ext' => ['Climatización', 'Calefactores a Gas con Salida'], + 'calefactor-sin-salida-al-ext' => ['Climatización', 'Calefactores a Gas sin Salida'], + 'calefaccion-electrica' => ['Climatización', 'Calefacción Eléctrica'], + 'calefones-y-termotanques' => ['Electrodomésticos', 'Calefones y Termotanques'], + 'heladeras' => ['Electrodomésticos', 'Heladeras'], + 'lavarropas-automaticos' => ['Electrodomésticos', 'Lavarropas y Secarropas'], + 'cocinas' => ['Electrodomésticos', 'Cocinas'], + 'purificador-de-aire' => ['Electrodomésticos', 'Purificadores y Extractores de Cocina'], + 'microondas-y-hornos-electricos' => str_starts_with(mb_strtolower($name), 'horno') + ? ['Electrodomésticos', 'Hornos Eléctricos'] + : ['Electrodomésticos', 'Microondas'], + 'electrodomesticos-pequenos' => smallApplianceCategory($name), + 'celulares' => ['Tecnología', 'Celulares'], + 'notebooks-y-tablets' => ['Tecnología', 'Notebooks'], + 'smart-tv' => str_starts_with(mb_strtolower($name), 'soporte') + ? ['Tecnología', 'Soportes para TV'] + : ['Tecnología', 'Smart TV'], + 'tecnologia' => preg_match('/^(Mouse|Teclado)/iu', $name) + ? ['Tecnología', 'Accesorios de Computación'] + : ['Tecnología', 'Audio'], + 'bicicletas' => preg_match('/\bR16\b/iu', $name) + ? ['Bicicletas y Aire Libre', 'Bicicletas Infantiles'] + : ['Bicicletas y Aire Libre', 'Bicicletas para Adultos'], + 'piletas' => ['Bicicletas y Aire Libre', 'Piletas'], + 'bazar' => ['Bazar', 'Termos'], + default => throw new RuntimeException("Unmapped source category: {$source}"), + }; +} + +/** @return array{0: string, 1: string} */ +function smallApplianceCategory(string $name): array +{ + return match (true) { + preg_match('/^(Cafetera|Pava eléctrica|Tostadora)/iu', $name) === 1 => ['Electrodomésticos', 'Café y Desayuno'], + preg_match('/^(Freidora|Waflera|Pochoclera)/iu', $name) === 1 => ['Electrodomésticos', 'Freidoras y Cocción'], + preg_match('/^(Secador|Cortacabello|Cortabarba)/iu', $name) === 1 => ['Electrodomésticos', 'Cuidado Personal'], + preg_match('/^(Lustraspiradora|Plancha)/iu', $name) === 1 => ['Electrodomésticos', 'Limpieza y Planchado'], + default => ['Electrodomésticos', 'Preparación de Alimentos'], + }; +} + +function productBrand(string $name): ?string +{ + if (preg_match('/\bJC\b/u', $name)) { + return 'Jean Cartier'; + } + + if (mb_stripos($name, 'Liliana') !== false) { + return 'Liliana'; + } + + foreach ([ + 'Rosario Central', 'Jean Cartier', 'King Koil', 'Fire Bird', 'Xtrike Me', + 'Whitenblack', 'Electrolux', 'Kavanagh', 'Pelopincho', 'Suavegom', + 'Motorola', 'Samsung', 'Xiaomi', 'Moulinex', 'Peabody', 'Philips', + 'Florencia', 'Kohinoor', 'Inducol', 'Longvie', 'Stanley', 'Noblex', + 'Moonki', 'Lenovo', 'Piero', 'Eskabe', 'Oster', 'Drean', 'Gafa', 'Atma', + 'Spar', 'Stark', 'Venzo', 'Havit', 'Acer', 'ASUS', 'MSI', 'Philco', + 'Gama', 'GIGO', 'Ross', 'Nakan', 'TCL', 'BGH', 'JBL', 'TST', 'GBS', 'BLU', + ] as $brand) { + if (mb_stripos($name, $brand) !== false) { + return $brand; + } + } + + return null; +} + +/** @return array{key: string, name: string, values: array}|null */ +function variantGroup(string $name): ?array +{ + $measure = bedMeasureValue($name); + $groups = [ + '/(?:Kavanagh.*[Ss][ií]mil plumón reversible|[Ss][ií]mil plumón reversible.*Kavanagh)/iu' => ['acolchado-kavanagh-simil-plumon-reversible', 'Acolchado Kavanagh Símil Plumón Reversible'], + '/Edredón.*Lisboa/iu' => ['edredon-lisboa-jean-cartier', 'Edredón Lisboa Jean Cartier'], + '/Sense Dúo Bitono con corderito/iu' => ['acolchado-sense-duo-bitono-corderito', 'Acolchado Sense Dúo Bitono con Corderito'], + '/Frazada polar.*Kavanagh Premium Soft/iu' => ['frazada-kavanagh-premium-soft', 'Frazada Kavanagh Premium Soft'], + '/Kit Edredón.*Alaska.*corderito/iu' => ['kit-edredon-alaska-corderito', 'Kit Edredón Alaska con Corderito'], + '/Colch[oó]n Inducol Constanza/iu' => ['colchon-inducol-constanza', 'Colchón Inducol Constanza'], + ]; + + foreach ($groups as $pattern => [$key, $itemName]) { + if ($measure !== null && preg_match($pattern, $name)) { + return [ + 'key' => $key, + 'name' => $itemName, + 'values' => ['medida_cama' => $measure], + ]; + } + } + + if (preg_match('/Motorola G15\s+4\/(256|512)\s*GB/iu', $name, $match)) { + return [ + 'key' => 'motorola-g15', + 'name' => 'Motorola G15', + 'values' => [ + 'memoria_ram' => '4 GB', + 'almacenamiento' => "{$match[1]} GB", + ], + ]; + } + + return null; +} + +function bedMeasureValue(string $name): ?string +{ + return match (true) { + preg_match('/\bcuna\b/iu', $name) === 1 => 'Cuna', + preg_match('/\bKing\b/iu', $name) === 1 => 'King', + preg_match('/\bQueen\b/iu', $name) === 1 => 'Queen', + preg_match('/2\s*1\/2\s*pl/iu', $name) === 1 => '2 1/2 Plazas', + preg_match('/1\s*1\/2\s*pl/iu', $name) === 1 => '1 1/2 Plazas', + preg_match('/1[,.]40\s*x?\s*1[,.]90|140x190|140x24/iu', $name) === 1 => '2 Plazas', + preg_match('/0[,.](80|90)\s*x?\s*1[,.]90|080x|090x|0,8x/iu', $name) === 1 => '1 Plaza', + default => null, + }; +} + +function compressCatalogImage(string $source, string $destination): void +{ + $sourceImage = @imagecreatefromjpeg($source); + if ($sourceImage === false) { + throw new RuntimeException("Unable to read JPEG image: {$source}"); + } + + $width = imagesx($sourceImage); + $height = imagesy($sourceImage); + $scale = min(1, CATALOG_IMAGE_MAX_DIMENSION / max($width, $height)); + $targetWidth = max(1, (int) round($width * $scale)); + $targetHeight = max(1, (int) round($height * $scale)); + $targetImage = imagecreatetruecolor($targetWidth, $targetHeight); + + if ($targetImage === false) { + throw new RuntimeException("Unable to allocate image: {$source}"); + } + + imagefill($targetImage, 0, 0, imagecolorallocate($targetImage, 255, 255, 255)); + imagecopyresampled( + $targetImage, + $sourceImage, + 0, + 0, + 0, + 0, + $targetWidth, + $targetHeight, + $width, + $height, + ); + + $destinationDirectory = dirname($destination); + if (! is_dir($destinationDirectory) && ! mkdir($destinationDirectory, 0777, true) && ! is_dir($destinationDirectory)) { + throw new RuntimeException("Unable to create directory: {$destinationDirectory}"); + } + + if (! imagewebp($targetImage, $destination, CATALOG_IMAGE_WEBP_QUALITY)) { + throw new RuntimeException("Unable to write WebP image: {$destination}"); + } +} + +$rawProducts = []; +$jsonFiles = glob($sourceRoot.'\\*\\*.json') ?: []; +sort($jsonFiles); + +foreach ($jsonFiles as $jsonFile) { + $data = json_decode((string) file_get_contents($jsonFile), true, flags: JSON_THROW_ON_ERROR); + $sourceCategory = (string) $data['categoria']['slug']; + + foreach ($data['productos'] as $product) { + [$parentCategory, $category] = catalogDestination($sourceCategory, $product['nombre']); + $images = []; + + foreach ($product['imagenes'] as $relativeImage) { + $sourceImage = dirname($jsonFile).'/'.str_replace('/', DIRECTORY_SEPARATOR, $relativeImage); + $basename = pathinfo($relativeImage, PATHINFO_FILENAME).'.webp'; + $publicRelativePath = "images/tennants/mutual_smep/catalog/{$sourceCategory}/{$basename}"; + $destination = $projectRoot.'/public/'.$publicRelativePath; + compressCatalogImage($sourceImage, $destination); + $images[] = $publicRelativePath; + } + + $rawProducts[] = [ + 'source_slug' => $product['slug'], + 'name' => $product['nombre'], + 'description' => $product['descripcion'] ?? null, + 'price' => (float) $product['precio']['importe'], + 'brand' => productBrand($product['nombre']), + 'parent_category' => $parentCategory, + 'category' => $category, + 'images' => $images, + 'variant_group' => variantGroup($product['nombre']), + ]; + } +} + +$items = []; + +foreach ($rawProducts as $product) { + $group = $product['variant_group']; + + if ($group === null) { + $items[$product['source_slug']] = [ + 'slug' => $product['source_slug'], + 'name' => $product['name'], + 'description' => $product['description'], + 'price' => $product['price'], + 'stock' => $defaultStock, + 'brand' => $product['brand'], + 'parent_category' => $product['parent_category'], + 'category' => $product['category'], + 'images' => $product['images'], + 'attribute_codes' => [], + 'variants' => [], + ]; + + continue; + } + + $key = $group['key']; + if (! isset($items[$key])) { + $items[$key] = [ + 'slug' => $key, + 'name' => $group['name'], + 'description' => $product['description'], + 'price' => $product['price'], + 'stock' => null, + 'brand' => $product['brand'], + 'parent_category' => $product['parent_category'], + 'category' => $product['category'], + 'images' => [], + 'attribute_codes' => [], + 'variants' => [], + ]; + } + + $items[$key]['price'] = min($items[$key]['price'], $product['price']); + $items[$key]['description'] ??= $product['description']; + $items[$key]['brand'] ??= $product['brand']; + $items[$key]['attribute_codes'] = array_values(array_unique([ + ...$items[$key]['attribute_codes'], + ...array_keys($group['values']), + ])); + $items[$key]['variants'][] = [ + 'source_slug' => $product['source_slug'], + 'description' => $product['description'], + 'price' => $product['price'], + 'stock' => $defaultStock, + 'values' => $group['values'], + 'images' => $product['images'], + ]; +} + +ksort($items); + +$manifest = [ + 'version' => 1, + 'tenant_code' => 'mutual_smep', + 'default_stock' => $defaultStock, + 'source_product_count' => count($rawProducts), + 'catalog_item_count' => count($items), + 'image_count' => array_sum(array_map(fn (array $product): int => count($product['images']), $rawProducts)), + 'items' => array_values($items), +]; + +$manifestDirectory = dirname($manifestPath); +if (! is_dir($manifestDirectory) && ! mkdir($manifestDirectory, 0777, true) && ! is_dir($manifestDirectory)) { + throw new RuntimeException("Unable to create directory: {$manifestDirectory}"); +} + +file_put_contents( + $manifestPath, + json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_THROW_ON_ERROR).PHP_EOL, +); + +echo json_encode([ + 'manifest' => $manifestPath, + 'source_products' => count($rawProducts), + 'catalog_items' => count($items), + 'images' => $manifest['image_count'], +], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), PHP_EOL; diff --git a/database/seeders/AttributeSeeder.php b/database/seeders/AttributeSeeder.php index f19e67bd..142d8b10 100644 --- a/database/seeders/AttributeSeeder.php +++ b/database/seeders/AttributeSeeder.php @@ -3,10 +3,10 @@ namespace Database\Seeders; use App\Domains\Commerce\Catalog\Models\Attribute; -use App\Shared\Enums\FieldType; use App\Domains\Core\Tenant\Models\Tenant; use App\Domains\Ticketing\Ticket\Enums\ValidityTimeType; use App\Domains\Ticketing\Ticket\Models\ValidityTime; +use App\Shared\Enums\FieldType; use Illuminate\Database\Seeder; class AttributeSeeder extends Seeder @@ -25,6 +25,10 @@ class AttributeSeeder extends Seeder continue; } + if ($tenant->codigo === 'mutual_smep') { + continue; + } + $this->seedAttribute($tenant, [ 'codigo' => 'color', 'nombre' => 'Color', diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index b5be6dc1..e1185e3a 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -29,7 +29,9 @@ class DatabaseSeeder extends Seeder TenantSeeder::class, DesfilePuraTendenciaSeeder::class, AttributeSeeder::class, + MutualSmepAttributeSeeder::class, CategorySeeder::class, + MutualSmepCategorySeeder::class, BrandSeeder::class, ProductCatalogFromImagesSeeder::class, FiestaFutbolInfantilProductSeeder::class, diff --git a/database/seeders/MenuSeeder.php b/database/seeders/MenuSeeder.php index c589f7a2..25a61dcb 100644 --- a/database/seeders/MenuSeeder.php +++ b/database/seeders/MenuSeeder.php @@ -296,6 +296,7 @@ class MenuSeeder extends Seeder $helpTenantCodes = [ 'sonder', 'fiesta_futbol_infantil', + 'mutual_smep', ]; $ticketAdminMenuCodes = [ 'adminapp.tickets', @@ -365,6 +366,42 @@ class MenuSeeder extends Seeder ], ], ]; + $mutualSmepFrequentlyAskedQuestions = [ + [ + 'pregunta' => '¿Hay algún límite de compra?', + 'respuesta' => 'La cantidad disponible depende del stock de cada producto.', + 'is_active' => true, + ], + [ + 'pregunta' => '¿Cuáles son los medios de pago disponibles?', + 'respuesta' => 'Podés consultar y seleccionar los medios de pago habilitados al finalizar tu compra.', + 'is_active' => false, + ], + [ + 'pregunta' => '¿Cómo puedo recibir asesoramiento antes de comprar?', + 'respuesta' => 'Podés comunicarte con Mutual SMEP por WhatsApp al +54 9 341 247-4530.', + 'is_active' => false, + ], + ]; + $mutualSmepContactContent = [ + 'whatsapp' => [ + 'whatsapp_url' => 'https://wa.me/5493412474530', + 'whatsapp_label' => 'Chateá con Mutual SMEP', + ], + 'phone' => '+54 9 341 247-4530', + 'locations' => [ + 'rosario' => [ + 'label' => 'Rosario', + 'addresses' => [ + [ + 'label' => 'Mutual SMEP', + 'address' => 'San Lorenzo 1543, Rosario, Santa Fe', + 'coordinates' => [-32.9431184, -60.6437991], + ], + ], + ], + ], + ]; foreach ($tenants as $tenant) { $menuCodes = $allMenus; @@ -406,10 +443,14 @@ class MenuSeeder extends Seeder if (in_array($tenant->codigo, $helpTenantCodes, true)) { $tenant->menues()->updateExistingPivot('help.faq', [ - 'static_content' => $frequentlyAskedQuestions, + 'static_content' => $tenant->codigo === 'mutual_smep' + ? $mutualSmepFrequentlyAskedQuestions + : $frequentlyAskedQuestions, ]); $tenant->menues()->updateExistingPivot('help.contact', [ - 'static_content' => $contactContent, + 'static_content' => $tenant->codigo === 'mutual_smep' + ? $mutualSmepContactContent + : $contactContent, ]); } } diff --git a/database/seeders/MutualSmepAttributeSeeder.php b/database/seeders/MutualSmepAttributeSeeder.php new file mode 100644 index 00000000..9b6d0cae --- /dev/null +++ b/database/seeders/MutualSmepAttributeSeeder.php @@ -0,0 +1,122 @@ +> */ + private const ATTRIBUTES = [ + [ + 'codigo' => 'color', + 'nombre' => 'Color', + 'metadata_schema' => [ + 'hex' => ['type' => 'string'], + ], + 'options' => [ + ['value' => 'Negro', 'label' => 'Negro', 'metadata' => ['hex' => '#000000']], + ['value' => 'Blanco', 'label' => 'Blanco', 'metadata' => ['hex' => '#FFFFFF']], + ['value' => 'Gris', 'label' => 'Gris', 'metadata' => ['hex' => '#808080']], + ['value' => 'Plata', 'label' => 'Plata', 'metadata' => ['hex' => '#C0C0C0']], + ['value' => 'Azul', 'label' => 'Azul', 'metadata' => ['hex' => '#0000FF']], + ['value' => 'Rojo', 'label' => 'Rojo', 'metadata' => ['hex' => '#DC3545']], + ['value' => 'Rosa', 'label' => 'Rosa', 'metadata' => ['hex' => '#FFC0CB']], + ['value' => 'Multicolor', 'label' => 'Multicolor'], + ], + ], + [ + 'codigo' => 'medida_cama', + 'nombre' => 'Medida', + 'options' => [ + ['value' => 'Cuna', 'label' => 'Cuna'], + ['value' => '1 Plaza', 'label' => '1 Plaza'], + ['value' => '1 1/2 Plazas', 'label' => '1 1/2 Plazas'], + ['value' => '2 Plazas', 'label' => '2 Plazas'], + ['value' => '2 1/2 Plazas', 'label' => '2 1/2 Plazas'], + ['value' => 'Queen', 'label' => 'Queen'], + ['value' => 'King', 'label' => 'King'], + ], + ], + [ + 'codigo' => 'almacenamiento', + 'nombre' => 'Almacenamiento', + 'options' => [ + ['value' => '128 GB', 'label' => '128 GB'], + ['value' => '256 GB', 'label' => '256 GB'], + ['value' => '512 GB', 'label' => '512 GB'], + ['value' => '1 TB', 'label' => '1 TB'], + ], + ], + [ + 'codigo' => 'memoria_ram', + 'nombre' => 'Memoria RAM', + 'options' => [ + ['value' => '4 GB', 'label' => '4 GB'], + ['value' => '8 GB', 'label' => '8 GB'], + ['value' => '16 GB', 'label' => '16 GB'], + ], + ], + [ + 'codigo' => 'rodado', + 'nombre' => 'Rodado', + 'options' => [ + ['value' => '16', 'label' => '16'], + ['value' => '26', 'label' => '26'], + ['value' => '29', 'label' => '29'], + ], + ], + ]; + + public function run(): void + { + if (! Tenant::query()->where('codigo', self::TENANT_CODE)->exists()) { + return; + } + + DB::transaction(function (): void { + foreach (self::ATTRIBUTES as $definition) { + $options = $definition['options']; + unset($definition['options']); + + $attribute = Attribute::query()->updateOrCreate( + [ + 'tenant_codigo' => self::TENANT_CODE, + 'codigo' => $definition['codigo'], + ], + [ + ...$definition, + 'type' => FieldType::Select->value, + 'is_required' => false, + 'metadata_schema' => $definition['metadata_schema'] ?? null, + ], + ); + + $attribute->options()->delete(); + $attribute->options()->createMany( + collect($options) + ->values() + ->map(fn (array $option, int $index): array => [ + ...$option, + 'sort_order' => $index + 1, + ]) + ->all() + ); + } + }); + } + + public function down(): void + { + Attribute::query() + ->where('tenant_codigo', self::TENANT_CODE) + ->whereIn('codigo', array_column(self::ATTRIBUTES, 'codigo')) + ->delete(); + } +} diff --git a/database/seeders/MutualSmepCategorySeeder.php b/database/seeders/MutualSmepCategorySeeder.php new file mode 100644 index 00000000..8b820607 --- /dev/null +++ b/database/seeders/MutualSmepCategorySeeder.php @@ -0,0 +1,123 @@ +> */ + private const CATEGORIES = [ + 'Dormitorio y Blanco' => [ + 'Colchones', + 'Bases y Sommiers', + 'Acolchados y Edredones', + 'Frazadas y Mantas', + 'Infantil y Cuna', + ], + 'Electrodomésticos' => [ + 'Heladeras', + 'Lavarropas y Secarropas', + 'Cocinas', + 'Microondas', + 'Hornos Eléctricos', + 'Calefones y Termotanques', + 'Purificadores y Extractores de Cocina', + 'Preparación de Alimentos', + 'Café y Desayuno', + 'Freidoras y Cocción', + 'Cuidado Personal', + 'Limpieza y Planchado', + ], + 'Climatización' => [ + 'Aires Acondicionados', + 'Calefactores a Gas con Salida', + 'Calefactores a Gas sin Salida', + 'Calefacción Eléctrica', + ], + 'Tecnología' => [ + 'Celulares', + 'Notebooks', + 'Smart TV', + 'Audio', + 'Accesorios de Computación', + 'Soportes para TV', + ], + 'Bicicletas y Aire Libre' => [ + 'Bicicletas Infantiles', + 'Bicicletas para Adultos', + 'Piletas', + ], + 'Bazar' => [ + 'Termos', + ], + ]; + + public function run(): void + { + if (! Tenant::query()->where('codigo', self::TENANT_CODE)->exists()) { + return; + } + + DB::transaction(function (): void { + foreach (self::CATEGORIES as $parentName => $subcategoryNames) { + $parent = Category::query()->updateOrCreate( + [ + 'tenant_code' => self::TENANT_CODE, + 'nombre' => $parentName, + ], + [ + 'categoria_id' => null, + 'is_enabled' => true, + ], + ); + + foreach ($subcategoryNames as $subcategoryName) { + Category::query()->updateOrCreate( + [ + 'tenant_code' => self::TENANT_CODE, + 'nombre' => $subcategoryName, + ], + [ + 'categoria_id' => $parent->id, + 'is_enabled' => true, + ], + ); + } + } + }); + } + + public function down(): void + { + DB::transaction(function (): void { + foreach (self::CATEGORIES as $parentName => $subcategoryNames) { + $parent = Category::query() + ->where('tenant_code', self::TENANT_CODE) + ->where('nombre', $parentName) + ->whereNull('categoria_id') + ->first(); + + if (! $parent instanceof Category) { + continue; + } + + Category::query() + ->where('tenant_code', self::TENANT_CODE) + ->where('categoria_id', $parent->id) + ->whereIn('nombre', $subcategoryNames) + ->whereDoesntHave('subCategories') + ->delete(); + + if (! $parent->subCategories()->exists()) { + $parent->delete(); + } + } + }); + } +} diff --git a/docs/informe-carga-catalogo-mutual-smep.md b/docs/informe-carga-catalogo-mutual-smep.md new file mode 100644 index 00000000..34c57e67 --- /dev/null +++ b/docs/informe-carga-catalogo-mutual-smep.md @@ -0,0 +1,368 @@ +# Informe de carga del catálogo de Mutual SMEP + +## Resumen ejecutivo + +- Fuente analizada: `C:\Users\ncoronel\Documents\catalogo_smep_limpio`. +- Registros de producto: **150**. +- Imágenes asociadas: **511**. +- Resultado propuesto: **142 ítems de catálogo**. +- Registros absorbidos como variantes: **15**. +- Stock inicial transitorio: **10 unidades por producto o variante**. +- Productos sin descripción de origen: **104**. +- Productos con marca no identificable de forma segura: **1**. + +## Criterio de representación en Shopit + +Cada registro se carga bajo el tenant `mutual_smep`. Los productos físicos utilizan `type=standard`, `inventory_policy=tracked`, `has_tickets=false` e inventario inicial de 10 unidades. Las imágenes se convierten en attachments y conservan el orden del JSON. + +Un registro marcado como **Producto simple** genera un `catalog_item` con inventario directo. Un registro marcado como **Variante** se integra en el ítem indicado y genera una variante con precio, inventario e imágenes propios. Los datos técnicos detectados en productos simples permanecen en el nombre o la descripción: no se transforman en selectores cuando el comprador no tiene una alternativa real para elegir. + +Los precios se toman literalmente del JSON. No se inventan SKU, códigos de barras, costos ni stock real. El stock 10 es deliberadamente provisional. + +Para los ítems agrupados, el precio base del `catalog_item` será el menor precio de sus variantes y cada variante conservará el precio exacto de su registro original. De este modo, la tarjeta del catálogo podrá mostrar el precio inicial sin perder las diferencias entre medidas o configuraciones. + +## Orden recomendado de carga + +1. Confirmar que existan el tenant, las categorías, las subcategorías y los cinco atributos de SMEP. +2. Crear o actualizar las marcas identificadas en este informe. +3. Crear primero los productos simples, sus inventarios con `real_stock=10` y sus imágenes. +4. Crear los productos agrupados, asociar sus atributos y generar una variante por cada registro indicado. +5. Crear un inventario independiente con `real_stock=10` para cada variante. +6. Subir cada imagen al almacenamiento del tenant y asociarla al producto o variante correspondiente, respetando el orden del JSON. +7. Crear el grupo paginado general del catálogo y seleccionar los productos destacados en una operación posterior. + +La importación debe ejecutarse dentro de una transacción para los datos de catálogo. Los archivos subidos deben registrarse para poder eliminarlos si la operación falla, dado que el almacenamiento de objetos no participa de la transacción de base de datos. + +## Marcas que deberían existir para la importación + +Acer, ASUS, Atma, BGH, BLU, Drean, Electrolux, Eskabe, Fire Bird, Florencia, Gafa, Gama, GBS, GIGO, Havit, Inducol, JBL, Jean Cartier, Kavanagh, King Koil, Kohinoor, Lenovo, Liliana, Longvie, Moonki, Motorola, Moulinex, MSI, Nakan, Noblex, Oster, Peabody, Pelopincho, Philco, Philips, Piero, Ross, Samsung, Spar, Stanley, Stark, Suavegom, TCL, Venzo, Whitenblack, Xiaomi, Xtrike Me. + +## Detalle producto por producto + +### Bazar → Termos + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 1 | Termo Stanley 1 L Adventure Go-To con tapón | Producto simple (`termo-stanley-1-l-adventure-go-to-con-tapon`) | Stanley | — | $170.000,00 | 10 | 5 | Color sujeto a disponibilidad | +| 2 | Termo Stanley 800 ml Mate System classic | Producto simple (`termo-stanley-800-ml-mate-system-classic`) | Stanley | — | $160.000,00 | 10 | 4 | Color sujeto a disponibilidad | +| 3 | Termo Stanley 950 ml clásico con manija | Producto simple (`termo-stanley-950-ml-clasico-con-manija`) | Stanley | — | $155.000,00 | 10 | 2 | Color sujeto a disponibilidad | + +### Bicicletas y Aire Libre → Bicicletas Infantiles + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 4 | BICI STARK R16 FLOWERS/PINK NENA C/ACC 6095 | Producto simple (`bici-stark-r16-flowers-pink-nena-c-acc-6095`) | Stark | rodado 16 (dato descriptivo, sin selector) | $320.000,00 | 10 | 1 | El color de los accesorios puede variar | +| 5 | BICI STARK R16 TEAM JUNIOR NENE 6064 | Producto simple (`bici-stark-r16-team-junior-nene-6064`) | Stark | rodado 16 (dato descriptivo, sin selector) | $300.000,00 | 10 | 2 | — | + +### Bicicletas y Aire Libre → Bicicletas para Adultos + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 6 | BICICLETA FIRE BIRD R29 FRENIO DISCO | Producto simple (`bicicleta-fire-bird-r29-frenio-disco`) | Fire Bird | rodado 29 (dato descriptivo, sin selector) | $399.000,00 | 10 | 1 | — | +| 7 | BICICLETA PLAYERA ROSS FULL R26 | Producto simple (`bicicleta-playera-ross-full-r26`) | Ross | rodado 26 (dato descriptivo, sin selector) | $300.000,00 | 10 | 1 | — | +| 8 | BICICLETA VENZO LOKI R29 FD 21 V SHIMANO | Producto simple (`bicicleta-venzo-loki-r29-fd-21-v-shimano`) | Venzo | rodado 29 (dato descriptivo, sin selector) | $660.000,00 | 10 | 1 | — | + +### Bicicletas y Aire Libre → Piletas + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 9 | Pileta Pelopincho 1010 | Producto simple (`pileta-pelopincho-1010`) | Pelopincho | — | $87.000,00 | 10 | 2 | — | +| 10 | Pileta Pelopincho 1020 | Producto simple (`pileta-pelopincho-1020`) | Pelopincho | — | $115.000,00 | 10 | 2 | — | +| 11 | Pileta Pelopincho 1030 | Producto simple (`pileta-pelopincho-1030`) | Pelopincho | — | $140.000,00 | 10 | 2 | — | +| 12 | Pileta Pelopincho 1043 | Producto simple (`pileta-pelopincho-1043`) | Pelopincho | — | $240.000,00 | 10 | 2 | — | +| 13 | Pileta Pelopincho 1055 | Producto simple (`pileta-pelopincho-1055`) | Pelopincho | — | $315.000,00 | 10 | 2 | — | + +### Climatización → Aires Acondicionados + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 14 | Split 3300 W TCL TACA-3300FCSA frío/calor | Producto simple (`split-3300-w-tcl-taca-3300fcsa-frio-calor`) | TCL | — | $840.000,00 | 10 | 2 | — | +| 15 | Split BGH 5200 W BSH-52WCU frío/calor Silent Air 4300 frigorías | Producto simple (`split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias`) | BGH | — | $1.200.000,00 | 10 | 4 | — | + +### Climatización → Calefacción Eléctrica + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 16 | Calefactor de vidrio Whitenblack PVWB-01 Pie/Pared | Producto simple (`calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared`) | Whitenblack | — | $100.000,00 | 10 | 2 | — | +| 17 | Calefactor infrarrojo Liliana Calore CI-080 fijo 1400 W | Producto simple (`calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w`) | Liliana | — | $70.000,00 | 10 | 3 | — | +| 18 | Caloventor Liliana CFH417 Hotwind 2000 W | Producto simple (`caloventor-liliana-cfh417-hotwind-2000-w`) | Liliana | — | $58.000,00 | 10 | 6 | — | +| 19 | Caloventor Whitenblack CAWB-02 2000 W doble posición | Producto simple (`caloventor-whitenblack-cawb-02-2000-w-doble-posicion`) | Whitenblack | — | $46.000,00 | 10 | 2 | — | +| 20 | Caloventor split Liliana Whitenblack CPWB-01 2000 W | Producto simple (`caloventor-split-liliana-whitenblack-cpwb-01-2000-w`) | Liliana | — | $110.000,00 | 10 | 3 | — | +| 21 | Torre Liliana Tropic FTP-530 1500 W | Producto simple (`torre-liliana-tropic-ftp-530-1500-w`) | Liliana | — | $164.000,00 | 10 | 3 | — | + +### Climatización → Calefactores a Gas con Salida + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 22 | Eskabe 3000 cal. S21 Tiro Balanceado sin termostato | Producto simple (`eskabe-3000-cal-s21-tiro-balanceado-sin-termostato`) | Eskabe | — | $430.000,00 | 10 | 3 | — | +| 23 | Eskabe 3000 cal. Tiro Balanceado con termostato | Producto simple (`eskabe-3000-cal-tiro-balanceado-con-termostato`) | Eskabe | — | $450.000,00 | 10 | 2 | — | +| 24 | Eskabe TT 2000 cal. Tiro Balanceado con termostato | Producto simple (`eskabe-tt-2000-cal-tiro-balanceado-con-termostato`) | Eskabe | — | $450.000,00 | 10 | 5 | — | +| 25 | Eskabe TT 3000 cal. Tiro Balanceado con termostato | Producto simple (`eskabe-tt-3000-cal-tiro-balanceado-con-termostato`) | Eskabe | — | $499.000,00 | 10 | 3 | — | +| 26 | Longvie EBA2S 2000 cal. Tiro Balanceado | Producto simple (`longvie-eba2s-2000-cal-tiro-balanceado`) | Longvie | — | $280.000,00 | 10 | 3 | — | +| 27 | Longvie EBA3S 3000 cal. Tiro Balanceado | Producto simple (`longvie-eba3s-3000-cal-tiro-balanceado`) | Longvie | — | $420.000,00 | 10 | 4 | — | + +### Climatización → Calefactores a Gas sin Salida + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 28 | Eskabe 3000 cal. S21 MX3 sin salida | Producto simple (`eskabe-3000-cal-s21-mx3-sin-salida`) | Eskabe | — | $290.000,00 | 10 | 3 | Color marfil | +| 29 | Longvie ECA-3KV 3200 cal. Infr visor grafito sin salida | Producto simple (`longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida`) | Longvie | — | $300.000,00 | 10 | 4 | — | + +### Dormitorio y Blanco → Acolchados y Edredones + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 30 | Acolchado 1 1/2 pl Dobby Kavanagh negro | Producto simple (`acolchado-1-1-2-pl-dobby-kavanagh-negro`) | Kavanagh | medida 1 1/2 Plazas (dato descriptivo, sin selector) | $82.000,00 | 10 | 1 | — | +| 31 | Acolchado 1 1/2 pl Kavanagh Simil plumón reversible | Variante de **Acolchado Kavanagh Símil Plumón Reversible** (`acolchado-kavanagh-simil-plumon-reversible`) | Kavanagh | medida_cama=1 1/2 Plazas | $86.000,00 | 10 | 1 | — | +| 32 | Acolchado 1 1/2 pl Sense Dúo Bitono con corderito JC | Variante de **Acolchado Sense Dúo Bitono con Corderito** (`acolchado-sense-duo-bitono-corderito`) | Jean Cartier | medida_cama=1 1/2 Plazas | $70.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 33 | Acolchado King Kavanagh Simil plumón con 2 fundas almohadón | Producto simple (`acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon`) | Kavanagh | medida King (dato descriptivo, sin selector) | $130.000,00 | 10 | 1 | — | +| 34 | Acolchado King Kavanagh Simil plumón reversible | Variante de **Acolchado Kavanagh Símil Plumón Reversible** (`acolchado-kavanagh-simil-plumon-reversible`) | Kavanagh | medida_cama=King | $125.000,00 | 10 | 1 | — | +| 35 | Acolchado King Sense Dúo Bitono con corderito JC | Variante de **Acolchado Sense Dúo Bitono con Corderito** (`acolchado-sense-duo-bitono-corderito`) | Jean Cartier | medida_cama=King | $100.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 36 | Acolchado Queen Hotel Oxford Platinum 700 H JC | Producto simple (`acolchado-queen-hotel-oxford-platinum-700-h-jc`) | Jean Cartier | medida Queen (dato descriptivo, sin selector) | $100.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 37 | Acolchado Queen simil plumón reversible Kavanagh | Variante de **Acolchado Kavanagh Símil Plumón Reversible** (`acolchado-kavanagh-simil-plumon-reversible`) | Kavanagh | medida_cama=Queen | $100.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 38 | Edredón 1 1/2 pl Lisboa JC | Variante de **Edredón Lisboa Jean Cartier** (`edredon-lisboa-jean-cartier`) | Jean Cartier | medida_cama=1 1/2 Plazas | $90.000,00 | 10 | 1 | — | +| 39 | Edredón 1 1/2 pl Londres JC | Producto simple (`edredon-1-1-2-pl-londres-jc`) | Jean Cartier | medida 1 1/2 Plazas (dato descriptivo, sin selector) | $50.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 40 | Edredón 2 1/2 pl Lisboa JC | Variante de **Edredón Lisboa Jean Cartier** (`edredon-lisboa-jean-cartier`) | Jean Cartier | medida_cama=2 1/2 Plazas | $120.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 41 | Kit Acolchado Queen Zúrich + 2 fundas almohadón JC | Producto simple (`kit-acolchado-queen-zurich-2-fundas-almohadon-jc`) | Jean Cartier | medida Queen (dato descriptivo, sin selector) | $80.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 42 | Kit Edredón 2 1/2 pl. Alaska c/corderito JC + 2 fundas almohadones | Variante de **Kit Edredón Alaska con Corderito** (`kit-edredon-alaska-corderito`) | Jean Cartier | medida_cama=2 1/2 Plazas | $130.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 43 | Kit Edredón King Alaska c/corderito + 2 fundas almohadones | Variante de **Kit Edredón Alaska con Corderito** (`kit-edredon-alaska-corderito`) | Pendiente de identificar | medida_cama=King | $160.000,00 | 10 | 1 | Para colchón 2 x 2 | + +### Dormitorio y Blanco → Bases y Sommiers + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 44 | Sommier Inducol 0,80x1,90 | Producto simple (`sommier-inducol-0-80x1-90`) | Inducol | medida 1 Plaza (dato descriptivo, sin selector) | $180.000,00 | 10 | 2 | — | +| 45 | Sommier King Koil Elite Contour 140x190 | Producto simple (`sommier-king-koil-elite-contour-140x190`) | King Koil | medida King (dato descriptivo, sin selector) | $260.000,00 | 10 | 3 | Ideal para armar el conjunto con el Colchón Inducol Vinson Espuma. Color sujeto a disponibilidad. | +| 46 | Sommier Piero Legrand 140x190x020 | Producto simple (`sommier-piero-legrand-140x190x020`) | Piero | medida 2 Plazas (dato descriptivo, sin selector) | $280.000,00 | 10 | 2 | — | +| 47 | Sommier Piero Paraíso 0,90x1,90x0,20 | Producto simple (`sommier-piero-paraiso-0-90x1-90x0-20`) | Piero | medida 1 Plaza (dato descriptivo, sin selector) | $200.000,00 | 10 | 2 | Base de sommier Piero para colchón de 0,90x1,90 | + +### Dormitorio y Blanco → Colchones + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 48 | COLCHON PIERO RESORTE CORONA REAL 0,8X1,90X0,26 | Producto simple (`colchon-piero-resorte-corona-real-0-8x1-90x0-26`) | Piero | medida 1 Plaza (dato descriptivo, sin selector) | $325.000,00 | 10 | 3 | — | +| 49 | Colchon Inducol Constanza Espuma Alta Densidad 080x24 | Variante de **Colchón Inducol Constanza** (`colchon-inducol-constanza`) | Inducol | medida_cama=1 Plaza | $280.000,00 | 10 | 2 | — | +| 50 | Colchón Espuma Inducol Aurelia 0,80x1,90x0,20 | Producto simple (`colchon-espuma-inducol-aurelia-0-80x1-90x0-20`) | Inducol | medida 1 Plaza (dato descriptivo, sin selector) | $175.000,00 | 10 | 1 | — | +| 51 | Colchón Inducol Constanza Espuma Alta Densidad 1,40x1,90x0,24 | Variante de **Colchón Inducol Constanza** (`colchon-inducol-constanza`) | Inducol | medida_cama=2 Plazas | $475.000,00 | 10 | 2 | — | +| 52 | Colchón King Koil G22 Espuma Alta Densidad 1,40x1,90x0,24 | Producto simple (`colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24`) | King Koil | medida King (dato descriptivo, sin selector) | $347.000,00 | 10 | 7 | Viene en bolsa, fácil traslado. El fabricante recomienda esperar 24hs luego de desenrollado para comenzar a usarse. | +| 53 | Colchón King Koil resortes Bradley 080x190x026 | Producto simple (`colchon-king-koil-resortes-bradley-080x190x026`) | King Koil | medida King (dato descriptivo, sin selector) | $400.000,00 | 10 | 5 | — | +| 54 | Colchón Piero Body Matelasse Espuma Media Densidad 0,90x1,90x0,20 | Producto simple (`colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20`) | Piero | medida 1 Plaza (dato descriptivo, sin selector) | $300.000,00 | 10 | 2 | — | +| 55 | Colchón Suavegom Espuma Merit Doble Pillow 140x190x029 | Producto simple (`colchon-suavegom-espuma-merit-doble-pillow-140x190x029`) | Suavegom | medida 2 Plazas (dato descriptivo, sin selector) | $650.000,00 | 10 | 3 | Color sujeto a disponibilidad | + +### Dormitorio y Blanco → Frazadas y Mantas + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 56 | Frazada 2 1/2 pl Sherpa doble corderito y polar JC | Producto simple (`frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc`) | Jean Cartier | medida 2 1/2 Plazas (dato descriptivo, sin selector) | $70.000,00 | 10 | 1 | Color sujeto a disponibilidad | +| 57 | Frazada polar 1 1/2 pl Kavanagh Premium Soft | Variante de **Frazada Kavanagh Premium Soft** (`frazada-kavanagh-premium-soft`) | Kavanagh | medida_cama=1 1/2 Plazas | $47.000,00 | 10 | 1 | — | +| 58 | Frazada polar King Kavanagh Premium Soft | Variante de **Frazada Kavanagh Premium Soft** (`frazada-kavanagh-premium-soft`) | Kavanagh | medida_cama=King | $72.000,00 | 10 | 1 | Color sujeto a disponibilidad | +| 59 | Manta simil piel de conejo con reverso aterciopelado Jean Cartier | Producto simple (`manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier`) | Jean Cartier | — | $50.000,00 | 10 | 1 | Color sujeto a disponibilidad | + +### Dormitorio y Blanco → Infantil y Cuna + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 60 | Set Cuna de 6 piezas Acolchado + Sabanas Arcoiris multicolor JC | Producto simple (`set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc`) | Jean Cartier | medida Cuna (dato descriptivo, sin selector) | $50.000,00 | 10 | 1 | — | + +### Electrodomésticos → Café y Desayuno + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 61 | Cafetera Atma CA-8182P digital 1000 W 1,8 L | Producto simple (`cafetera-atma-ca-8182p-digital-1000-w-1-8-l`) | Atma | — | $85.000,00 | 10 | 3 | — | +| 62 | Cafetera Express Atma CEAT-5418P 1 Litro | Producto simple (`cafetera-express-atma-ceat-5418p-1-litro`) | Atma | — | $275.000,00 | 10 | 10 | — | +| 63 | Cafetera Express Liliana AC-980 3 en 1 | Producto simple (`cafetera-express-liliana-ac-980-3-en-1`) | Liliana | — | $310.000,00 | 10 | 8 | — | +| 64 | Cafetera Moulinex mini me Dolce cápsulas | Producto simple (`cafetera-moulinex-mini-me-dolce-capsulas`) | Moulinex | — | $230.000,00 | 10 | 3 | — | +| 65 | Pava eléctrica Atma PE-0821AP/NAP 1,7 L | Producto simple (`pava-electrica-atma-pe-0821ap-nap-1-7-l`) | Atma | — | $40.000,00 | 10 | 3 | — | +| 66 | Pava eléctrica Atma PED23MP Disney vintage | Producto simple (`pava-electrica-atma-ped23mp-disney-vintage`) | Atma | — | $90.000,00 | 10 | 5 | — | +| 67 | Pava eléctrica GIGO G-17898 SD 1,7 L Digital cromada | Producto simple (`pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada`) | GIGO | — | $76.000,00 | 10 | 6 | — | +| 68 | Pava eléctrica Liliana AP-165 matera color negra | Producto simple (`pava-electrica-liliana-ap-165-matera-color-negra`) | Liliana | — | $59.000,00 | 10 | 4 | — | +| 69 | Pava eléctrica Liliana AP-200 Infustyle 1,7 L | Producto simple (`pava-electrica-liliana-ap-200-infustyle-1-7-l`) | Liliana | — | $85.000,00 | 10 | 5 | — | +| 70 | Tostadora Atma TOAT-21VCP Vintage color crema | Producto simple (`tostadora-atma-toat-21vcp-vintage-color-crema`) | Atma | — | $60.000,00 | 10 | 4 | — | +| 71 | Tostadora Oster TR500 Acero Inoxidable | Producto simple (`tostadora-oster-tr500-acero-inoxidable`) | Oster | — | $84.000,00 | 10 | 4 | — | + +### Electrodomésticos → Calefones y Termotanques + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 72 | Calefón Longvie 14 L CN-514 SS-N Enc. Sensor | Producto simple (`calefon-longvie-14-l-cn-514-ss-n-enc-sensor`) | Longvie | — | $690.000,00 | 10 | 1 | — | + +### Electrodomésticos → Cocinas + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 73 | Cocina Florencia 5536-F 56 cm color Blanca | Producto simple (`cocina-florencia-5536-f-56-cm-color-blanca`) | Florencia | — | $620.000,00 | 10 | 4 | Multigas | +| 74 | Cocina Longvie 13331BF 56 cm color blanca | Producto simple (`cocina-longvie-13331bf-56-cm-color-blanca`) | Longvie | — | $940.000,00 | 10 | 7 | Multigas | +| 75 | Cocina Longvie 13331XF 56cm Acero inoxidable | Producto simple (`cocina-longvie-13331xf-56cm-acero-inoxidable`) | Longvie | — | $999.000,00 | 10 | 3 | — | +| 76 | Cocina Longvie 13501BF 56 cm color Blanca | Producto simple (`cocina-longvie-13501bf-56-cm-color-blanca`) | Longvie | — | $1.100.000,00 | 10 | 5 | Multigas | + +### Electrodomésticos → Cuidado Personal + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 77 | Cortabarba Philips BT-7201 | Producto simple (`cortabarba-philips-bt-7201`) | Philips | — | $70.000,00 | 10 | 3 | — | +| 78 | Cortacabello Philips QC 5560 8 Posiciones | Producto simple (`cortacabello-philips-qc-5560-8-posiciones`) | Philips | — | $45.000,00 | 10 | 3 | — | +| 79 | Secador cabello Atma SP-8970 Classic 3 Velocidades | Producto simple (`secador-cabello-atma-sp-8970-classic-3-velocidades`) | Atma | — | $60.000,00 | 10 | 2 | — | +| 80 | Secador cabello Gama 9465 Brillant Blue Titanium | Producto simple (`secador-cabello-gama-9465-brillant-blue-titanium`) | Gama | — | $120.000,00 | 10 | 3 | — | +| 81 | Secador cabello Philips BHD-302/10 1600 W | Producto simple (`secador-cabello-philips-bhd-302-10-1600-w`) | Philips | — | $110.000,00 | 10 | 3 | — | + +### Electrodomésticos → Freidoras y Cocción + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 82 | Freidora de aire Peabody PE-AFD420N 4,2 L digital | Producto simple (`freidora-de-aire-peabody-pe-afd420n-4-2-l-digital`) | Peabody | — | $115.000,00 | 10 | 8 | — | +| 83 | Freidora de aire Peabody PE-AFG03N 7 L Grill | Producto simple (`freidora-de-aire-peabody-pe-afg03n-7-l-grill`) | Peabody | — | $260.000,00 | 10 | 5 | — | +| 84 | Pochoclera Atma PO-AT9801DNP Disney Mickey | Producto simple (`pochoclera-atma-po-at9801dnp-disney-mickey`) | Atma | — | $64.000,00 | 10 | 5 | — | +| 85 | Waflera Atma WS-027DRN disney 2 en 1 | Producto simple (`waflera-atma-ws-027drn-disney-2-en-1`) | Atma | — | $64.000,00 | 10 | 10 | — | + +### Electrodomésticos → Heladeras + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 86 | Heladera Gafa HGF 358 AFB 282 LITROS BLANCA | Producto simple (`heladera-gafa-hgf-358-afb-282-litros-blanca`) | Gafa | — | $780.000,00 | 10 | 4 | — | +| 87 | Heladera Gafa HGF 388 AFB 374 LITROS BLANCA | Producto simple (`heladera-gafa-hgf-388-afb-374-litros-blanca`) | Gafa | — | $950.000,00 | 10 | 5 | — | +| 88 | Heladera Gafa HGF-368AFP 330 LT color plata | Producto simple (`heladera-gafa-hgf-368afp-330-lt-color-plata`) | Gafa | — | $910.000,00 | 10 | 5 | — | +| 89 | Heladera No Frost Gafa HGNF333P Inverter 356 L plata | Producto simple (`heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata`) | Gafa | — | $950.000,00 | 10 | 7 | — | + +### Electrodomésticos → Hornos Eléctricos + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 90 | Horno Eléctrico 25L BGH BHE-25M25I Dúo negro | Producto simple (`horno-electrico-25l-bgh-bhe-25m25i-duo-negro`) | BGH | — | $145.000,00 | 10 | 3 | — | +| 91 | Horno eléctrico Atma Grill 40 litros c/2 anafes HG-4022API | Producto simple (`horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api`) | Atma | — | $250.000,00 | 10 | 6 | — | + +### Electrodomésticos → Lavarropas y Secarropas + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 92 | Lavarropas automático Drean Concept 5.05 V1 5 Kg 500 rpm | Producto simple (`lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm`) | Drean | — | $650.000,00 | 10 | 5 | Carga superior | +| 93 | Lavarropas automático Gafa Fuzzy Fit 7 kg 760 rpm color blanco | Producto simple (`lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco`) | Gafa | — | $650.000,00 | 10 | 6 | Carga superior | +| 94 | Lavarropas automático Philco PHLF-6510B2 6,5 KG 1000 rpm blanco | Producto simple (`lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco`) | Philco | — | $600.000,00 | 10 | 6 | — | +| 95 | Lavarropas automático Samsung WW65 6,5 Kg 1000 rpm blanco | Producto simple (`lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco`) | Samsung | — | $920.000,00 | 10 | 5 | Carga frontal | +| 96 | Secarropas Kohinoor A-665 acero inoxidable 6,5 Kg | Producto simple (`secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg`) | Kohinoor | — | $300.000,00 | 10 | 3 | — | + +### Electrodomésticos → Limpieza y Planchado + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 97 | Lustraspiradora Liliana espejo LL350 850 W | Producto simple (`lustraspiradora-liliana-espejo-ll350-850-w`) | Liliana | — | $210.000,00 | 10 | 3 | — | +| 98 | Plancha vapor Philips GC-1022/40 2000 W | Producto simple (`plancha-vapor-philips-gc-1022-40-2000-w`) | Philips | — | $91.000,00 | 10 | 3 | — | + +### Electrodomésticos → Microondas + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 99 | Microondas BGH 28 L BGH B-228DS20I Plata Digital con grill | Producto simple (`microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill`) | BGH | — | $350.000,00 | 10 | 3 | — | +| 100 | Microondas Samsung MG23 F3K3TAK 23 litros Grill color negro | Producto simple (`microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro`) | Samsung | — | $335.000,00 | 10 | 7 | — | + +### Electrodomésticos → Preparación de Alimentos + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 101 | Batidora de mano Oster HM 2600 negra | Producto simple (`batidora-de-mano-oster-hm-2600-negra`) | Oster | — | $97.000,00 | 10 | 3 | — | +| 102 | Batidora planetaria Atma BPAT21WP | Producto simple (`batidora-planetaria-atma-bpat21wp`) | Atma | — | $225.000,00 | 10 | 6 | — | +| 103 | Exprimidor eléctrico Liliana AE-920 Citrijug 40 W | Producto simple (`exprimidor-electrico-liliana-ae-920-citrijug-40-w`) | Liliana | — | $35.000,00 | 10 | 3 | — | +| 104 | Juguera Liliana AJ-950 Nutrijug vaso 350 ml 2 velocidades | Producto simple (`juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades`) | Liliana | — | $120.000,00 | 10 | 3 | — | +| 105 | Licuadora Electrolux SBA10 personal 600 ml | Producto simple (`licuadora-electrolux-sba10-personal-600-ml`) | Electrolux | — | $75.000,00 | 10 | 3 | — | +| 106 | Mixer Liliana AH-300 450 W + Vaso | Producto simple (`mixer-liliana-ah-300-450-w-vaso`) | Liliana | — | $56.000,00 | 10 | 2 | — | +| 107 | Mixer Liliana Rainbow Mix AH-101/2/3 + Vaso medidor | Producto simple (`mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor`) | Liliana | — | $67.000,00 | 10 | 2 | — | +| 108 | Mixer Philips HR-2531/50 Promix 400 W + Vaso | Producto simple (`mixer-philips-hr-2531-50-promix-400-w-vaso`) | Philips | — | $83.000,00 | 10 | 7 | — | +| 109 | Multiprocesadora Liliana AM-700 Simplix 700 W | Producto simple (`multiprocesadora-liliana-am-700-simplix-700-w`) | Liliana | — | $137.000,00 | 10 | 3 | — | +| 110 | Picadora Moulinex AD-6011AR 750 W Blanca | Producto simple (`picadora-moulinex-ad-6011ar-750-w-blanca`) | Moulinex | — | $98.000,00 | 10 | 7 | — | +| 111 | Yogurtera Atma YM3010P 7 porciones | Producto simple (`yogurtera-atma-ym3010p-7-porciones`) | Atma | — | $65.000,00 | 10 | 5 | — | + +### Electrodomésticos → Purificadores y Extractores de Cocina + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 112 | Purificador Spar Bios 3766-BOO color blanco | Producto simple (`purificador-spar-bios-3766-boo-color-blanco`) | Spar | — | $200.000,00 | 10 | 3 | 1 motor | +| 113 | Purificador Tst #360-60 Estratto acero inox. 60 cm | Producto simple (`purificador-tst-360-60-estratto-acero-inox-60-cm`) | Acer | — | $200.000,00 | 10 | 2 | — | + +### Tecnología → Accesorios de Computación + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 114 | Mouse Xtrike Me Backlit | Producto simple (`mouse-xtrike-me-backlit`) | Xtrike Me | — | $12.000,00 | 10 | 1 | — | +| 115 | Teclado Xtrike Me Rainbow mecánico | Producto simple (`teclado-xtrike-me-rainbow-mecanico`) | Xtrike Me | — | $40.000,00 | 10 | 1 | — | + +### Tecnología → Audio + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 116 | Auricular BT negro on ear Moonki sound MH-0510BT | Producto simple (`auricular-bt-negro-on-ear-moonki-sound-mh-0510bt`) | Moonki | — | $30.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 117 | Auricular Moonki Earbuds sound MA-TWS66 black | Producto simple (`auricular-moonki-earbuds-sound-ma-tws66-black`) | Moonki | — | $16.000,00 | 10 | 5 | — | +| 118 | Auricular on ear Moonki sound MH-0613 | Producto simple (`auricular-on-ear-moonki-sound-mh-0613`) | Moonki | — | $15.000,00 | 10 | 4 | Color sujeto a disponibilidad | +| 119 | Bafle Havit Bluetooth SK-816BT | Producto simple (`bafle-havit-bluetooth-sk-816bt`) | Havit | — | $145.000,00 | 10 | 1 | — | +| 120 | Parlante JBL GO 4 Bluetooth altavoz ultraportátil | Producto simple (`parlante-jbl-go-4-bluetooth-altavoz-ultraportatil`) | JBL | — | $97.000,00 | 10 | 2 | Color sujeto a disponibilidad | + +### Tecnología → Celulares + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 121 | BLU G73 128 GB | Producto simple (`blu-g73-128-gb`) | BLU | almacenamiento 128 GB (dato descriptivo, sin selector) | $225.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 122 | MOTOROLA G15 4/512 GB | Variante de **Motorola G15** (`motorola-g15`) | Motorola | memoria_ram=4 GB; almacenamiento=512 GB | $430.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 123 | Motorola G15 4/256 GB | Variante de **Motorola G15** (`motorola-g15`) | Motorola | memoria_ram=4 GB; almacenamiento=256 GB | $330.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 124 | Motorola G35 4/256 GB | Producto simple (`motorola-g35-4-256-gb`) | Motorola | RAM 4 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $410.000,00 | 10 | 4 | Color sujeto a disponibilidad | +| 125 | SAMSUNG A17 4/128 GB | Producto simple (`samsung-a17-4-128-gb`) | Samsung | RAM 4 GB; almacenamiento 128 GB (dato descriptivo, sin selector) | $390.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 126 | SAMSUNG A17 5G 8/256 GB | Producto simple (`samsung-a17-5g-8-256-gb`) | Samsung | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $620.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 127 | SAMSUNG A26 5G 8/256 GB | Producto simple (`samsung-a26-5g-8-256-gb`) | Samsung | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $650.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 128 | Samsung A07 4/128 GB | Producto simple (`samsung-a07-4-128-gb`) | Samsung | RAM 4 GB; almacenamiento 128 GB (dato descriptivo, sin selector) | $310.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 129 | Samsung A36 5G 8/256 GB | Producto simple (`samsung-a36-5g-8-256-gb`) | Samsung | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $780.000,00 | 10 | 5 | Color sujeto a disponibilidad | +| 130 | Samsung A56 5G 8/256 GB | Producto simple (`samsung-a56-5g-8-256-gb`) | Samsung | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $920.000,00 | 10 | 3 | — | +| 131 | Samsung Galaxy A16 4/128 GB | Producto simple (`samsung-galaxy-a16-4-128-gb`) | Samsung | RAM 4 GB; almacenamiento 128 GB (dato descriptivo, sin selector) | $340.000,00 | 10 | 6 | Color sujeto a disponibilidad | +| 132 | XIAOMI POCO C85 8/256 GB | Producto simple (`xiaomi-poco-c85-8-256-gb`) | Xiaomi | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $430.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 133 | XIAOMI POCO M7 8/256 GB | Producto simple (`xiaomi-poco-m7-8-256-gb`) | Xiaomi | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $420.000,00 | 10 | 3 | Color sujeto a disponibilidad | +| 134 | Xiaomi Redmi 15C 8/256 GB | Producto simple (`xiaomi-redmi-15c-8-256-gb`) | Xiaomi | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $380.000,00 | 10 | 2 | Color sujeto a disponibilidad | +| 135 | Xiaomi Redmi Note 14 Pro 5G 8/256 GB | Producto simple (`xiaomi-redmi-note-14-pro-5g-8-256-gb`) | Xiaomi | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $630.000,00 | 10 | 6 | Color sujeto a disponibilidad | +| 136 | Xiaomi Redmi Note 15 8/256 GB | Producto simple (`xiaomi-redmi-note-15-8-256-gb`) | Xiaomi | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $496.000,00 | 10 | 5 | Color sujeto a disponibilidad | + +### Tecnología → Notebooks + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 137 | NOTEBOOK ASUS VIVOBOOK F1504VAP Intel Core 7 512GB SSD 8GB 15.6 Touch WIN 11 | Producto simple (`notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11`) | ASUS | almacenamiento 512 GB; RAM 8 GB (dato descriptivo, sin selector) | $1.700.000,00 | 10 | 4 | — | +| 138 | Notebook ASUS Vivobook Go 15 E1504GA-WS35 Intel Core i3 N305 8/256 GB Win11 | Producto simple (`notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11`) | ASUS | RAM 8 GB; almacenamiento 256 GB (dato descriptivo, sin selector) | $1.300.000,00 | 10 | 4 | — | +| 139 | Notebook Acer Aspire 7 I5-13420H/512SSD/16GB/15.6/RTX3050 | Producto simple (`notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050`) | Acer | almacenamiento 512 GB; RAM 16 GB (dato descriptivo, sin selector) | $2.800.000,00 | 10 | 4 | — | +| 140 | Notebook Lenovo IdeaPad Slim 3 AMD Ryzen 5 8/512GB SSD 15.6" Full HD Win11 | Producto simple (`notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11`) | Lenovo | RAM 8 GB; almacenamiento 512 GB (dato descriptivo, sin selector) | $1.400.000,00 | 10 | 4 | — | +| 141 | Notebook Lenovo Ryzen 7 8840HS 16/512GB 15,6" | Producto simple (`notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6`) | Lenovo | RAM 16 GB; almacenamiento 512 GB (dato descriptivo, sin selector) | $1.700.000,00 | 10 | 5 | — | +| 142 | Notebook Lenovo S3 15Q8X10 SNAPDRAGON X 512GB SSD 16GB DDR5 15.3" WIN11 | Producto simple (`notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11`) | Lenovo | almacenamiento 512 GB; RAM 16 GB (dato descriptivo, sin selector) | $1.500.000,00 | 10 | 7 | — | +| 143 | Notebook MSI Katana 15 HX B14WGK-293US I7-14650HX UP TO 5.2GHZ 1TB SSD 16GB DDR5 Geforce RTX 5070 8GB 15.6" QHD 165HZ WIN 11 | Producto simple (`notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11`) | MSI | almacenamiento 1 TB; RAM 16 GB (dato descriptivo, sin selector) | $3.800.000,00 | 10 | 5 | — | + +### Tecnología → Smart TV + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 144 | SMART 32" BGH B-3225S5A ANDROID | Producto simple (`smart-32-bgh-b-3225s5a-android`) | BGH | — | $340.000,00 | 10 | 4 | — | +| 145 | SMART TV NOBLEX 50" DR50-X8500 GOOGLE TV | Producto simple (`smart-tv-noblex-50-dr50-x8500-google-tv`) | Noblex | — | $730.000,00 | 10 | 4 | — | +| 146 | Smart TV 43" Noblex DR43-X7180 Android | Producto simple (`smart-tv-43-noblex-dr43-x7180-android`) | Noblex | — | $510.000,00 | 10 | 4 | — | +| 147 | Smart TV Noblex 32" DK32-X7000 Android | Producto simple (`smart-tv-noblex-32-dk32-x7000-android`) | Noblex | — | $340.000,00 | 10 | 3 | — | + +### Tecnología → Soportes para TV + +| # | Producto de origen | Representación en Shopit | Marca | Atributos/datos | Precio | Stock | Imágenes | Descripción/observación | +|---:|---|---|---|---|---:|---:|---:|---| +| 148 | Soporte led 26"-60" Nakan SPL-375E extensible y giratorio | Producto simple (`soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio`) | Nakan | — | $55.000,00 | 10 | 3 | — Corrección: el archivo de origen lo ubicó dentro de colchones. | +| 149 | Soporte led 32"-55" GBS con inclinacion | Producto simple (`soporte-led-32-55-gbs-con-inclinacion`) | GBS | — | $20.000,00 | 10 | 3 | — | +| 150 | Soporte led GBS 32"-55" fijo | Producto simple (`soporte-led-gbs-32-55-fijo`) | GBS | — | $20.000,00 | 10 | 3 | — | + +## Consolidaciones propuestas como variantes + +Se consolidan solamente coincidencias suficientemente claras: + +- Motorola G15: variantes por RAM y almacenamiento. +- Acolchado Kavanagh Símil Plumón Reversible: variantes por medida. +- Edredón Lisboa Jean Cartier: variantes por medida. +- Acolchado Sense Dúo Bitono con Corderito: variantes por medida. +- Frazada Kavanagh Premium Soft: variantes por medida. +- Kit Edredón Alaska con Corderito: variantes por medida. +- Colchón Inducol Constanza: variantes por medida. + +No se consolidan modelos parecidos cuando el nombre no permite asegurar que sean el mismo producto. Esto evita mezclar, por ejemplo, versiones 4G/5G, tecnologías diferentes o modelos visualmente similares. + +## Pendientes antes de una importación definitiva + +- Confirmar las marcas marcadas como pendientes. +- Reemplazar el stock provisional de 10 unidades por existencias reales. +- Completar las descripciones ausentes o demasiado breves. +- Definir SKU y códigos de barras si se integrará con otro sistema. +- Confirmar las consolidaciones propuestas antes de convertir registros independientes en variantes. +- Corregir definitivamente la clasificación del soporte Nakan que aparece en la carpeta de colchones. diff --git a/docs/informe-migracion-catalogo-whatsapp-mutual-smep.md b/docs/informe-migracion-catalogo-whatsapp-mutual-smep.md new file mode 100644 index 00000000..60326d8f --- /dev/null +++ b/docs/informe-migracion-catalogo-whatsapp-mutual-smep.md @@ -0,0 +1,229 @@ +# Informe de migración del catálogo de WhatsApp Business + +## Tienda Mutual SMEP + +**Fecha del informe:** 24 de septiembre de 2026 +**Estado:** catálogo preparado y revisado para su incorporación a la nueva tienda. La publicación definitiva todavía requiere la validación comercial de SMEP. + +--- + +## 1. Objetivo del trabajo + +El objetivo de esta migración fue trasladar el catálogo que Mutual SMEP utilizaba en WhatsApp Business a una tienda en línea propia, conservando la información disponible y reorganizándola para que los clientes puedan encontrar los productos con mayor facilidad. + +Además del traslado de los productos, se preparó la identidad de la tienda, la navegación por categorías, las secciones destacadas y las imágenes principales de la página de inicio. + +## 2. Resumen general + +| Elemento | Resultado de la migración | +|---|---:| +| Publicaciones revisadas del catálogo anterior | 150 | +| Productos que tendrá la nueva tienda | 142 | +| Productos agrupados con opciones | 7 | +| Categorías principales | 6 | +| Subcategorías | 31 | +| Marcas identificadas | 47 | +| Imágenes de productos incorporadas | 511 | +| Secciones de productos destacados | 7 | +| Imágenes principales para la portada | 4 | + +La diferencia entre las **150 publicaciones anteriores** y los **142 productos nuevos** no representa una pérdida de mercadería. Algunas publicaciones de WhatsApp correspondían al mismo producto en distintos colores, medidas o capacidades. En la nueva tienda esas publicaciones se reunieron en una sola ficha, donde el cliente podrá elegir la opción que prefiera. + +## 3. Creación de una tienda propia para Mutual SMEP (tenant) + +Se preparó una tienda exclusiva para Mutual SMEP, separada de las demás tiendas que pueda administrar la plataforma. Esto permite que SMEP tenga su propia imagen, productos, categorías, promociones y datos de contacto. + +La tienda quedó identificada como **Tienda Mutual SMEP** y se configuró con: + +- Los colores azul y celeste utilizados por la institución. +- Logotipo, encabezado, pie de página e ícono propios. +- Domicilio: San Lorenzo 1543, Rosario, Santa Fe. +- Teléfono y contacto de WhatsApp: +54 9 341 247-4530. +- Enlaces a Instagram y Facebook de Mutual SMEP. +- Buscador de productos, acceso a categorías y carrito de compras. +- Información de ayuda y preguntas frecuentes adaptadas a la tienda. + +La dirección utilizada durante la preparación es interna y de prueba. Antes de la publicación deberá definirse o confirmarse la dirección pública que utilizarán los clientes. + +## 4. Nueva organización por categorías + +En WhatsApp Business el catálogo se recorría principalmente como una lista de publicaciones. En la nueva tienda, los productos se organizaron en categorías y subcategorías para facilitar la búsqueda. + +### Dormitorio y Blanco + +- Colchones +- Bases y Sommiers +- Acolchados y Edredones +- Frazadas y Mantas +- Infantil y Cuna + +### Electrodomésticos + +- Heladeras +- Lavarropas y Secarropas +- Cocinas +- Microondas +- Hornos Eléctricos +- Calefones y Termotanques +- Purificadores y Extractores de Cocina +- Preparación de Alimentos +- Café y Desayuno +- Freidoras y Cocción +- Cuidado Personal +- Limpieza y Planchado + +### Climatización + +- Aires Acondicionados +- Calefactores a Gas con Salida +- Calefactores a Gas sin Salida +- Calefacción Eléctrica + +### Tecnología + +- Celulares +- Notebooks +- Smart TV +- Audio +- Accesorios de Computación +- Soportes para TV + +### Bicicletas y Aire Libre + +- Bicicletas Infantiles +- Bicicletas para Adultos +- Piletas + +### Bazar + +- Termos + +Esta estructura se armó a partir de los productos reales del catálogo. También se corrigieron ubicaciones poco claras del catálogo anterior; por ejemplo, un soporte para TV que figuraba junto a colchones fue colocado en **Tecnología > Soportes para TV**. + +## 5. Conversión de los productos + +Cada publicación del catálogo anterior fue revisada para definir cómo debía mostrarse en la nueva tienda. + +### Productos simples + +Los artículos que tienen una sola presentación se convirtieron en una ficha individual. En ella se muestran el nombre, el precio, la marca, las imágenes disponibles y la categoría correspondiente. + +### Productos con distintas opciones + +Cuando varias publicaciones representaban el mismo artículo con una diferencia de medida, capacidad o presentación, se reunieron en una única ficha. De esta forma, el cliente no verá productos repetidos y podrá elegir la opción antes de agregar el artículo al carrito. + +Los siete productos agrupados de esta manera son: + +- Acolchado Kavanagh Símil Plumón Reversible: 3 opciones. +- Acolchado Sense Dúo Bitono con Corderito: 2 opciones. +- Colchón Inducol Constanza: 2 opciones. +- Edredón Lisboa Jean Cartier: 2 opciones. +- Frazada Kavanagh Premium Soft: 2 opciones. +- Kit Edredón Alaska con Corderito: 2 opciones. +- Motorola G15: 2 opciones. + +Para facilitar futuras incorporaciones, también quedaron preparadas opciones habituales del rubro, como color, medida, almacenamiento, memoria y rodado. Estas opciones solamente se mostrarán cuando el cliente tenga una elección real para realizar. + +### Información conservada + +- Se mantuvieron los precios informados en el catálogo de origen. +- Se utilizaron las marcas que pudieron identificarse con seguridad. +- No se inventaron códigos, códigos de barras ni costos internos. +- Las fotografías disponibles se asociaron con el producto correspondiente. + +### Imágenes optimizadas + +Se incorporaron **511 imágenes de productos**. Fueron optimizadas para reducir su peso aproximado de 30 MB a 9,2 MB, sin modificar el contenido de las fotografías. Esto ayuda a que la tienda cargue más rápido y consuma menos datos móviles. + +### Existencias iniciales + +Para poder visualizar y probar todos los artículos, se asignaron provisoriamente **10 unidades por producto u opción**, equivalentes a 1.500 unidades en total. + +Esta cifra es solamente demostrativa y **no representa el inventario real de Mutual SMEP**. Antes de habilitar las ventas debe reemplazarse por las existencias verdaderas o definirse otra forma de administrar la disponibilidad. + +## 6. Presentación de la página de inicio + +La nueva portada se organizó en dos tipos de contenido: imágenes institucionales de gran tamaño y filas de productos destacados. + +### Carrusel principal de imágenes (carousel) + +Se prepararon cuatro imágenes panorámicas que se alternan en la parte superior de la tienda: + +1. **Tecnología:** televisores, celulares y audio. +2. **Hogar:** heladeras, cafeteras y electrodomésticos. +3. **Vida activa:** bicicletas y actividades al aire libre. +4. **Descanso:** colchones, camas y ropa de cama. + +Todas respetan una línea visual azul y amarilla vinculada con la identidad de SMEP. También cuentan con espacio para colocar títulos, promociones o botones cuando se definan los mensajes comerciales. + +### Secciones de productos destacados (featured groups) + +La primera de estas secciones es una fila visual de **13 productos destacados**, pensada como el carrusel circular que verá el cliente en la portada. + +Incluye primero los siete productos que permiten elegir variantes y, a continuación, una selección representativa del catálogo: + +- Smart TV Noblex de 50 pulgadas. +- Heladera Gafa de 330 litros. +- Cafetera express Atma. +- Aire acondicionado split TCL de 3300 W. +- Bicicleta Venzo Loki rodado 29. +- Termo Stanley de 1 litro. + +La intención es mostrar variedad y permitir que el cliente descubra rápidamente productos importantes de distintas áreas de la tienda. + +### Secciones por categoría principal + +También se crearon seis filas adicionales, una por cada categoría principal: + +| Sección | Productos incluidos | +|---|---:| +| Dormitorio y Blanco | 6 | +| Electrodomésticos | 6 | +| Climatización | 6 | +| Tecnología | 6 | +| Bicicletas y Aire Libre | 6 | +| Bazar | 3 | + +Estas filas funcionan como una vidriera breve: muestran una selección de cada rubro sin sobrecargar la portada. Los **142 productos** continúan disponibles mediante las categorías, subcategorías y el buscador. Algunos artículos también se repiten en “Productos destacados” de manera intencional. + +## 7. Principales mejoras para los clientes + +Con esta migración, el cliente pasará de recorrer una lista de WhatsApp a contar con una tienda donde podrá: + +- Buscar un producto por su nombre. +- Navegar por rubro y subcategoría. +- Comparar opciones dentro de una misma ficha. +- Consultar varias imágenes antes de decidir. +- Identificar productos destacados desde la portada. +- Agregar artículos al carrito y modificar cantidades. +- Acceder fácilmente a los canales de contacto de SMEP. + +Para los responsables del comercio, la nueva organización facilita la incorporación de productos, el cambio de precios, el control futuro de existencias y la selección de promociones para la portada. + +## 8. Puntos que SMEP debería revisar antes de publicar + +El catálogo está preparado, pero se recomienda que los responsables comerciales confirmen los siguientes puntos: + +1. **Precios:** validar que los importes del catálogo anterior continúen vigentes. +2. **Existencias:** reemplazar las 10 unidades demostrativas por cantidades reales o definir la política de disponibilidad. +3. **Descripciones:** 104 productos no contaban con una descripción suficiente en el material de origen. Conviene completarlas gradualmente con medidas, funciones, garantía y condiciones de entrega. +4. **Marca pendiente:** existe un artículo cuya marca no pudo determinarse con seguridad y requiere revisión. +5. **Opciones de productos:** confirmar las medidas, capacidades y demás variantes agrupadas. +6. **Orden de los destacados:** revisar si los 13 artículos elegidos son los que SMEP desea impulsar comercialmente. +7. **Mensajes de portada:** definir los textos, promociones y llamados a la acción que acompañarán las cuatro imágenes principales. +8. **Dirección pública de la tienda:** confirmar el nombre o dominio que utilizarán los clientes. +9. **Venta y entrega:** acordar medios de pago, retiro, envío y condiciones comerciales antes del lanzamiento. + +## 9. Estado y seguridad de la migración + +La preparación fue realizada de forma ordenada y reversible. Se verificó que puedan incorporarse y retirarse tanto el catálogo como las secciones de portada sin alterar el funcionamiento general de la tienda. + +También se realizaron pruebas sobre la carga de productos, imágenes, categorías, opciones, existencias y contenidos destacados. El resultado de esas verificaciones fue satisfactorio. + +Hasta el momento, el trabajo quedó **preparado para ser aplicado**, pero no se publicó como tienda definitiva ni se reemplazó el inventario real del comercio. + +## 10. Conclusión + +La migración convierte el catálogo de WhatsApp Business en una tienda organizada, navegable y preparada para crecer. Se conservaron los productos, precios e imágenes disponibles, y se mejoró su presentación mediante categorías, opciones agrupadas, secciones destacadas y una portada visual propia de Mutual SMEP. + +El paso siguiente recomendado es una revisión comercial breve por parte de los responsables de SMEP, especialmente sobre precios, existencias, descripciones y promociones. Una vez confirmados esos puntos, el catálogo estará en condiciones de avanzar hacia su publicación. diff --git a/public/images/tennants/mutual_smep/carousel/01-tecnologia.webp b/public/images/tennants/mutual_smep/carousel/01-tecnologia.webp new file mode 100644 index 00000000..8759d6d2 Binary files /dev/null and b/public/images/tennants/mutual_smep/carousel/01-tecnologia.webp differ diff --git a/public/images/tennants/mutual_smep/carousel/02-hogar.webp b/public/images/tennants/mutual_smep/carousel/02-hogar.webp new file mode 100644 index 00000000..9b6efe26 Binary files /dev/null and b/public/images/tennants/mutual_smep/carousel/02-hogar.webp differ diff --git a/public/images/tennants/mutual_smep/carousel/03-vida-activa.webp b/public/images/tennants/mutual_smep/carousel/03-vida-activa.webp new file mode 100644 index 00000000..e7400be3 Binary files /dev/null and b/public/images/tennants/mutual_smep/carousel/03-vida-activa.webp differ diff --git a/public/images/tennants/mutual_smep/carousel/04-descanso.webp b/public/images/tennants/mutual_smep/carousel/04-descanso.webp new file mode 100644 index 00000000..831b8da3 Binary files /dev/null and b/public/images/tennants/mutual_smep/carousel/04-descanso.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-dobby-kavanagh-negro-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-dobby-kavanagh-negro-01.webp new file mode 100644 index 00000000..8c1611af Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-dobby-kavanagh-negro-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-kavanagh-simil-plumon-reversible-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-kavanagh-simil-plumon-reversible-01.webp new file mode 100644 index 00000000..b23df65b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-kavanagh-simil-plumon-reversible-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-01.webp new file mode 100644 index 00000000..5df81e38 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-02.webp new file mode 100644 index 00000000..e0f08b45 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-03.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-03.webp new file mode 100644 index 00000000..fd7e4188 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-1-1-2-pl-sense-duo-bitono-con-corderito-jc-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon-01.webp new file mode 100644 index 00000000..1f21774b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-con-2-fundas-almohadon-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-reversible-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-reversible-01.webp new file mode 100644 index 00000000..0a4ad3c2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-kavanagh-simil-plumon-reversible-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-01.webp new file mode 100644 index 00000000..e0f08b45 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-02.webp new file mode 100644 index 00000000..fd7e4188 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-03.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-03.webp new file mode 100644 index 00000000..5df81e38 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-king-sense-duo-bitono-con-corderito-jc-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-01.webp new file mode 100644 index 00000000..1ec394da Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-02.webp new file mode 100644 index 00000000..1ca466a0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-hotel-oxford-platinum-700-h-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-01.webp new file mode 100644 index 00000000..f6982ab2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-02.webp new file mode 100644 index 00000000..44c6485c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/acolchado-queen-simil-plumon-reversible-kavanagh-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-lisboa-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-lisboa-jc-01.webp new file mode 100644 index 00000000..d784b579 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-lisboa-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-01.webp new file mode 100644 index 00000000..441de3b4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-02.webp new file mode 100644 index 00000000..37829823 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-1-1-2-pl-londres-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-01.webp new file mode 100644 index 00000000..d784b579 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-02.webp new file mode 100644 index 00000000..ff02996f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/edredon-2-1-2-pl-lisboa-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc-01.webp new file mode 100644 index 00000000..d3d868fb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-2-1-2-pl-sherpa-doble-corderito-y-polar-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-1-1-2-pl-kavanagh-premium-soft-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-1-1-2-pl-kavanagh-premium-soft-01.webp new file mode 100644 index 00000000..6c8c40c8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-1-1-2-pl-kavanagh-premium-soft-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-king-kavanagh-premium-soft-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-king-kavanagh-premium-soft-01.webp new file mode 100644 index 00000000..6c8c40c8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/frazada-polar-king-kavanagh-premium-soft-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-01.webp new file mode 100644 index 00000000..a8362f08 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-02.webp new file mode 100644 index 00000000..840cd12c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-acolchado-queen-zurich-2-fundas-almohadon-jc-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-01.webp new file mode 100644 index 00000000..6d00e357 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-02.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-02.webp new file mode 100644 index 00000000..9225a130 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-03.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-03.webp new file mode 100644 index 00000000..24aed11c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-2-1-2-pl-alaska-c-corderito-jc-2-fundas-almohadones-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-king-alaska-c-corderito-2-fundas-almohadones-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-king-alaska-c-corderito-2-fundas-almohadones-01.webp new file mode 100644 index 00000000..6508c5fe Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/kit-edredon-king-alaska-c-corderito-2-fundas-almohadones-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier-01.webp new file mode 100644 index 00000000..f93a8a08 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-frazadas-y-edredon/manta-simil-piel-de-conejo-con-reverso-aterciopelado-jean-cartier-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/acolchados-y-sabanas-infantil/set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc-01.webp b/public/images/tennants/mutual_smep/catalog/acolchados-y-sabanas-infantil/set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc-01.webp new file mode 100644 index 00000000..15044f1d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/acolchados-y-sabanas-infantil/set-cuna-de-6-piezas-acolchado-sabanas-arcoiris-multicolor-jc-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-01.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-01.webp new file mode 100644 index 00000000..65dae964 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-02.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-02.webp new file mode 100644 index 00000000..35468467 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-3300-w-tcl-taca-3300fcsa-frio-calor-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-01.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-01.webp new file mode 100644 index 00000000..2596527a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-02.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-02.webp new file mode 100644 index 00000000..ff81c506 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-03.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-03.webp new file mode 100644 index 00000000..d8f1f565 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-04.webp b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-04.webp new file mode 100644 index 00000000..392b661b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/aires-acondicionados/split-bgh-5200-w-bsh-52wcu-frio-calor-silent-air-4300-frigorias-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-01.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-01.webp new file mode 100644 index 00000000..2a622b8f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-02.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-02.webp new file mode 100644 index 00000000..b2fd19ad Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-inducol-0-80x1-90-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-01.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-01.webp new file mode 100644 index 00000000..791f542c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-02.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-02.webp new file mode 100644 index 00000000..bd73a5f8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-1-pl-0-80x1-90/sommier-piero-paraiso-0-90x1-90x0-20-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-01.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-01.webp new file mode 100644 index 00000000..cc08f185 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-02.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-02.webp new file mode 100644 index 00000000..bb4a9cbf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-03.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-03.webp new file mode 100644 index 00000000..47a0391b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-king-koil-elite-contour-140x190-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-01.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-01.webp new file mode 100644 index 00000000..62087d0b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-02.webp b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-02.webp new file mode 100644 index 00000000..a5374969 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/base-sommier-2-pl-1-40x1-90/sommier-piero-legrand-140x190x020-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-01.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-01.webp new file mode 100644 index 00000000..2c5df450 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-02.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-02.webp new file mode 100644 index 00000000..0b17f5e0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-03.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-03.webp new file mode 100644 index 00000000..e767533b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-04.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-04.webp new file mode 100644 index 00000000..992b5d88 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-05.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-05.webp new file mode 100644 index 00000000..44f0502c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-1-l-adventure-go-to-con-tapon-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-01.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-01.webp new file mode 100644 index 00000000..3937e956 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-02.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-02.webp new file mode 100644 index 00000000..45d8e5f7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-03.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-03.webp new file mode 100644 index 00000000..d7c0502e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-04.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-04.webp new file mode 100644 index 00000000..f99f5830 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-800-ml-mate-system-classic-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-01.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-01.webp new file mode 100644 index 00000000..9c21e90b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-02.webp b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-02.webp new file mode 100644 index 00000000..08b58691 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bazar/termo-stanley-950-ml-clasico-con-manija-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-flowers-pink-nena-c-acc-6095-01.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-flowers-pink-nena-c-acc-6095-01.webp new file mode 100644 index 00000000..1454df7d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-flowers-pink-nena-c-acc-6095-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-01.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-01.webp new file mode 100644 index 00000000..3f78dbe5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-02.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-02.webp new file mode 100644 index 00000000..eb7b9b9e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bici-stark-r16-team-junior-nene-6064-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-fire-bird-r29-frenio-disco-01.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-fire-bird-r29-frenio-disco-01.webp new file mode 100644 index 00000000..1279434c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-fire-bird-r29-frenio-disco-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-playera-ross-full-r26-01.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-playera-ross-full-r26-01.webp new file mode 100644 index 00000000..8a3db04d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-playera-ross-full-r26-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-venzo-loki-r29-fd-21-v-shimano-01.webp b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-venzo-loki-r29-fd-21-v-shimano-01.webp new file mode 100644 index 00000000..d630cb29 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/bicicletas/bicicleta-venzo-loki-r29-fd-21-v-shimano-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-01.webp new file mode 100644 index 00000000..c9c77761 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-02.webp new file mode 100644 index 00000000..f00a4960 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-03.webp new file mode 100644 index 00000000..3977d74e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-s21-tiro-balanceado-sin-termostato-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-01.webp new file mode 100644 index 00000000..f8556916 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-02.webp new file mode 100644 index 00000000..6a6a1871 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-3000-cal-tiro-balanceado-con-termostato-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-01.webp new file mode 100644 index 00000000..dabe6b94 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-02.webp new file mode 100644 index 00000000..b4c7bb2a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-03.webp new file mode 100644 index 00000000..b06bbef8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-04.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-04.webp new file mode 100644 index 00000000..6bf6203c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-05.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-05.webp new file mode 100644 index 00000000..c0923578 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-2000-cal-tiro-balanceado-con-termostato-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-01.webp new file mode 100644 index 00000000..fa22d9e4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-02.webp new file mode 100644 index 00000000..7da56ad5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-03.webp new file mode 100644 index 00000000..33a2cb85 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/eskabe-tt-3000-cal-tiro-balanceado-con-termostato-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-01.webp new file mode 100644 index 00000000..8208af4c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-02.webp new file mode 100644 index 00000000..0d15ef15 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-03.webp new file mode 100644 index 00000000..927077d2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba2s-2000-cal-tiro-balanceado-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-01.webp new file mode 100644 index 00000000..622668bc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-02.webp new file mode 100644 index 00000000..6c47069d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-03.webp new file mode 100644 index 00000000..0d15ef15 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-04.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-04.webp new file mode 100644 index 00000000..927077d2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-con-salida-al-ext/longvie-eba3s-3000-cal-tiro-balanceado-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-01.webp new file mode 100644 index 00000000..965b7190 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-02.webp new file mode 100644 index 00000000..a3378cca Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-de-vidrio-whitenblack-pvwb-01-pie-pared-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-01.webp new file mode 100644 index 00000000..e64f0e7d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-02.webp new file mode 100644 index 00000000..6f6c5393 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-03.webp new file mode 100644 index 00000000..b3d82824 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/calefactor-infrarrojo-liliana-calore-ci-080-fijo-1400-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-01.webp new file mode 100644 index 00000000..ae7f7876 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-02.webp new file mode 100644 index 00000000..4869226d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-03.webp new file mode 100644 index 00000000..5239a168 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-04.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-04.webp new file mode 100644 index 00000000..91e7e621 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-05.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-05.webp new file mode 100644 index 00000000..43221bf9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-06.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-06.webp new file mode 100644 index 00000000..cd67727f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-liliana-cfh417-hotwind-2000-w-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-01.webp new file mode 100644 index 00000000..1e4089d0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-02.webp new file mode 100644 index 00000000..2c659226 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-03.webp new file mode 100644 index 00000000..400f6e00 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-split-liliana-whitenblack-cpwb-01-2000-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-01.webp new file mode 100644 index 00000000..8d15b1e8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-02.webp new file mode 100644 index 00000000..148986c6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/caloventor-whitenblack-cawb-02-2000-w-doble-posicion-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-01.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-01.webp new file mode 100644 index 00000000..81ac023f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-02.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-02.webp new file mode 100644 index 00000000..167fc9d8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-03.webp b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-03.webp new file mode 100644 index 00000000..4ab06c18 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefaccion-electrica/torre-liliana-tropic-ftp-530-1500-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-01.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-01.webp new file mode 100644 index 00000000..742922b4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-02.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-02.webp new file mode 100644 index 00000000..82530e84 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-03.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-03.webp new file mode 100644 index 00000000..4f3cc808 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/eskabe-3000-cal-s21-mx3-sin-salida-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-01.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-01.webp new file mode 100644 index 00000000..2445e43d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-02.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-02.webp new file mode 100644 index 00000000..2e347bc3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-03.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-03.webp new file mode 100644 index 00000000..f3a7241f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-04.webp b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-04.webp new file mode 100644 index 00000000..7bb7a6c5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefactor-sin-salida-al-ext/longvie-eca-3kv-3200-cal-infr-visor-grafito-sin-salida-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/calefones-y-termotanques/calefon-longvie-14-l-cn-514-ss-n-enc-sensor-01.webp b/public/images/tennants/mutual_smep/catalog/calefones-y-termotanques/calefon-longvie-14-l-cn-514-ss-n-enc-sensor-01.webp new file mode 100644 index 00000000..3efc1689 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/calefones-y-termotanques/calefon-longvie-14-l-cn-514-ss-n-enc-sensor-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-01.webp new file mode 100644 index 00000000..d4ab4a7e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-02.webp new file mode 100644 index 00000000..79fed0a2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-03.webp new file mode 100644 index 00000000..224a1111 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/blu-g73-128-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-01.webp new file mode 100644 index 00000000..52ddcfd0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-02.webp new file mode 100644 index 00000000..a6bb8e10 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-03.webp new file mode 100644 index 00000000..fa27b022 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-01.webp new file mode 100644 index 00000000..a3162e37 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-02.webp new file mode 100644 index 00000000..a3234354 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g15-4-512-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-01.webp new file mode 100644 index 00000000..89ce3d36 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-02.webp new file mode 100644 index 00000000..2d654e0c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-03.webp new file mode 100644 index 00000000..e5b5a7dc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-04.webp b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-04.webp new file mode 100644 index 00000000..10da9710 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/motorola-g35-4-256-gb-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-01.webp new file mode 100644 index 00000000..62f1aec4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-02.webp new file mode 100644 index 00000000..64e6839c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-03.webp new file mode 100644 index 00000000..ab640348 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a07-4-128-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-01.webp new file mode 100644 index 00000000..e5e983fa Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-02.webp new file mode 100644 index 00000000..ca14f9d3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-03.webp new file mode 100644 index 00000000..9d8f5700 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-4-128-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-01.webp new file mode 100644 index 00000000..b4b51d2b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-02.webp new file mode 100644 index 00000000..c81d3c06 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-03.webp new file mode 100644 index 00000000..42d2350f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a17-5g-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-01.webp new file mode 100644 index 00000000..5f415185 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-02.webp new file mode 100644 index 00000000..6904a867 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-03.webp new file mode 100644 index 00000000..d5c5cd00 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a26-5g-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-01.webp new file mode 100644 index 00000000..4746a0f9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-02.webp new file mode 100644 index 00000000..eb375791 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-03.webp new file mode 100644 index 00000000..67285f5a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-04.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-04.webp new file mode 100644 index 00000000..5f6ef257 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-05.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-05.webp new file mode 100644 index 00000000..afee2124 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a36-5g-8-256-gb-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-01.webp new file mode 100644 index 00000000..4b1f2adb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-02.webp new file mode 100644 index 00000000..9ed6a366 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-03.webp new file mode 100644 index 00000000..d46c2574 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-a56-5g-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-01.webp new file mode 100644 index 00000000..4718b0ed Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-02.webp new file mode 100644 index 00000000..30ae93b5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-03.webp new file mode 100644 index 00000000..a5476035 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-04.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-04.webp new file mode 100644 index 00000000..61138856 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-05.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-05.webp new file mode 100644 index 00000000..15620de2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-06.webp b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-06.webp new file mode 100644 index 00000000..ad39f55d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/samsung-galaxy-a16-4-128-gb-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-01.webp new file mode 100644 index 00000000..10bdae83 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-02.webp new file mode 100644 index 00000000..45663f15 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-03.webp new file mode 100644 index 00000000..7489284b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-c85-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-01.webp new file mode 100644 index 00000000..b8df1eba Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-02.webp new file mode 100644 index 00000000..fe20a592 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-03.webp new file mode 100644 index 00000000..73464c9f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-poco-m7-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-01.webp new file mode 100644 index 00000000..0aee9de2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-02.webp new file mode 100644 index 00000000..cfcff827 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-15c-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-01.webp new file mode 100644 index 00000000..94f9359b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-02.webp new file mode 100644 index 00000000..62423cc0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-03.webp new file mode 100644 index 00000000..395b8d8c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-04.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-04.webp new file mode 100644 index 00000000..7e447315 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-05.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-05.webp new file mode 100644 index 00000000..314d2fa9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-06.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-06.webp new file mode 100644 index 00000000..3b534070 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-14-pro-5g-8-256-gb-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-01.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-01.webp new file mode 100644 index 00000000..a67752a0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-02.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-02.webp new file mode 100644 index 00000000..26c9dae4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-03.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-03.webp new file mode 100644 index 00000000..8a2d0bf8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-04.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-04.webp new file mode 100644 index 00000000..a0f45e63 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-05.webp b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-05.webp new file mode 100644 index 00000000..176bc343 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/celulares/xiaomi-redmi-note-15-8-256-gb-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-01.webp new file mode 100644 index 00000000..9f67ca48 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-02.webp new file mode 100644 index 00000000..614a8d99 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-03.webp new file mode 100644 index 00000000..e978dff1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-04.webp new file mode 100644 index 00000000..d45e7e90 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-florencia-5536-f-56-cm-color-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-01.webp new file mode 100644 index 00000000..40c262e7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-02.webp new file mode 100644 index 00000000..2ae97752 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-03.webp new file mode 100644 index 00000000..5d90bb98 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-04.webp new file mode 100644 index 00000000..b496fb92 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-05.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-05.webp new file mode 100644 index 00000000..d323053d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-06.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-06.webp new file mode 100644 index 00000000..1667ee74 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-07.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-07.webp new file mode 100644 index 00000000..3b522f81 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331bf-56-cm-color-blanca-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-01.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-01.webp new file mode 100644 index 00000000..b15924fb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-02.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-02.webp new file mode 100644 index 00000000..f31aec2c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-03.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-03.webp new file mode 100644 index 00000000..95d13c5c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13331xf-56cm-acero-inoxidable-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-01.webp new file mode 100644 index 00000000..924ccd38 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-02.webp new file mode 100644 index 00000000..7a7d13f1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-03.webp new file mode 100644 index 00000000..d14d9473 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-04.webp new file mode 100644 index 00000000..b21c8ec2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-05.webp b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-05.webp new file mode 100644 index 00000000..ec2268bc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/cocinas/cocina-longvie-13501bf-56-cm-color-blanca-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-espuma-inducol-aurelia-0-80x1-90x0-20-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-espuma-inducol-aurelia-0-80x1-90x0-20-01.webp new file mode 100644 index 00000000..3807f0a4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-espuma-inducol-aurelia-0-80x1-90x0-20-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-01.webp new file mode 100644 index 00000000..cecdc05c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-02.webp new file mode 100644 index 00000000..1ac44723 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-inducol-constanza-espuma-alta-densidad-080x24-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-01.webp new file mode 100644 index 00000000..d4c76683 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-02.webp new file mode 100644 index 00000000..800ad844 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-03.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-03.webp new file mode 100644 index 00000000..ce2e4607 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-04.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-04.webp new file mode 100644 index 00000000..a855bd9a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-05.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-05.webp new file mode 100644 index 00000000..1a726f6b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-king-koil-resortes-bradley-080x190x026-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-01.webp new file mode 100644 index 00000000..9454b256 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-02.webp new file mode 100644 index 00000000..7baf2619 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-body-matelasse-espuma-media-densidad-0-90x1-90x0-20-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-01.webp new file mode 100644 index 00000000..05f5ea7a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-02.webp new file mode 100644 index 00000000..1b925c82 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-03.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-03.webp new file mode 100644 index 00000000..b58ee132 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/colchon-piero-resorte-corona-real-0-8x1-90x0-26-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-01.webp new file mode 100644 index 00000000..91d2ffea Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-02.webp new file mode 100644 index 00000000..951dff54 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-03.webp b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-03.webp new file mode 100644 index 00000000..4c1e9d88 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-1-plaza-0-80x1-90/soporte-led-26-60-nakan-spl-375e-extensible-y-giratorio-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-01.webp new file mode 100644 index 00000000..3a8c401c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-02.webp new file mode 100644 index 00000000..04b132a4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-inducol-constanza-espuma-alta-densidad-1-40x1-90x0-24-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-01.webp new file mode 100644 index 00000000..148491e8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-02.webp new file mode 100644 index 00000000..b5f5fa90 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-03.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-03.webp new file mode 100644 index 00000000..00d071c5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-04.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-04.webp new file mode 100644 index 00000000..699efbc9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-05.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-05.webp new file mode 100644 index 00000000..20afbd6c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-06.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-06.webp new file mode 100644 index 00000000..f483d2e3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-07.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-07.webp new file mode 100644 index 00000000..0e3fb0e9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-king-koil-g22-espuma-alta-densidad-1-40x1-90x0-24-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-01.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-01.webp new file mode 100644 index 00000000..03a4f0af Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-02.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-02.webp new file mode 100644 index 00000000..b9235fd0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-03.webp b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-03.webp new file mode 100644 index 00000000..c31df4db Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/colchon-2-plazas-1-40x1-90/colchon-suavegom-espuma-merit-doble-pillow-140x190x029-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-01.webp new file mode 100644 index 00000000..1859f6d6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-02.webp new file mode 100644 index 00000000..4cf0e743 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-03.webp new file mode 100644 index 00000000..3a645507 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-de-mano-oster-hm-2600-negra-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-01.webp new file mode 100644 index 00000000..e9f668f4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-02.webp new file mode 100644 index 00000000..5a696d29 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-03.webp new file mode 100644 index 00000000..c06a3b18 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-04.webp new file mode 100644 index 00000000..f2350366 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-05.webp new file mode 100644 index 00000000..4a3b488f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-06.webp new file mode 100644 index 00000000..5c6a777b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/batidora-planetaria-atma-bpat21wp-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-01.webp new file mode 100644 index 00000000..4683ade5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-02.webp new file mode 100644 index 00000000..12a164e8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-03.webp new file mode 100644 index 00000000..56257998 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-atma-ca-8182p-digital-1000-w-1-8-l-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-01.webp new file mode 100644 index 00000000..942152d1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-02.webp new file mode 100644 index 00000000..1743c54a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-03.webp new file mode 100644 index 00000000..4e4ef19f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-04.webp new file mode 100644 index 00000000..2f00223d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-05.webp new file mode 100644 index 00000000..0482847a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-06.webp new file mode 100644 index 00000000..7dbac106 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-07.webp new file mode 100644 index 00000000..c99f9844 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-08.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-08.webp new file mode 100644 index 00000000..eab8a295 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-08.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-09.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-09.webp new file mode 100644 index 00000000..7c168623 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-09.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-10.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-10.webp new file mode 100644 index 00000000..78f477b1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-atma-ceat-5418p-1-litro-10.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-01.webp new file mode 100644 index 00000000..19776b08 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-02.webp new file mode 100644 index 00000000..0b5a6a3c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-03.webp new file mode 100644 index 00000000..dfa3fd66 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-04.webp new file mode 100644 index 00000000..1562392d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-05.webp new file mode 100644 index 00000000..1821aa8e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-06.webp new file mode 100644 index 00000000..e2fd7a5f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-07.webp new file mode 100644 index 00000000..0957787a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-08.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-08.webp new file mode 100644 index 00000000..8dbf3025 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-express-liliana-ac-980-3-en-1-08.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-01.webp new file mode 100644 index 00000000..0ff04d79 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-02.webp new file mode 100644 index 00000000..05691f50 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-03.webp new file mode 100644 index 00000000..b1bc839e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cafetera-moulinex-mini-me-dolce-capsulas-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-01.webp new file mode 100644 index 00000000..5e0dcde9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-02.webp new file mode 100644 index 00000000..7100cc03 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-03.webp new file mode 100644 index 00000000..da39edb3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortabarba-philips-bt-7201-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-01.webp new file mode 100644 index 00000000..52a604ac Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-02.webp new file mode 100644 index 00000000..8a86225b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-03.webp new file mode 100644 index 00000000..71042b68 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/cortacabello-philips-qc-5560-8-posiciones-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-01.webp new file mode 100644 index 00000000..a84dbe8b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-02.webp new file mode 100644 index 00000000..609baac0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-03.webp new file mode 100644 index 00000000..3f6b58c1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/exprimidor-electrico-liliana-ae-920-citrijug-40-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-01.webp new file mode 100644 index 00000000..12128278 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-02.webp new file mode 100644 index 00000000..f6bbf590 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-03.webp new file mode 100644 index 00000000..d9b64a9d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-04.webp new file mode 100644 index 00000000..c065f4aa Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-05.webp new file mode 100644 index 00000000..46c2adaf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-06.webp new file mode 100644 index 00000000..27e46a03 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-07.webp new file mode 100644 index 00000000..9b4865cf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-08.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-08.webp new file mode 100644 index 00000000..357c9b6b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afd420n-4-2-l-digital-08.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-01.webp new file mode 100644 index 00000000..ab463c1a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-02.webp new file mode 100644 index 00000000..1d0ee496 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-03.webp new file mode 100644 index 00000000..129a5307 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-04.webp new file mode 100644 index 00000000..346f6de9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-05.webp new file mode 100644 index 00000000..74a34aa4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/freidora-de-aire-peabody-pe-afg03n-7-l-grill-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-01.webp new file mode 100644 index 00000000..682b2e9c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-02.webp new file mode 100644 index 00000000..e08924c0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-03.webp new file mode 100644 index 00000000..8561f7a4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/juguera-liliana-aj-950-nutrijug-vaso-350-ml-2-velocidades-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-01.webp new file mode 100644 index 00000000..abf5adea Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-02.webp new file mode 100644 index 00000000..476de4e0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-03.webp new file mode 100644 index 00000000..7a9f0f57 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/licuadora-electrolux-sba10-personal-600-ml-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-01.webp new file mode 100644 index 00000000..bd1e5c56 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-02.webp new file mode 100644 index 00000000..9d1553b2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-03.webp new file mode 100644 index 00000000..e50806c3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/lustraspiradora-liliana-espejo-ll350-850-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-01.webp new file mode 100644 index 00000000..6b1e983b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-02.webp new file mode 100644 index 00000000..8065a087 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-ah-300-450-w-vaso-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-01.webp new file mode 100644 index 00000000..80d28f17 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-02.webp new file mode 100644 index 00000000..086d203d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-liliana-rainbow-mix-ah-101-2-3-vaso-medidor-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-01.webp new file mode 100644 index 00000000..3c9bb7a9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-02.webp new file mode 100644 index 00000000..d013ba91 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-03.webp new file mode 100644 index 00000000..9533df36 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-04.webp new file mode 100644 index 00000000..3e545e88 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-05.webp new file mode 100644 index 00000000..fd3554e6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-06.webp new file mode 100644 index 00000000..2ad6c050 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-07.webp new file mode 100644 index 00000000..080c974d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/mixer-philips-hr-2531-50-promix-400-w-vaso-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-01.webp new file mode 100644 index 00000000..1f59478a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-02.webp new file mode 100644 index 00000000..9bb66fce Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-03.webp new file mode 100644 index 00000000..bf219557 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/multiprocesadora-liliana-am-700-simplix-700-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-01.webp new file mode 100644 index 00000000..e2a9354e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-02.webp new file mode 100644 index 00000000..5a16a2b4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-03.webp new file mode 100644 index 00000000..0967dc5d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-pe-0821ap-nap-1-7-l-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-01.webp new file mode 100644 index 00000000..5e8f35e2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-02.webp new file mode 100644 index 00000000..66789efd Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-03.webp new file mode 100644 index 00000000..cae74f5f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-04.webp new file mode 100644 index 00000000..79962934 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-05.webp new file mode 100644 index 00000000..5b6ea358 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-atma-ped23mp-disney-vintage-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-01.webp new file mode 100644 index 00000000..b15a7f15 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-02.webp new file mode 100644 index 00000000..aea93045 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-03.webp new file mode 100644 index 00000000..a5494a2a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-04.webp new file mode 100644 index 00000000..766f7a71 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-05.webp new file mode 100644 index 00000000..f0a46e66 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-06.webp new file mode 100644 index 00000000..f5db3d10 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-gigo-g-17898-sd-1-7-l-digital-cromada-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-01.webp new file mode 100644 index 00000000..899d47cc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-02.webp new file mode 100644 index 00000000..a2afcf34 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-03.webp new file mode 100644 index 00000000..c9242e03 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-04.webp new file mode 100644 index 00000000..8ed63e3c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-165-matera-color-negra-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-01.webp new file mode 100644 index 00000000..d88aec9a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-02.webp new file mode 100644 index 00000000..5f6c141e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-03.webp new file mode 100644 index 00000000..c898b274 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-04.webp new file mode 100644 index 00000000..ebaf4246 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-05.webp new file mode 100644 index 00000000..336e3879 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pava-electrica-liliana-ap-200-infustyle-1-7-l-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-01.webp new file mode 100644 index 00000000..a6417a45 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-02.webp new file mode 100644 index 00000000..2367d60d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-03.webp new file mode 100644 index 00000000..c8bc06bf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-04.webp new file mode 100644 index 00000000..192d8fee Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-05.webp new file mode 100644 index 00000000..ff3b5589 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-06.webp new file mode 100644 index 00000000..fadef21f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-07.webp new file mode 100644 index 00000000..86f8655e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/picadora-moulinex-ad-6011ar-750-w-blanca-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-01.webp new file mode 100644 index 00000000..ab4624f3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-02.webp new file mode 100644 index 00000000..3e357b4c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-03.webp new file mode 100644 index 00000000..f99c419b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/plancha-vapor-philips-gc-1022-40-2000-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-01.webp new file mode 100644 index 00000000..93293187 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-02.webp new file mode 100644 index 00000000..b67e53cf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-03.webp new file mode 100644 index 00000000..10fdb8f8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-04.webp new file mode 100644 index 00000000..6dff54c7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-05.webp new file mode 100644 index 00000000..a715082d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/pochoclera-atma-po-at9801dnp-disney-mickey-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-01.webp new file mode 100644 index 00000000..1c6c8004 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-02.webp new file mode 100644 index 00000000..e98f5579 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-atma-sp-8970-classic-3-velocidades-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-01.webp new file mode 100644 index 00000000..9e2bda0d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-02.webp new file mode 100644 index 00000000..a7cf84a0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-03.webp new file mode 100644 index 00000000..ff06c3b3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-gama-9465-brillant-blue-titanium-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-01.webp new file mode 100644 index 00000000..878bd970 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-02.webp new file mode 100644 index 00000000..6e7628e0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-03.webp new file mode 100644 index 00000000..fe78f005 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/secador-cabello-philips-bhd-302-10-1600-w-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-01.webp new file mode 100644 index 00000000..2486b6d0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-02.webp new file mode 100644 index 00000000..849d15a7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-03.webp new file mode 100644 index 00000000..c5924b26 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-04.webp new file mode 100644 index 00000000..528da9e5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-atma-toat-21vcp-vintage-color-crema-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-01.webp new file mode 100644 index 00000000..e54f4007 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-02.webp new file mode 100644 index 00000000..94a14f83 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-03.webp new file mode 100644 index 00000000..dc1f5cf5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-04.webp new file mode 100644 index 00000000..3c022bd3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/tostadora-oster-tr500-acero-inoxidable-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-01.webp new file mode 100644 index 00000000..e272083a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-02.webp new file mode 100644 index 00000000..351c95a8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-03.webp new file mode 100644 index 00000000..2a2848d6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-04.webp new file mode 100644 index 00000000..d1548868 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-05.webp new file mode 100644 index 00000000..efd2f697 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-06.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-06.webp new file mode 100644 index 00000000..9b8317f1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-07.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-07.webp new file mode 100644 index 00000000..bf1f871a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-08.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-08.webp new file mode 100644 index 00000000..f7101f8b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-08.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-09.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-09.webp new file mode 100644 index 00000000..1ca2f98d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-09.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-10.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-10.webp new file mode 100644 index 00000000..e0553b9f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/waflera-atma-ws-027drn-disney-2-en-1-10.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-01.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-01.webp new file mode 100644 index 00000000..7a46a291 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-02.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-02.webp new file mode 100644 index 00000000..5986405e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-03.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-03.webp new file mode 100644 index 00000000..2eed7e82 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-04.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-04.webp new file mode 100644 index 00000000..ddb2a5b9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-05.webp b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-05.webp new file mode 100644 index 00000000..33e4fc6d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/electrodomesticos-pequenos/yogurtera-atma-ym3010p-7-porciones-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-01.webp new file mode 100644 index 00000000..193b6248 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-02.webp new file mode 100644 index 00000000..9b3a01d5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-03.webp new file mode 100644 index 00000000..3bd925f8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-04.webp new file mode 100644 index 00000000..02dd6c50 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-358-afb-282-litros-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-01.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-01.webp new file mode 100644 index 00000000..e0c21a56 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-02.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-02.webp new file mode 100644 index 00000000..65a18882 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-03.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-03.webp new file mode 100644 index 00000000..fd62f7d5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-04.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-04.webp new file mode 100644 index 00000000..1779e2b7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-05.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-05.webp new file mode 100644 index 00000000..7e5144ef Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-368afp-330-lt-color-plata-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-01.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-01.webp new file mode 100644 index 00000000..e94b2bb1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-02.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-02.webp new file mode 100644 index 00000000..b54448f0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-03.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-03.webp new file mode 100644 index 00000000..9f20d5ac Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-04.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-04.webp new file mode 100644 index 00000000..30684dc8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-05.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-05.webp new file mode 100644 index 00000000..757420ef Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-gafa-hgf-388-afb-374-litros-blanca-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-01.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-01.webp new file mode 100644 index 00000000..90df32be Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-02.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-02.webp new file mode 100644 index 00000000..e6abe124 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-03.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-03.webp new file mode 100644 index 00000000..becba7b7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-04.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-04.webp new file mode 100644 index 00000000..6c1ce023 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-05.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-05.webp new file mode 100644 index 00000000..ff694055 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-06.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-06.webp new file mode 100644 index 00000000..1f287e0b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-07.webp b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-07.webp new file mode 100644 index 00000000..62e6a724 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/heladeras/heladera-no-frost-gafa-hgnf333p-inverter-356-l-plata-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-01.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-01.webp new file mode 100644 index 00000000..12a9c98c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-02.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-02.webp new file mode 100644 index 00000000..94ce6caf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-03.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-03.webp new file mode 100644 index 00000000..576f27f2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-04.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-04.webp new file mode 100644 index 00000000..e3aae8d5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-05.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-05.webp new file mode 100644 index 00000000..e329f450 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-drean-concept-5-05-v1-5-kg-500-rpm-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-01.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-01.webp new file mode 100644 index 00000000..009eb3e2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-02.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-02.webp new file mode 100644 index 00000000..edaa80e9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-03.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-03.webp new file mode 100644 index 00000000..8bada323 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-04.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-04.webp new file mode 100644 index 00000000..56c44fd0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-05.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-05.webp new file mode 100644 index 00000000..bf732f52 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-06.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-06.webp new file mode 100644 index 00000000..1f19b636 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-gafa-fuzzy-fit-7-kg-760-rpm-color-blanco-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-01.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-01.webp new file mode 100644 index 00000000..41bc281e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-02.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-02.webp new file mode 100644 index 00000000..5f3bb56e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-03.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-03.webp new file mode 100644 index 00000000..3953ca54 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-04.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-04.webp new file mode 100644 index 00000000..82d659d9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-05.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-05.webp new file mode 100644 index 00000000..c102adc8 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-06.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-06.webp new file mode 100644 index 00000000..e053cbac Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-philco-phlf-6510b2-6-5-kg-1000-rpm-blanco-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-01.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-01.webp new file mode 100644 index 00000000..3d807685 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-02.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-02.webp new file mode 100644 index 00000000..1cf217d3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-03.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-03.webp new file mode 100644 index 00000000..672fc8fe Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-04.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-04.webp new file mode 100644 index 00000000..6d1a7f67 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-05.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-05.webp new file mode 100644 index 00000000..7cd833b1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/lavarropas-automatico-samsung-ww65-6-5-kg-1000-rpm-blanco-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-01.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-01.webp new file mode 100644 index 00000000..984b5f3d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-02.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-02.webp new file mode 100644 index 00000000..607f83e5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-03.webp b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-03.webp new file mode 100644 index 00000000..571b9b96 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/lavarropas-automaticos/secarropas-kohinoor-a-665-acero-inoxidable-6-5-kg-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-01.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-01.webp new file mode 100644 index 00000000..1f2a03c7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-02.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-02.webp new file mode 100644 index 00000000..ce8662bf Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-03.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-03.webp new file mode 100644 index 00000000..319f9a64 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-25l-bgh-bhe-25m25i-duo-negro-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-01.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-01.webp new file mode 100644 index 00000000..3d19d503 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-02.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-02.webp new file mode 100644 index 00000000..f0c4e0a2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-03.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-03.webp new file mode 100644 index 00000000..103b8934 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-04.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-04.webp new file mode 100644 index 00000000..4cea50e6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-05.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-05.webp new file mode 100644 index 00000000..853a8fe1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-06.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-06.webp new file mode 100644 index 00000000..b749f175 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/horno-electrico-atma-grill-40-litros-c-2-anafes-hg-4022api-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-01.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-01.webp new file mode 100644 index 00000000..ec1d5a62 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-02.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-02.webp new file mode 100644 index 00000000..2d1810b7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-03.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-03.webp new file mode 100644 index 00000000..c9d63d7e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-bgh-28-l-bgh-b-228ds20i-plata-digital-con-grill-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-01.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-01.webp new file mode 100644 index 00000000..82bb4e1c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-02.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-02.webp new file mode 100644 index 00000000..0eeb20a6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-03.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-03.webp new file mode 100644 index 00000000..7f0acdb7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-04.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-04.webp new file mode 100644 index 00000000..fd39aefc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-05.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-05.webp new file mode 100644 index 00000000..c99157fe Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-06.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-06.webp new file mode 100644 index 00000000..f57f7e14 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-07.webp b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-07.webp new file mode 100644 index 00000000..4b50553a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/microondas-y-hornos-electricos/microondas-samsung-mg23-f3k3tak-23-litros-grill-color-negro-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-01.webp new file mode 100644 index 00000000..37474384 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-02.webp new file mode 100644 index 00000000..0343177a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-03.webp new file mode 100644 index 00000000..f73f9515 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-04.webp new file mode 100644 index 00000000..46dcba5f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-acer-aspire-7-i5-13420h-512ssd-16gb-15-6-rtx3050-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-01.webp new file mode 100644 index 00000000..df244e2d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-02.webp new file mode 100644 index 00000000..151cb7b1 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-03.webp new file mode 100644 index 00000000..59b65cce Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-04.webp new file mode 100644 index 00000000..d5826b1b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-f1504vap-intel-core-7-512gb-ssd-8gb-15-6-touch-win-11-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-01.webp new file mode 100644 index 00000000..30cf5558 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-02.webp new file mode 100644 index 00000000..ebaee036 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-03.webp new file mode 100644 index 00000000..f739b115 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-04.webp new file mode 100644 index 00000000..afb38dd7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-asus-vivobook-go-15-e1504ga-ws35-intel-core-i3-n305-8-256-gb-win11-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-01.webp new file mode 100644 index 00000000..71929377 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-02.webp new file mode 100644 index 00000000..3680196b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-03.webp new file mode 100644 index 00000000..8b8c4e63 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-04.webp new file mode 100644 index 00000000..f3cf91f0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ideapad-slim-3-amd-ryzen-5-8-512gb-ssd-15-6-full-hd-win11-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-01.webp new file mode 100644 index 00000000..8817deda Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-02.webp new file mode 100644 index 00000000..aa671a14 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-03.webp new file mode 100644 index 00000000..82dd5cb0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-04.webp new file mode 100644 index 00000000..1864ef85 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-05.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-05.webp new file mode 100644 index 00000000..0c12470c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-ryzen-7-8840hs-16-512gb-15-6-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-01.webp new file mode 100644 index 00000000..b55d0b3a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-02.webp new file mode 100644 index 00000000..39e49e1b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-03.webp new file mode 100644 index 00000000..ba304cbb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-04.webp new file mode 100644 index 00000000..ddf277af Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-05.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-05.webp new file mode 100644 index 00000000..bec13c0c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-06.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-06.webp new file mode 100644 index 00000000..5b3631f6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-06.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-07.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-07.webp new file mode 100644 index 00000000..2ba07b32 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-lenovo-s3-15q8x10-snapdragon-x-512gb-ssd-16gb-ddr5-15-3-win11-07.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-01.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-01.webp new file mode 100644 index 00000000..36e85732 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-02.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-02.webp new file mode 100644 index 00000000..797f2eb9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-03.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-03.webp new file mode 100644 index 00000000..47d0d5d4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-04.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-04.webp new file mode 100644 index 00000000..1f7af7c0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-05.webp b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-05.webp new file mode 100644 index 00000000..47573360 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/notebooks-y-tablets/notebook-msi-katana-15-hx-b14wgk-293us-i7-14650hx-up-to-5-2ghz-1tb-ssd-16gb-ddr5-geforce-rtx-5070-8gb-15-6-qhd-165hz-win-11-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-01.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-01.webp new file mode 100644 index 00000000..ab7aa51e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-02.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-02.webp new file mode 100644 index 00000000..6aeba940 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1010-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-01.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-01.webp new file mode 100644 index 00000000..32941510 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-02.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-02.webp new file mode 100644 index 00000000..0d8291b3 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1020-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-01.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-01.webp new file mode 100644 index 00000000..a834a53c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-02.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-02.webp new file mode 100644 index 00000000..dc5ac61e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1030-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-01.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-01.webp new file mode 100644 index 00000000..c4935406 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-02.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-02.webp new file mode 100644 index 00000000..0bfd285d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1043-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-01.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-01.webp new file mode 100644 index 00000000..0d4d4dd5 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-02.webp b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-02.webp new file mode 100644 index 00000000..d9e041fd Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/piletas/pileta-pelopincho-1055-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-01.webp b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-01.webp new file mode 100644 index 00000000..a9e6cab6 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-02.webp b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-02.webp new file mode 100644 index 00000000..507312d2 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-03.webp b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-03.webp new file mode 100644 index 00000000..a2d83934 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-spar-bios-3766-boo-color-blanco-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-01.webp b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-01.webp new file mode 100644 index 00000000..e6891994 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-02.webp b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-02.webp new file mode 100644 index 00000000..d21ea9e4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/purificador-de-aire/purificador-tst-360-60-estratto-acero-inox-60-cm-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-01.webp new file mode 100644 index 00000000..b1ec30d7 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-02.webp new file mode 100644 index 00000000..aa3e1bbb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-03.webp new file mode 100644 index 00000000..eddbabbc Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-04.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-04.webp new file mode 100644 index 00000000..06f61f7f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-32-bgh-b-3225s5a-android-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-01.webp new file mode 100644 index 00000000..1c697fb9 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-02.webp new file mode 100644 index 00000000..0453582d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-03.webp new file mode 100644 index 00000000..2d7f614d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-04.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-04.webp new file mode 100644 index 00000000..821f0f31 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-43-noblex-dr43-x7180-android-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-01.webp new file mode 100644 index 00000000..b944f6ac Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-02.webp new file mode 100644 index 00000000..2e97d76a Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-03.webp new file mode 100644 index 00000000..b9c449ce Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-32-dk32-x7000-android-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-01.webp new file mode 100644 index 00000000..803f3f28 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-02.webp new file mode 100644 index 00000000..c5435a34 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-03.webp new file mode 100644 index 00000000..1a786516 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-04.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-04.webp new file mode 100644 index 00000000..3f3061ea Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/smart-tv-noblex-50-dr50-x8500-google-tv-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-01.webp new file mode 100644 index 00000000..5ed3b1e4 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-02.webp new file mode 100644 index 00000000..ddaea152 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-03.webp new file mode 100644 index 00000000..283d3e8f Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-32-55-gbs-con-inclinacion-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-01.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-01.webp new file mode 100644 index 00000000..122ee75d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-02.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-02.webp new file mode 100644 index 00000000..38e7295e Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-03.webp b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-03.webp new file mode 100644 index 00000000..b5c6ef52 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/smart-tv/soporte-led-gbs-32-55-fijo-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-01.webp new file mode 100644 index 00000000..b37650ee Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-02.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-02.webp new file mode 100644 index 00000000..66847e9d Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-03.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-03.webp new file mode 100644 index 00000000..972164a0 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-bt-negro-on-ear-moonki-sound-mh-0510bt-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-01.webp new file mode 100644 index 00000000..93b15047 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-02.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-02.webp new file mode 100644 index 00000000..9c968bfe Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-03.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-03.webp new file mode 100644 index 00000000..65b025db Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-04.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-04.webp new file mode 100644 index 00000000..187a002c Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-05.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-05.webp new file mode 100644 index 00000000..f2337e3b Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-moonki-earbuds-sound-ma-tws66-black-05.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-01.webp new file mode 100644 index 00000000..ffc355eb Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-02.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-02.webp new file mode 100644 index 00000000..8aece021 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-03.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-03.webp new file mode 100644 index 00000000..bd3f4bdd Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-03.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-04.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-04.webp new file mode 100644 index 00000000..5b8e1b79 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/auricular-on-ear-moonki-sound-mh-0613-04.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/bafle-havit-bluetooth-sk-816bt-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/bafle-havit-bluetooth-sk-816bt-01.webp new file mode 100644 index 00000000..4d4eafaa Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/bafle-havit-bluetooth-sk-816bt-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/mouse-xtrike-me-backlit-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/mouse-xtrike-me-backlit-01.webp new file mode 100644 index 00000000..d4905f09 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/mouse-xtrike-me-backlit-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-01.webp new file mode 100644 index 00000000..6f3c7071 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-01.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-02.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-02.webp new file mode 100644 index 00000000..285b0c86 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/parlante-jbl-go-4-bluetooth-altavoz-ultraportatil-02.webp differ diff --git a/public/images/tennants/mutual_smep/catalog/tecnologia/teclado-xtrike-me-rainbow-mecanico-01.webp b/public/images/tennants/mutual_smep/catalog/tecnologia/teclado-xtrike-me-rainbow-mecanico-01.webp new file mode 100644 index 00000000..2f894210 Binary files /dev/null and b/public/images/tennants/mutual_smep/catalog/tecnologia/teclado-xtrike-me-rainbow-mecanico-01.webp differ diff --git a/public/images/tennants/mutual_smep/mutual_smep_favicon.png b/public/images/tennants/mutual_smep/mutual_smep_favicon.png new file mode 100644 index 00000000..1ec3be4a Binary files /dev/null and b/public/images/tennants/mutual_smep/mutual_smep_favicon.png differ diff --git a/public/images/tennants/mutual_smep/mutual_smep_footer.png b/public/images/tennants/mutual_smep/mutual_smep_footer.png new file mode 100644 index 00000000..1ec3be4a Binary files /dev/null and b/public/images/tennants/mutual_smep/mutual_smep_footer.png differ diff --git a/public/images/tennants/mutual_smep/mutual_smep_header.png b/public/images/tennants/mutual_smep/mutual_smep_header.png new file mode 100644 index 00000000..c15429b8 Binary files /dev/null and b/public/images/tennants/mutual_smep/mutual_smep_header.png differ diff --git a/tests/Feature/Catalog/CategoryDetailTest.php b/tests/Feature/Catalog/CategoryDetailTest.php index 0eee7dbe..ba22be2e 100644 --- a/tests/Feature/Catalog/CategoryDetailTest.php +++ b/tests/Feature/Catalog/CategoryDetailTest.php @@ -72,6 +72,29 @@ class CategoryDetailTest extends TestCase ->assertJsonCount(0, 'data'); } + public function test_it_includes_products_from_all_descendant_categories(): void + { + $tenant = $this->createTenant('category-descendants'); + $parent = $this->createCategory($tenant, 'Indumentaria'); + $child = $this->createCategory($tenant, 'Remeras', $parent); + $grandchild = $this->createCategory($tenant, 'Manga corta', $child); + $sibling = $this->createCategory($tenant, 'Pantalones'); + + $parentItem = $this->createCatalogItem($tenant, $parent, 'Producto padre'); + $childItem = $this->createCatalogItem($tenant, $child, 'Producto hijo'); + $grandchildItem = $this->createCatalogItem($tenant, $grandchild, 'Producto nieto'); + $this->createCatalogItem($tenant, $sibling, 'Producto ajeno'); + + $this->getJson("/api/tenants/{$tenant->codigo}/categories/{$parent->id}") + ->assertOk() + ->assertJsonPath('meta.total', 3) + ->assertJsonCount(3, 'data') + ->assertJsonPath('data.0.id', $childItem->id) + ->assertJsonPath('data.1.id', $grandchildItem->id) + ->assertJsonPath('data.2.id', $parentItem->id) + ->assertJsonMissing(['nombre' => 'Producto ajeno']); + } + public function test_it_rejects_categories_from_another_tenant(): void { $tenant = $this->createTenant('category-owner'); @@ -107,10 +130,14 @@ class CategoryDetailTest extends TestCase ]); } - private function createCategory(Tenant $tenant, string $name): Category - { + private function createCategory( + Tenant $tenant, + string $name, + ?Category $parent = null, + ): Category { return Category::query()->create([ 'tenant_code' => $tenant->codigo, + 'categoria_id' => $parent?->id, 'nombre' => $name, ]); } diff --git a/tests/Feature/Migrations/ProvisionMutualSmepTenantTest.php b/tests/Feature/Migrations/ProvisionMutualSmepTenantTest.php new file mode 100644 index 00000000..f9a63b66 --- /dev/null +++ b/tests/Feature/Migrations/ProvisionMutualSmepTenantTest.php @@ -0,0 +1,197 @@ +createSchema(); + + DB::table('admin_website_types')->insert(['codigo' => 'shopit']); + DB::table('storefront_website_types')->insert(['codigo' => 'shopit']); + DB::table('menues')->insert([ + ['code' => 'product.detail'], + ['code' => 'help.faq'], + ['code' => 'help.contact'], + ['code' => 'account.tickets'], + ['code' => 'event.index'], + ]); + + $migration = require database_path('migrations/2026_09_24_000000_provision_mutual_smep_tenant.php'); + $migration->up(); + $migration->up(); + + $this->assertDatabaseCount('tenants', 1); + $this->assertDatabaseHas('clients', [ + 'code' => 'mutual_smep', + 'name' => 'Mutual SMEP', + ]); + $this->assertDatabaseHas('tenants', [ + 'codigo' => 'mutual_smep', + 'nombre' => 'Mutual SMEP', + 'dominio' => 'mutual-smep.localhost', + 'site_title' => 'Tienda Mutual SMEP', + 'primary_color' => '#4A7FF5', + 'secondary_color' => '#0051A4', + 'header_bg_color' => '#FFFFFF', + 'footer_bg_color' => '#0051A4', + 'admin_website_type_code' => 'shopit', + 'storefront_website_type_code' => 'shopit', + 'display_categories' => true, + 'display_seach_bar' => true, + 'display_cart' => true, + 'cart_editing_policy' => 'quantity_and_remove', + 'checkout_editing_policy' => 'disabled', + ]); + + $this->assertSame([ + 'mutual_smep_favicon.png', + 'mutual_smep_footer.png', + 'mutual_smep_header.png', + ], DB::table('attachments')->orderBy('filename')->pluck('filename')->all()); + + DB::table('attachments')->orderBy('id')->each( + fn (object $attachment) => Storage::disk('s3')->assertExists($attachment->path) + ); + + $this->assertSame( + ['instagram', 'facebook', 'whatsapp'], + DB::table('tenant_social_media') + ->where('tenant_code', 'mutual_smep') + ->orderBy('orden') + ->pluck('social_media_code') + ->all(), + ); + $this->assertDatabaseHas('tenants_menues', [ + 'tenant_code' => 'mutual_smep', + 'menu_code' => 'product.detail', + ]); + $this->assertDatabaseMissing('tenants_menues', [ + 'tenant_code' => 'mutual_smep', + 'menu_code' => 'account.tickets', + ]); + $this->assertDatabaseMissing('tenants_menues', [ + 'tenant_code' => 'mutual_smep', + 'menu_code' => 'event.index', + ]); + + $contact = json_decode( + DB::table('tenants_menues') + ->where('tenant_code', 'mutual_smep') + ->where('menu_code', 'help.contact') + ->value('static_content'), + true, + flags: JSON_THROW_ON_ERROR, + ); + + $this->assertSame('https://wa.me/5493412474530', $contact['whatsapp']['whatsapp_url']); + $this->assertSame('San Lorenzo 1543, Rosario, Santa Fe', $contact['locations']['rosario']['addresses'][0]['address']); + + $storedPaths = DB::table('attachments')->pluck('path')->all(); + $migration->down(); + + $this->assertDatabaseMissing('tenants', ['codigo' => 'mutual_smep']); + $this->assertDatabaseMissing('clients', ['code' => 'mutual_smep']); + $this->assertDatabaseCount('attachments', 0); + $this->assertDatabaseCount('tenant_social_media', 0); + $this->assertDatabaseCount('tenants_menues', 0); + + foreach ($storedPaths as $storedPath) { + Storage::disk('s3')->assertMissing($storedPath); + } + } + + private function createSchema(): void + { + Schema::create('clients', function (Blueprint $table): void { + $table->id(); + $table->string('code')->unique(); + $table->string('name'); + $table->timestamps(); + }); + Schema::create('attachments', function (Blueprint $table): void { + $table->id(); + $table->uuid('key'); + $table->string('path'); + $table->string('filename'); + $table->string('type'); + $table->string('mime_type'); + $table->string('extension'); + $table->unsignedBigInteger('size'); + $table->timestamps(); + }); + Schema::create('admin_website_types', function (Blueprint $table): void { + $table->id(); + $table->string('codigo')->unique(); + }); + Schema::create('storefront_website_types', function (Blueprint $table): void { + $table->id(); + $table->string('codigo')->unique(); + }); + Schema::create('tenants', function (Blueprint $table): void { + $table->id(); + $table->foreignId('client_id'); + $table->string('codigo')->unique(); + $table->string('nombre'); + $table->string('timezone'); + $table->string('dominio'); + $table->string('base_path'); + $table->string('site_title'); + $table->string('address'); + $table->string('phone'); + $table->string('primary_color'); + $table->string('secondary_color'); + $table->string('danger_color'); + $table->string('success_color'); + $table->string('header_bg_color'); + $table->string('footer_bg_color'); + $table->foreignId('header_logo_id'); + $table->foreignId('footer_logo_id'); + $table->foreignId('favicon_id'); + $table->string('admin_website_type_code'); + $table->string('storefront_website_type_code'); + $table->boolean('display_categories'); + $table->boolean('display_seach_bar'); + $table->boolean('display_cart'); + $table->string('cart_editing_policy'); + $table->string('checkout_editing_policy'); + $table->timestamps(); + }); + Schema::create('social_media', function (Blueprint $table): void { + $table->id(); + $table->string('code')->unique(); + $table->string('icon'); + $table->string('name'); + $table->timestamps(); + }); + Schema::create('tenant_social_media', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code'); + $table->string('social_media_code'); + $table->string('url'); + $table->unsignedInteger('orden'); + $table->timestamps(); + $table->unique(['tenant_code', 'social_media_code']); + }); + Schema::create('menues', function (Blueprint $table): void { + $table->id(); + $table->string('code')->unique(); + }); + Schema::create('tenants_menues', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code'); + $table->string('menu_code'); + $table->json('static_content')->nullable(); + $table->timestamps(); + $table->unique(['tenant_code', 'menu_code']); + }); + } +} diff --git a/tests/Feature/Migrations/SeedMutualSmepCarouselTest.php b/tests/Feature/Migrations/SeedMutualSmepCarouselTest.php new file mode 100644 index 00000000..0f554f22 --- /dev/null +++ b/tests/Feature/Migrations/SeedMutualSmepCarouselTest.php @@ -0,0 +1,119 @@ +createSchema(); + + DB::table('tenants')->insert([ + 'codigo' => 'mutual_smep', + 'storefront_website_type_code' => 'shopit', + ]); + DB::table('storefront_website_type_extras')->insert([ + 'storefront_website_type_code' => 'shopit', + 'codigo' => 'carousel', + ]); + } + + protected function tearDown(): void + { + foreach (['websites_extras', 'attachments', 'storefront_website_type_extras', 'tenants'] as $table) { + Schema::dropIfExists($table); + } + + parent::tearDown(); + } + + public function test_it_loads_and_rolls_back_the_mutual_smep_carousel(): void + { + $migration = require database_path( + 'migrations/2026_09_24_040000_seed_mutual_smep_carousel.php' + ); + + $migration->up(); + $migration->up(); + + $this->assertDatabaseCount('attachments', 4); + $this->assertDatabaseCount('websites_extras', 1); + + $attachments = DB::table('attachments')->orderBy('filename')->get(); + $this->assertSame([ + '01-tecnologia.webp', + '02-hogar.webp', + '03-vida-activa.webp', + '04-descanso.webp', + ], $attachments->pluck('filename')->all()); + $this->assertSame( + $attachments->pluck('id')->all(), + json_decode( + DB::table('websites_extras')->value('config'), + true, + flags: JSON_THROW_ON_ERROR, + ), + ); + + foreach ($attachments as $attachment) { + $this->assertSame('image/webp', $attachment->mime_type); + $this->assertStringStartsWith( + 'tenants/mutual_smep/extras/carousel-v1/', + $attachment->path, + ); + Storage::disk('s3')->assertExists($attachment->path); + } + + $storedPaths = $attachments->pluck('path')->all(); + $migration->down(); + + $this->assertDatabaseCount('websites_extras', 0); + $this->assertDatabaseCount('attachments', 0); + + foreach ($storedPaths as $storedPath) { + Storage::disk('s3')->assertMissing($storedPath); + } + } + + private function createSchema(): void + { + Schema::create('tenants', function (Blueprint $table): void { + $table->string('codigo')->primary(); + $table->string('storefront_website_type_code'); + }); + Schema::create('storefront_website_type_extras', function (Blueprint $table): void { + $table->id(); + $table->string('storefront_website_type_code'); + $table->string('codigo'); + }); + Schema::create('attachments', function (Blueprint $table): void { + $table->id(); + $table->uuid('key')->unique(); + $table->string('path'); + $table->string('filename'); + $table->string('type'); + $table->string('mime_type'); + $table->string('extension')->nullable(); + $table->unsignedBigInteger('size')->default(0); + $table->timestamps(); + }); + Schema::create('websites_extras', function (Blueprint $table): void { + $table->id(); + $table->string('website_code'); + $table->unsignedBigInteger('website_type_extra_id'); + $table->json('config'); + $table->boolean('is_enabled')->default(true); + $table->timestamps(); + $table->unique(['website_code', 'website_type_extra_id']); + }); + } +} diff --git a/tests/Feature/Migrations/SeedMutualSmepCatalogTest.php b/tests/Feature/Migrations/SeedMutualSmepCatalogTest.php new file mode 100644 index 00000000..685a1bcf --- /dev/null +++ b/tests/Feature/Migrations/SeedMutualSmepCatalogTest.php @@ -0,0 +1,375 @@ +createSchema(); + DB::table('tenants')->insert(['codigo' => 'mutual_smep']); + $this->seedCategoriesAndAttributes(); + } + + protected function tearDown(): void + { + foreach ([ + 'featured_items', + 'featured_groups', + 'catalog_items_attachments', + 'attachments', + 'variant_values', + 'item_attributes', + 'variantes', + 'catalog_items', + 'inventories', + 'brands', + 'attribute', + 'categorias', + 'tenants', + ] as $table) { + Schema::dropIfExists($table); + } + + parent::tearDown(); + } + + public function test_it_loads_and_rolls_back_the_complete_catalog(): void + { + $migration = require database_path( + 'migrations/2026_09_24_030000_seed_mutual_smep_catalog.php' + ); + + $migration->up(); + + $this->assertSame(142, DB::table('catalog_items')->count()); + $this->assertSame(150, DB::table('inventories')->count()); + $this->assertSame(15, DB::table('variantes')->count()); + $this->assertSame(8, DB::table('item_attributes')->count()); + $this->assertSame(17, DB::table('variant_values')->count()); + $this->assertSame(511, DB::table('attachments')->count()); + $this->assertSame(511, DB::table('catalog_items_attachments')->count()); + $this->assertSame( + 511, + count(Storage::disk('s3')->allFiles('tenants/mutual_smep/catalog-v2')), + ); + $this->assertDatabaseCount('featured_groups', 7); + $this->assertSame([ + 'Productos destacados', + 'Dormitorio y Blanco', + 'Electrodomésticos', + 'Climatización', + 'Tecnología', + 'Bicicletas y Aire Libre', + 'Bazar', + ], DB::table('featured_groups')->orderBy('group_order')->pluck('group_name')->all()); + + DB::table('featured_groups')->orderBy('group_order')->each(function (object $group): void { + $this->assertSame('manual', $group->source_type); + $this->assertSame('carousel', $group->group_layout); + $this->assertSame('column_with_image', $group->product_layout); + if ($group->code === 'productos-destacados-smep') { + $this->assertNull($group->category_id); + } else { + $this->assertNotNull($group->category_id); + $this->assertDatabaseHas('categorias', [ + 'id' => $group->category_id, + 'tenant_code' => 'mutual_smep', + 'categoria_id' => null, + 'nombre' => $group->group_name, + ]); + } + $this->assertGreaterThan( + 0, + DB::table('featured_items')->where('featured_group_id', $group->id)->count(), + ); + }); + + $highlightedGroupId = DB::table('featured_groups') + ->where('code', 'productos-destacados-smep') + ->value('id'); + $highlightedSlugs = DB::table('featured_items') + ->join('catalog_items', 'catalog_items.id', '=', 'featured_items.catalog_item_id') + ->where('featured_items.featured_group_id', $highlightedGroupId) + ->orderBy('featured_items.order') + ->pluck('catalog_items.slug') + ->all(); + $variantProductSlugs = DB::table('catalog_items') + ->whereExists(fn ($query) => $query + ->selectRaw('1') + ->from('variantes') + ->whereColumn('variantes.catalog_item_id', 'catalog_items.id')) + ->pluck('slug') + ->all(); + + $this->assertCount(13, $highlightedSlugs); + $this->assertSame([], array_values(array_diff($variantProductSlugs, $highlightedSlugs))); + $this->assertSame(46, DB::table('featured_items')->count()); + DB::table('featured_groups') + ->where('code', '!=', 'productos-destacados-smep') + ->orderBy('id') + ->each(function (object $group): void { + $this->assertLessThanOrEqual( + 6, + DB::table('featured_items')->where('featured_group_id', $group->id)->count(), + ); + }); + $this->assertDatabaseHas('catalog_items', [ + 'tenant_code' => 'mutual_smep', + 'slug' => 'motorola-g15', + 'precio' => 330000, + ]); + $this->assertSame(10, DB::table('inventories')->min('real_stock')); + $this->assertSame(10, DB::table('inventories')->max('real_stock')); + + $migration->down(); + + foreach ([ + 'featured_items', + 'featured_groups', + 'catalog_items_attachments', + 'attachments', + 'variant_values', + 'item_attributes', + 'variantes', + 'catalog_items', + 'inventories', + 'brands', + ] as $table) { + $this->assertSame(0, DB::table($table)->count(), $table); + } + $this->assertSame([], Storage::disk('s3')->allFiles('tenants/mutual_smep/catalog-v2')); + } + + public function test_it_limits_existing_category_groups_and_restores_them_on_rollback(): void + { + $catalogMigration = require database_path( + 'migrations/2026_09_24_030000_seed_mutual_smep_catalog.php' + ); + $limitMigration = require database_path( + 'migrations/2026_09_24_050000_limit_mutual_smep_category_featured_groups.php' + ); + + $catalogMigration->up(); + + $limitMigration->down(); + $this->assertSame(155, DB::table('featured_items')->count()); + + $limitMigration->up(); + $this->assertSame(46, DB::table('featured_items')->count()); + + $categoryGroupCounts = DB::table('featured_groups') + ->leftJoin('featured_items', 'featured_items.featured_group_id', '=', 'featured_groups.id') + ->where('featured_groups.code', '!=', 'productos-destacados-smep') + ->groupBy('featured_groups.id', 'featured_groups.group_name', 'featured_groups.group_order') + ->orderBy('featured_groups.group_order') + ->selectRaw('featured_groups.group_name, COUNT(featured_items.id) AS item_count') + ->pluck('item_count', 'featured_groups.group_name') + ->map(fn ($count): int => (int) $count) + ->all(); + + $this->assertSame([ + 'Dormitorio y Blanco' => 6, + 'Electrodomésticos' => 6, + 'Climatización' => 6, + 'Tecnología' => 6, + 'Bicicletas y Aire Libre' => 6, + 'Bazar' => 3, + ], $categoryGroupCounts); + + $limitMigration->down(); + $this->assertSame(155, DB::table('featured_items')->count()); + + $catalogMigration->down(); + } + + public function test_it_upgrades_legacy_catalog_images_and_restores_them_on_rollback(): void + { + $catalogMigration = require database_path( + 'migrations/2026_09_24_030000_seed_mutual_smep_catalog.php' + ); + $imageMigration = require database_path( + 'migrations/2026_09_24_060000_optimize_mutual_smep_catalog_images.php' + ); + + $catalogMigration->up(); + + DB::table('attachments')->orderBy('id')->each(function (object $attachment): void { + $optimizedPath = (string) $attachment->path; + $legacyPath = str_replace('catalog-v2/', 'catalog-v1/', $optimizedPath); + $contents = Storage::disk('s3')->get($optimizedPath); + + Storage::disk('s3')->put($legacyPath, $contents.'legacy'); + Storage::disk('s3')->delete($optimizedPath); + DB::table('attachments')->where('id', $attachment->id)->update([ + 'path' => $legacyPath, + 'size' => strlen($contents.'legacy'), + ]); + }); + + $imageMigration->up(); + + $this->assertSame(511, count(Storage::disk('s3')->allFiles('tenants/mutual_smep/catalog-v2'))); + $this->assertSame(0, DB::table('attachments')->where('path', 'like', '%catalog-v1/%')->count()); + $this->assertSame(511, DB::table('attachments')->where('path', 'like', '%catalog-v2/%')->count()); + + $imageMigration->down(); + + $this->assertSame([], Storage::disk('s3')->allFiles('tenants/mutual_smep/catalog-v2')); + $this->assertSame(511, DB::table('attachments')->where('path', 'like', '%catalog-v1/%')->count()); + + $catalogMigration->down(); + $this->assertSame([], Storage::disk('s3')->allFiles('tenants/mutual_smep/catalog-v1')); + } + + private function seedCategoriesAndAttributes(): void + { + $manifest = json_decode( + (string) file_get_contents(database_path('data/mutual_smep_catalog_v1.json')), + true, + flags: JSON_THROW_ON_ERROR, + ); + $parents = []; + + foreach ($manifest['items'] as $item) { + $parentName = $item['parent_category']; + $parentId = $parents[$parentName] ??= DB::table('categorias')->insertGetId([ + 'tenant_code' => 'mutual_smep', + 'categoria_id' => null, + 'nombre' => $parentName, + ]); + + DB::table('categorias')->insertOrIgnore([ + 'tenant_code' => 'mutual_smep', + 'categoria_id' => $parentId, + 'nombre' => $item['category'], + ]); + } + + foreach (['color', 'medida_cama', 'almacenamiento', 'memoria_ram', 'rodado'] as $code) { + DB::table('attribute')->insert([ + 'tenant_codigo' => 'mutual_smep', + 'codigo' => $code, + 'nombre' => $code, + ]); + } + } + + private function createSchema(): void + { + Schema::create('tenants', fn (Blueprint $table) => $table->string('codigo')->primary()); + Schema::create('categorias', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code'); + $table->unsignedBigInteger('categoria_id')->nullable(); + $table->string('nombre'); + $table->unique(['tenant_code', 'categoria_id', 'nombre']); + }); + Schema::create('attribute', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_codigo'); + $table->string('codigo'); + $table->string('nombre'); + }); + Schema::create('brands', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_codigo'); + $table->string('nombre'); + $table->text('descripcion')->nullable(); + $table->timestamps(); + }); + Schema::create('inventories', function (Blueprint $table): void { + $table->id(); + $table->unsignedBigInteger('sold_units')->default(0); + $table->unsignedBigInteger('refunded_units')->default(0); + $table->unsignedInteger('reserved_stock')->default(0); + $table->unsignedInteger('real_stock')->default(0); + }); + Schema::create('catalog_items', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code'); + $table->unsignedBigInteger('category_id')->nullable(); + $table->unsignedBigInteger('brand_id')->nullable(); + $table->unsignedBigInteger('inventory_id')->nullable(); + $table->string('type'); + $table->string('slug'); + $table->string('nombre'); + $table->unsignedInteger('group_order')->default(0); + $table->text('descripcion')->nullable(); + $table->decimal('precio', 10, 2); + $table->string('inventory_policy'); + $table->string('inventory_subject'); + $table->boolean('has_tickets')->default(false); + $table->unique(['tenant_code', 'slug']); + }); + Schema::create('variantes', function (Blueprint $table): void { + $table->id(); + $table->foreignId('catalog_item_id')->constrained('catalog_items')->cascadeOnDelete(); + $table->unsignedBigInteger('inventory_id'); + $table->text('descripcion')->nullable(); + $table->decimal('precio', 10, 2)->nullable(); + }); + Schema::create('item_attributes', function (Blueprint $table): void { + $table->id(); + $table->foreignId('catalog_item_id')->constrained('catalog_items')->cascadeOnDelete(); + $table->unsignedBigInteger('attribute_id'); + $table->boolean('allow_multi_select')->default(false); + $table->unsignedInteger('sort_order')->default(0); + $table->boolean('show_in_selector')->default(true); + $table->string('ticket_label')->nullable(); + $table->timestamps(); + }); + Schema::create('variant_values', function (Blueprint $table): void { + $table->id(); + $table->foreignId('variant_id')->constrained('variantes')->cascadeOnDelete(); + $table->foreignId('item_attribute_id')->constrained('item_attributes')->cascadeOnDelete(); + $table->text('value')->nullable(); + $table->timestamps(); + }); + Schema::create('attachments', function (Blueprint $table): void { + $table->id(); + $table->uuid('key')->unique(); + $table->string('path'); + $table->string('filename'); + $table->string('type'); + $table->string('mime_type'); + $table->string('extension')->nullable(); + $table->unsignedBigInteger('size')->default(0); + $table->timestamps(); + }); + Schema::create('catalog_items_attachments', function (Blueprint $table): void { + $table->id(); + $table->foreignId('variant_id')->nullable()->constrained('variantes')->cascadeOnDelete(); + $table->foreignId('catalog_item_id')->constrained('catalog_items')->cascadeOnDelete(); + $table->foreignId('attachment_id')->constrained('attachments')->cascadeOnDelete(); + $table->unsignedInteger('orden')->default(0); + $table->boolean('is_enabled')->default(true); + }); + Schema::create('featured_groups', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code'); + $table->string('code'); + $table->string('source_type'); + $table->unsignedBigInteger('category_id')->nullable(); + $table->string('product_layout'); + $table->string('group_layout'); + $table->string('group_name'); + $table->unsignedInteger('group_order')->default(0); + }); + Schema::create('featured_items', function (Blueprint $table): void { + $table->id(); + $table->foreignId('featured_group_id')->constrained('featured_groups')->cascadeOnDelete(); + $table->foreignId('catalog_item_id')->constrained('catalog_items')->cascadeOnDelete(); + $table->unsignedInteger('order')->default(0); + }); + } +} diff --git a/tests/Feature/Seeders/MutualSmepAttributeSeederTest.php b/tests/Feature/Seeders/MutualSmepAttributeSeederTest.php new file mode 100644 index 00000000..8f849655 --- /dev/null +++ b/tests/Feature/Seeders/MutualSmepAttributeSeederTest.php @@ -0,0 +1,119 @@ +string('codigo')->primary(); + }); + Schema::create('attribute', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_codigo'); + $table->string('codigo'); + $table->string('nombre'); + $table->boolean('is_required')->default(false); + $table->json('metadata_schema')->nullable(); + $table->string('type'); + $table->timestamps(); + $table->unique(['tenant_codigo', 'codigo']); + }); + Schema::create('attribute_options', function (Blueprint $table): void { + $table->id(); + $table->foreignId('attribute_id')->constrained('attribute')->cascadeOnDelete(); + $table->string('value'); + $table->string('label'); + $table->unsignedInteger('sort_order')->default(0); + $table->json('metadata')->nullable(); + $table->timestamps(); + }); + } + + protected function tearDown(): void + { + Schema::dropIfExists('attribute_options'); + Schema::dropIfExists('attribute'); + Schema::dropIfExists('tenants'); + + parent::tearDown(); + } + + public function test_it_creates_the_attributes_and_options_idempotently(): void + { + $this->createTenant('mutual_smep'); + + $this->seed(MutualSmepAttributeSeeder::class); + $this->seed(MutualSmepAttributeSeeder::class); + + $this->assertSame(5, DB::table('attribute')->where('tenant_codigo', 'mutual_smep')->count()); + $this->assertSame(25, DB::table('attribute_options')->count()); + $this->assertDatabaseHas('attribute', [ + 'tenant_codigo' => 'mutual_smep', + 'codigo' => 'medida_cama', + 'nombre' => 'Medida', + 'type' => 'select', + 'is_required' => false, + ]); + $this->assertDatabaseHas('attribute_options', [ + 'value' => '512 GB', + 'label' => '512 GB', + ]); + } + + public function test_down_only_removes_mutual_smep_attributes(): void + { + $this->createTenant('mutual_smep'); + $this->createTenant('other'); + DB::table('attribute')->insert([ + 'tenant_codigo' => 'other', + 'codigo' => 'color', + 'nombre' => 'Color', + 'type' => 'select', + 'created_at' => now(), + 'updated_at' => now(), + ]); + + $seeder = app(MutualSmepAttributeSeeder::class); + $seeder->run(); + $seeder->down(); + + $this->assertDatabaseMissing('attribute', ['tenant_codigo' => 'mutual_smep']); + $this->assertDatabaseHas('attribute', [ + 'tenant_codigo' => 'other', + 'codigo' => 'color', + ]); + } + + public function test_the_data_migration_runs_and_rolls_back_the_attributes(): void + { + $this->createTenant('mutual_smep'); + $migration = require database_path( + 'migrations/2026_09_24_020000_seed_mutual_smep_attributes.php' + ); + + $migration->up(); + + $this->assertSame(5, DB::table('attribute')->where('tenant_codigo', 'mutual_smep')->count()); + $this->assertSame(25, DB::table('attribute_options')->count()); + + $migration->down(); + + $this->assertDatabaseMissing('attribute', ['tenant_codigo' => 'mutual_smep']); + $this->assertSame(0, DB::table('attribute_options')->count()); + } + + private function createTenant(string $code): void + { + DB::table('tenants')->insert(['codigo' => $code]); + } +} diff --git a/tests/Feature/Seeders/MutualSmepCategorySeederTest.php b/tests/Feature/Seeders/MutualSmepCategorySeederTest.php new file mode 100644 index 00000000..9e516dca --- /dev/null +++ b/tests/Feature/Seeders/MutualSmepCategorySeederTest.php @@ -0,0 +1,119 @@ +string('codigo')->primary(); + }); + + Schema::create('categorias', function (Blueprint $table): void { + $table->id(); + $table->string('tenant_code')->nullable(); + $table->unsignedBigInteger('categoria_id')->nullable(); + $table->string('nombre'); + $table->boolean('is_enabled')->default(true); + $table->timestamps(); + }); + } + + protected function tearDown(): void + { + Schema::dropIfExists('categorias'); + Schema::dropIfExists('tenants'); + + parent::tearDown(); + } + + public function test_it_creates_the_mutual_smep_category_hierarchy_idempotently(): void + { + $this->createTenant('mutual_smep'); + + $this->seed(MutualSmepCategorySeeder::class); + $this->seed(MutualSmepCategorySeeder::class); + + $parents = Category::query() + ->where('tenant_code', 'mutual_smep') + ->whereNull('categoria_id') + ->with('subCategories') + ->get() + ->keyBy('nombre'); + + $this->assertCount(6, $parents); + $this->assertCount(37, Category::query()->where('tenant_code', 'mutual_smep')->get()); + $this->assertEqualsCanonicalizing([ + 'Colchones', + 'Bases y Sommiers', + 'Acolchados y Edredones', + 'Frazadas y Mantas', + 'Infantil y Cuna', + ], $parents->get('Dormitorio y Blanco')->subCategories->pluck('nombre')->all()); + $this->assertEqualsCanonicalizing([ + 'Celulares', + 'Notebooks', + 'Smart TV', + 'Audio', + 'Accesorios de Computación', + 'Soportes para TV', + ], $parents->get('Tecnología')->subCategories->pluck('nombre')->all()); + } + + public function test_down_removes_only_the_seeded_mutual_smep_hierarchy(): void + { + $this->createTenant('mutual_smep'); + $this->createTenant('other'); + Category::query()->create([ + 'tenant_code' => 'other', + 'nombre' => 'Tecnología', + ]); + + $seeder = app(MutualSmepCategorySeeder::class); + $seeder->run(); + $seeder->down(); + + $this->assertDatabaseMissing('categorias', [ + 'tenant_code' => 'mutual_smep', + ]); + $this->assertDatabaseHas('categorias', [ + 'tenant_code' => 'other', + 'nombre' => 'Tecnología', + ]); + } + + public function test_the_data_migration_runs_and_rolls_back_the_seeder(): void + { + $this->createTenant('mutual_smep'); + $migration = require database_path( + 'migrations/2026_09_24_010000_seed_mutual_smep_categories.php' + ); + + $migration->up(); + + $this->assertCount(37, Category::query()->where('tenant_code', 'mutual_smep')->get()); + + $migration->down(); + + $this->assertDatabaseMissing('categorias', [ + 'tenant_code' => 'mutual_smep', + ]); + } + + private function createTenant(string $code): void + { + DB::table('tenants')->insert([ + 'codigo' => $code, + ]); + } +}