From 5e6cddc076c312b2c7a856e833beec741318c2bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaume=20Sol=C3=ADs?=
Date: Thu, 8 Feb 2024 12:27:20 +0100
Subject: [PATCH 1/4] =?UTF-8?q?A=C3=B1adidos=20los=20cambios=20para=20util?=
=?UTF-8?q?izar=20Paypal=20y=20para=20acabar=20el=20ciclo=20de=20compra?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.vscode/settings.json | 11 +-
api/.env.example | 6 +-
api/controller/payment/payment.controller.js | 146 ++
.../{ => product}/product.controller.js | 21 +-
api/controller/product/products.json | 1997 +++++++++++++++++
api/controller/products.json | 1974 ----------------
.../provinces/provinces.controller.js | 23 +
api/db/db.js | 36 +-
api/index.js | 23 +-
api/package.json | 5 +-
package-lock.json | 407 ++--
package.json | 4 +-
src/components/@inputs/Calendar.vue | 49 +-
src/components/@inputs/Example/CalendarEx.vue | 62 -
.../@inputs/Example/PostalCodeEx.vue | 62 -
src/components/@inputs/PostalCode.vue | 49 +-
src/components/@inputs/SortSelect.vue | 2 +-
src/components/header/HeaderPrimary.vue | 4 +-
src/components/header/HeaderSecondary.vue | 4 +-
src/components/header/UserArea.vue | 18 +-
.../carousel/VerticalCarouselImgs.vue | 7 +-
.../stripe/StripeCheckoutComponent.vue | 65 -
src/components/swiper/Swiper.vue | 4 -
src/components/ui/Card.vue | 7 +-
src/components/ui/Chat.vue | 4 +-
src/components/ui/MobileNav.vue | 1 -
src/components/ui/Modal.vue | 4 +-
src/components/ui/QuestionForm.vue | 1 -
src/css/app.scss | 23 +-
src/hooks/useCheckoutForm.js | 106 +-
src/hooks/useLocalStorage.js | 25 +-
src/hooks/usePostalCalendar.js | 296 ++-
src/hooks/useProductPage.js | 51 -
src/pages/CategoryPage.vue | 149 +-
src/pages/CheckoutErrorPage.vue | 22 +
src/pages/CheckoutPage.vue | 31 +-
src/pages/CheckoutSuccessPage.vue | 313 +++
src/pages/ExamplePage.vue | 21 -
src/pages/HomePage.vue | 8 +-
src/pages/ProductPage.vue | 119 +-
src/router/routes.js | 17 +-
src/stores/cart.js | 270 +--
src/stores/forms.js | 11 +-
src/stores/modalStore.js | 3 +-
src/stores/rangePrice.js | 1 -
src/utils/zod/schemas/checkoutSchema.js | 10 +-
src/utils/zod/schemas/rangePriceSchema.js | 4 +-
47 files changed, 3482 insertions(+), 2994 deletions(-)
create mode 100644 api/controller/payment/payment.controller.js
rename api/controller/{ => product}/product.controller.js (84%)
create mode 100644 api/controller/product/products.json
delete mode 100644 api/controller/products.json
create mode 100644 api/controller/provinces/provinces.controller.js
delete mode 100644 src/components/@inputs/Example/CalendarEx.vue
delete mode 100644 src/components/@inputs/Example/PostalCodeEx.vue
delete mode 100644 src/components/stripe/StripeCheckoutComponent.vue
delete mode 100644 src/hooks/useProductPage.js
create mode 100644 src/pages/CheckoutErrorPage.vue
create mode 100644 src/pages/CheckoutSuccessPage.vue
delete mode 100644 src/pages/ExamplePage.vue
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 2c9288b..f6fae2a 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -23,7 +23,6 @@
"source.fixAll.eslint",
"source.fixAll.stylelint"
],
-
"files.exclude": {
"**/.git": true,
"**/.svn": true,
@@ -61,11 +60,6 @@
"terminal.integrated.enableImages": true,
"figma.autocompleteBlocks": true,
"figma.assetExportDirectory": "src/assets",
- "editor.codeActionsOnSave": [
- "source.addMissingImports",
- "source.organizeImports",
- "source.fixAll.eslint"
- ],
"gitlens.gitCommands.skipConfirmations": ["fetch:command", "switch:command"],
"diffEditor.ignoreTrimWhitespace": false,
"svg.preview.mode": "svg",
@@ -78,8 +72,5 @@
"workbench.tree.indent": 16,
"window.zoomLevel": -1,
"git.ignoreRebaseWarning": true,
- "editor.largeFileOptimizations": false,
- "[javascript]": {
- "editor.defaultFormatter": "vscode.typescript-language-features"
- }
+ "editor.largeFileOptimizations": false
}
diff --git a/api/.env.example b/api/.env.example
index 5418d4b..a6af16c 100644
--- a/api/.env.example
+++ b/api/.env.example
@@ -2,4 +2,8 @@ HOST="127.0.0.1"
DB_USER="root"
DB_PASSWORD="root"
PORT ="3306"
-DATABASE="floranet"
\ No newline at end of file
+DATABASE="floranet"
+BASE_URL =http://localhost:9100
+
+CLIENT_ID="Ab5vEddhdvdJhLUkXtTiS2pe43W6PD1JNKns7XMnlw8FvC31H2VYakyVEHvuFBi2b543QIHiPh8j4FLF"
+SECRET_KEY="EAxLf05kp08cvbLgZrqjwdx-NXnhQtnP4Y0B4LHAM_7T9-HOh4RaNTirinWfTV8GR6DJWg9djry5yHfO"
\ No newline at end of file
diff --git a/api/controller/payment/payment.controller.js b/api/controller/payment/payment.controller.js
new file mode 100644
index 0000000..8f1a06a
--- /dev/null
+++ b/api/controller/payment/payment.controller.js
@@ -0,0 +1,146 @@
+const db = require("../../db/db");
+const paypal = require('paypal-rest-sdk');
+const fs = require('fs');
+const path = require('path');
+
+class PaymentController {
+ async Create(req, res) {
+
+ //parâmetros para retornar os produtos que serão comprados
+ const products = req.body.products
+ //parameters to return price
+ const price = req.body.price
+ let productsIds = ''
+ for (let i = 0; i < products.length; i++) {
+ productsIds += `${products[i]}${i === products.length - 1 ? '' : '-'}`
+ }
+
+ //json for checkout
+ var payReq = JSON.stringify({
+ 'intent': 'sale',
+ 'redirect_urls': {
+ 'return_url': `${process.env.BASE_URL}/checkout/success?productsIds=${productsIds}`,
+ 'cancel_url': `${process.env.BASE_URL}/checkout/error`
+ },
+ 'payer': {
+ 'payment_method': 'paypal'
+ },
+ 'transactions': [{
+ 'amount': {
+ 'total': price,
+ 'currency': 'EUR'
+ },
+ 'description': 'This is the payment transaction description.'
+ }]
+ });
+
+ //Starting checkout process and returning sandbox url
+ try {
+ let urlRedirect
+ urlRedirect = await new Promise(async (resolve, reject) => {
+ paypal.payment.create(payReq, function (error, payment) {
+ if (error) {
+ reject(error)
+ } else {
+ //capture HATEOAS links
+ var links = {};
+ payment.links.forEach(function (linkObj) {
+ links[linkObj.rel] = {
+ 'href': linkObj.href,
+ 'method': linkObj.method
+ };
+ })
+ //if redirect url present, redirect user
+ if (links.hasOwnProperty('approval_url')) {
+ resolve(links['approval_url'].href)
+ } else {
+ console.error('no redirect URI present');
+ }
+ }
+ });
+ }).then(res => res)
+ if (urlRedirect) {
+ return res.status(200).send({
+ data: urlRedirect
+ })
+ }
+ } catch (error) {
+ return res.status(422).send({
+ data: {
+ message: "Error when starting payment"
+ }
+ })
+ }
+ }
+
+ async Success(req, res) {
+ //Parameters for validating payment and purchased products
+ const paramns = JSON.parse(req.body.data)
+ const custumer = paramns.custumer
+ const productsIds = paramns.productsIds
+ const productsArray = productsIds.split('-')
+ const products = productsArray.map(Number)
+ const _products = await db.getProducts();
+ const productsFilter = _products[0].filter((item) => {
+ if (products.includes(item.id)) {
+ return item
+ }
+ });
+
+ const paymentId = paramns.paymentId;
+ const payerId = { 'payer_id': paramns.PayerID };
+
+ const jsonOrderData = JSON.stringify({
+ "paymentId": paymentId,
+ "custumer": custumer,
+ "products": productsFilter
+ })
+
+ fs.writeFileSync('order.json', jsonOrderData, 'utf-8')
+ const contentOrder = fs.readFileSync('order.json', 'utf-8');
+ //API validation and data
+ paypal.payment.execute(paymentId, payerId, async function (error, payment) {
+ if (error) {
+ console.log(error);
+ return res.status(422).send({
+ data: {
+ message: "payment not successful"
+ }
+ })
+ } else {
+ if (payment.state == 'approved') {
+ await db.orderData_put(contentOrder);
+ return res.status(200).send({
+ data: {
+ id: payment.id,
+ email: payment.payer.payer_info.email,
+ message: "payment completed successfully",
+ products: productsFilter
+ }
+ })
+ } else {
+ return res.status(422).send({
+ data: {
+ message: "payment not successful"
+ }
+ })
+ }
+ }
+ });
+ /* return res.status(200).send({
+ data: {
+ menssage: "sucesso"
+ }
+ }) */
+ }
+
+ Cancel(req, res) {
+ return res.status(200).send({
+ data: {
+ menssage: "cancelado"
+ }
+ })
+ }
+}
+
+module.exports = new PaymentController();
diff --git a/api/controller/product.controller.js b/api/controller/product/product.controller.js
similarity index 84%
rename from api/controller/product.controller.js
rename to api/controller/product/product.controller.js
index 69a9b67..c9095f6 100644
--- a/api/controller/product.controller.js
+++ b/api/controller/product/product.controller.js
@@ -1,4 +1,4 @@
-const db = require("../db/db");
+const db = require("../../db/db");
const productsJson = require("./products.json")
@@ -7,28 +7,14 @@ class ProductController {
const params = req.query;
const _products = await db.getProducts(params.dateExpired, params.postalCode);
- let productsFilter = _products[0];
+ let productsFilter = _products[0]
if (Number(params.recommend)) {
- productsFilter = productsFilter.filter(item => item.recommend == Number(params.recommend))
+ productsFilter = productsFilter.filter(item => item.recommend == params.recommend)
}
if (params.type) {
productsFilter = productsFilter.filter(item => item.type === params.type)
}
- /*if (params.postalCode) {
- productsFilter = productsFilter.filter(item => item.postalCode === params.postalCode)
- }
- if (params.dateExpired) {
- const dateSearch = new Date(params.dateExpired);
- productsFilter = productsFilter.filter(item => {
- const dateProduct = new Date(item.dateExpired);
- if (dateProduct >= dateSearch) {
- return item
- }
- })
- }*/
- console.log(productsFilter.length);
-
if (params.minPrice && !params.maxPrice) {
productsFilter = productsFilter.filter(item => {
@@ -105,6 +91,7 @@ class ProductController {
products: products
}) */
+
return res.status(200).send({
data: productsFilter
})
diff --git a/api/controller/product/products.json b/api/controller/product/products.json
new file mode 100644
index 0000000..f2e9fb7
--- /dev/null
+++ b/api/controller/product/products.json
@@ -0,0 +1,1997 @@
+[
+ {
+ "id": 1,
+ "name": "Guapo Hormigon Coche",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€110",
+ "specialPrice": "€30",
+ "isNew": true,
+ "slug": "978-0-564-03629-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/LEAAkIP/640/480",
+ "https://picsum.photos/seed/tWW7r9y/640/480",
+ "https://picsum.photos/seed/ed1HW/640/480",
+ "https://picsum.photos/seed/hwMU6rFVf/640/480",
+ "https://picsum.photos/seed/fthy4HO/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 2,
+ "name": "Sorprendente Acero Zapatos",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€148",
+ "specialPrice": "€38",
+ "isNew": true,
+ "slug": "978-1-152-71531-8",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/9F4Gs9tG/640/480",
+ "https://picsum.photos/seed/7dWIlKx/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 3,
+ "name": "Hecho a mano Granito Salchichas",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€154",
+ "specialPrice": "€32",
+ "isNew": true,
+ "slug": "978-0-939639-06-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/5G6j4B/640/480",
+ "https://picsum.photos/seed/ktq0EWKE/640/480",
+ "https://picsum.photos/seed/2yReX1Y3v/640/480",
+ "https://picsum.photos/seed/sBeAD0CPIL/640/480",
+ "https://picsum.photos/seed/fSTmo0v/640/480",
+ "https://picsum.photos/seed/6AktPwt/640/480"
+ ],
+ "featured": 1,
+ "position": 3
+ },
+ {
+ "id": 4,
+ "name": "Inteligente Ladrillo Mesa",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€192",
+ "specialPrice": "€52",
+ "isNew": false,
+ "slug": "978-0-15-488432-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/49xnfbPm/640/480",
+ "https://picsum.photos/seed/YKFVDiRHP/640/480",
+ "https://picsum.photos/seed/mnRfJQoWhu/640/480",
+ "https://picsum.photos/seed/OCQdrU2/640/480",
+ "https://picsum.photos/seed/LFyrh/640/480",
+ "https://picsum.photos/seed/jIMYByiTiM/640/480"
+ ],
+ "featured": 1,
+ "discount": "13"
+ },
+ {
+ "id": 5,
+ "name": "Guapo Granito Queso",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€172",
+ "specialPrice": "€44",
+ "isNew": true,
+ "slug": "978-0-464-17797-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/fDOau/640/480",
+ "https://picsum.photos/seed/Uq9IS/640/480",
+ "https://picsum.photos/seed/GAis1/640/480",
+ "https://picsum.photos/seed/bDOanv/640/480",
+ "https://picsum.photos/seed/mxFXEy/640/480",
+ "https://picsum.photos/seed/9eB5u/640/480"
+ ],
+ "featured": 0,
+ "discount": "13"
+ },
+ {
+ "id": 6,
+ "name": "Sorprendente Acero Silla",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€119",
+ "specialPrice": "€37",
+ "isNew": true,
+ "slug": "978-0-939372-79-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/aLuyW7j/640/480",
+ "https://picsum.photos/seed/YSrdOnDE/640/480",
+ "https://picsum.photos/seed/khPtA9Ks2U/640/480",
+ "https://picsum.photos/seed/F3nBBoKt/640/480"
+ ],
+ "featured": 1,
+ "discount": "12"
+ },
+ {
+ "id": 7,
+ "name": "Sabroso Metal Pantalones",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€129",
+ "specialPrice": "€27",
+ "isNew": false,
+ "slug": "978-0-239-62256-3",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/91hQmvZ/640/480",
+ "https://picsum.photos/seed/GyaRL0xwN5/640/480",
+ "https://picsum.photos/seed/JcwRJKm/640/480",
+ "https://picsum.photos/seed/rcAmxwCU/640/480",
+ "https://picsum.photos/seed/MTGMY4TWg/640/480"
+ ],
+ "featured": 0,
+ "discount": "14"
+ },
+ {
+ "id": 8,
+ "name": "Sabroso Acero Toallas",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€31",
+ "specialPrice": "€21",
+ "isNew": true,
+ "slug": "978-1-75242-455-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/JV2kC0wIo/640/480",
+ "https://picsum.photos/seed/hIUh3Y/640/480",
+ "https://picsum.photos/seed/KS8meR/640/480",
+ "https://picsum.photos/seed/CyBJlY1LFa/640/480",
+ "https://picsum.photos/seed/Uzej9G7/640/480",
+ "https://picsum.photos/seed/iJNco/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 9,
+ "name": "Fantástico Algodón Queso",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€47",
+ "specialPrice": "€25",
+ "isNew": false,
+ "slug": "978-1-970256-25-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/ECDBR/640/480",
+ "https://picsum.photos/seed/ooc0bH4Je/640/480",
+ "https://picsum.photos/seed/1fFm6/640/480",
+ "https://picsum.photos/seed/wo8aoRpwm/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 10,
+ "name": "Pequeño Metal Coche",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€27",
+ "specialPrice": "€32",
+ "isNew": false,
+ "slug": "978-0-88064-286-6",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/MYSsRYh/640/480",
+ "https://picsum.photos/seed/HDLS07/640/480",
+ "https://picsum.photos/seed/F5vxB48W/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 11,
+ "name": "Sorprendente Madera Camiseta",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€121",
+ "specialPrice": "€46",
+ "isNew": true,
+ "slug": "978-0-685-96061-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/rIsdXwOg/640/480",
+ "https://picsum.photos/seed/scW9B/640/480",
+ "https://picsum.photos/seed/vN6rF8Pf/640/480",
+ "https://picsum.photos/seed/XFzSJZp6/640/480"
+ ],
+ "featured": 0,
+ "discount": "10"
+ },
+ {
+ "id": 12,
+ "name": "Rústico Plástico Salchichas",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€162",
+ "specialPrice": "€20",
+ "isNew": false,
+ "slug": "978-0-9671732-5-2",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/uv0ZRq/640/480",
+ "https://picsum.photos/seed/pgz4EjW3X6/640/480"
+ ],
+ "featured": 0,
+ "discount": "8"
+ },
+ {
+ "id": 13,
+ "name": "Artesanal Granito Queso",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€79",
+ "specialPrice": "€50",
+ "isNew": true,
+ "slug": "978-1-031-40047-2",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/T4d7S6dGVR/640/480",
+ "https://picsum.photos/seed/nOLtZUm/640/480",
+ "https://picsum.photos/seed/T4VDGK/640/480",
+ "https://picsum.photos/seed/ifReKNfP/640/480",
+ "https://picsum.photos/seed/oN8XgVQlP/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 14,
+ "name": "Fantástico Algodón Silla",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€127",
+ "specialPrice": "€50",
+ "isNew": false,
+ "slug": "978-0-222-07669-4",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/U2ub6Oue/640/480",
+ "https://picsum.photos/seed/QxVtVh/640/480",
+ "https://picsum.photos/seed/W4Brb/640/480",
+ "https://picsum.photos/seed/CdXU3nm/640/480",
+ "https://picsum.photos/seed/vhLDE/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 15,
+ "name": "Práctico Acero Salchichas",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€117",
+ "specialPrice": "€22",
+ "isNew": false,
+ "slug": "978-0-915560-44-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/AcDpRVir/640/480",
+ "https://picsum.photos/seed/hsjVT/640/480",
+ "https://picsum.photos/seed/7hFos/640/480",
+ "https://picsum.photos/seed/X07zIG9X/640/480"
+ ],
+ "featured": 0,
+ "discount": "10"
+ },
+ {
+ "id": 16,
+ "name": "Fantástico Metal Bicicleta",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€117",
+ "specialPrice": "€51",
+ "isNew": true,
+ "slug": "978-0-7428-9139-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/J5ewzbg/640/480",
+ "https://picsum.photos/seed/NPoVE/640/480",
+ "https://picsum.photos/seed/UZRJ7RH8/640/480",
+ "https://picsum.photos/seed/1yfNI/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 17,
+ "name": "Pequeño Madera Pescado",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€32",
+ "specialPrice": "€42",
+ "isNew": true,
+ "slug": "978-1-154-04029-6",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/5Mu2ZhcNil/640/480",
+ "https://picsum.photos/seed/3to4nLyST/640/480",
+ "https://picsum.photos/seed/6hEE6Xczl/640/480",
+ "https://picsum.photos/seed/BxwWDG7VI/640/480",
+ "https://picsum.photos/seed/Smqxto/640/480",
+ "https://picsum.photos/seed/lopZaw/640/480"
+ ],
+ "featured": 1,
+ "position": 17,
+ "discount": "7"
+ },
+ {
+ "id": 18,
+ "name": "Genérico Ladrillo Salchichas",
+ "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
+ "price": "€123",
+ "specialPrice": "€32",
+ "isNew": true,
+ "slug": "978-0-209-20455-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/qjNIwJBH/640/480",
+ "https://picsum.photos/seed/0x9IX/640/480",
+ "https://picsum.photos/seed/imUsJFU96/640/480",
+ "https://picsum.photos/seed/HcNySAdgk/640/480",
+ "https://picsum.photos/seed/ejXmV5/640/480"
+ ],
+ "featured": 1,
+ "position": 18
+ },
+ {
+ "id": 19,
+ "name": "Rústico Metal Queso",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€37",
+ "specialPrice": "€22",
+ "isNew": true,
+ "slug": "978-0-16-851049-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/gFfzRc/640/480",
+ "https://picsum.photos/seed/tpxkYDoio/640/480",
+ "https://picsum.photos/seed/8VnjVJ/640/480",
+ "https://picsum.photos/seed/szFsAg2/640/480",
+ "https://picsum.photos/seed/qVSXAPgc/640/480"
+ ],
+ "featured": 1,
+ "position": 19
+ },
+ {
+ "id": 20,
+ "name": "Práctico Acero Coche",
+ "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
+ "price": "€192",
+ "specialPrice": "€48",
+ "isNew": true,
+ "slug": "978-1-5185-8109-0",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/R63EaR/640/480",
+ "https://picsum.photos/seed/03zfRW/640/480",
+ "https://picsum.photos/seed/XziIr5Z5e/640/480"
+ ],
+ "featured": 1,
+ "discount": "7"
+ },
+ {
+ "id": 21,
+ "name": "Guapo Acero Pollo",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€72",
+ "specialPrice": "€54",
+ "isNew": false,
+ "slug": "978-1-64463-953-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/2pTIx7c5t/640/480",
+ "https://picsum.photos/seed/CmDhFXaW/640/480",
+ "https://picsum.photos/seed/PEASp1msV/640/480",
+ "https://picsum.photos/seed/LiACRzF98/640/480",
+ "https://picsum.photos/seed/Gj0liud0/640/480",
+ "https://picsum.photos/seed/ECtHJu/640/480"
+ ],
+ "featured": 1,
+ "discount": "6"
+ },
+ {
+ "id": 22,
+ "name": "Guapo Plástico Salchichas",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€92",
+ "specialPrice": "€51",
+ "isNew": true,
+ "slug": "978-1-5092-8698-0",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/kPC5ZF0LDu/640/480",
+ "https://picsum.photos/seed/n3KLsXSV/640/480"
+ ],
+ "featured": 0,
+ "discount": "5"
+ },
+ {
+ "id": 23,
+ "name": "Genérico Acero Ordenador",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€63",
+ "specialPrice": "€24",
+ "isNew": false,
+ "slug": "978-0-340-13055-1",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Z4DDGQ73/640/480",
+ "https://picsum.photos/seed/Sp8RsXfq/640/480",
+ "https://picsum.photos/seed/cx5e8o/640/480",
+ "https://picsum.photos/seed/dcxD9/640/480",
+ "https://picsum.photos/seed/35ReI7Bu/640/480",
+ "https://picsum.photos/seed/qICF3pqLM/640/480"
+ ],
+ "featured": 1,
+ "discount": "15"
+ },
+ {
+ "id": 24,
+ "name": "Sabroso Granito Atún",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€78",
+ "specialPrice": "€46",
+ "isNew": true,
+ "slug": "978-0-9692522-3-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Im7jrJbMpc/640/480",
+ "https://picsum.photos/seed/SNjyA/640/480"
+ ],
+ "featured": 1,
+ "position": 24,
+ "discount": "7"
+ },
+ {
+ "id": 25,
+ "name": "Increible Granito Sopa",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€140",
+ "specialPrice": "€52",
+ "isNew": true,
+ "slug": "978-0-08-880628-2",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/y9EQvXvh1t/640/480",
+ "https://picsum.photos/seed/tLO2DBxZP/640/480",
+ "https://picsum.photos/seed/0yoZC8/640/480",
+ "https://picsum.photos/seed/ZBeTVLxlX/640/480",
+ "https://picsum.photos/seed/meU8GK/640/480"
+ ],
+ "featured": 1,
+ "position": 25,
+ "discount": "11"
+ },
+ {
+ "id": 26,
+ "name": "Fantástico Ladrillo Teclado",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€30",
+ "specialPrice": "€37",
+ "isNew": false,
+ "slug": "978-0-00-016789-7",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/hrMgVn2L3O/640/480",
+ "https://picsum.photos/seed/hKlXL/640/480",
+ "https://picsum.photos/seed/pApunk/640/480"
+ ],
+ "featured": 0,
+ "discount": "14"
+ },
+ {
+ "id": 27,
+ "name": "Rústico Acero Mesa",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€81",
+ "specialPrice": "€60",
+ "isNew": true,
+ "slug": "978-0-461-00555-4",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/i2OUSN/640/480",
+ "https://picsum.photos/seed/NRgbaPt/640/480"
+ ],
+ "featured": 0,
+ "discount": "14"
+ },
+ {
+ "id": 28,
+ "name": "Fantástico Plástico Pollo",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€21",
+ "specialPrice": "€37",
+ "isNew": true,
+ "slug": "978-1-0977-2422-2",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Qr1ra3RTwp/640/480",
+ "https://picsum.photos/seed/pO9sUU1qK/640/480",
+ "https://picsum.photos/seed/OyLRPf/640/480"
+ ],
+ "featured": 1,
+ "position": 28
+ },
+ {
+ "id": 29,
+ "name": "Ergonómico Ladrillo Pollo",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€116",
+ "specialPrice": "€55",
+ "isNew": false,
+ "slug": "978-1-6535-5279-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/sJmrmtVNr4/640/480",
+ "https://picsum.photos/seed/BD4foRfia/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 30,
+ "name": "Inteligente Algodón Queso",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€137",
+ "specialPrice": "€50",
+ "isNew": false,
+ "slug": "978-0-497-36469-4",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/CiKNv8u/640/480",
+ "https://picsum.photos/seed/0MG9M/640/480"
+ ],
+ "featured": 1,
+ "position": 30,
+ "discount": "12"
+ },
+ {
+ "id": 31,
+ "name": "Refinado Metal Queso",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€151",
+ "specialPrice": "€56",
+ "isNew": true,
+ "slug": "978-1-4491-3303-0",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/VDsjCtMqu/640/480",
+ "https://picsum.photos/seed/wg34YD5Rwf/640/480",
+ "https://picsum.photos/seed/sdtYQd/640/480",
+ "https://picsum.photos/seed/jeZwOAh/640/480"
+ ],
+ "featured": 0,
+ "position": 31
+ },
+ {
+ "id": 32,
+ "name": "Ergonómico Algodón Sopa",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€66",
+ "specialPrice": "€48",
+ "isNew": true,
+ "slug": "978-1-7062-3107-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/EyzrvDOS/640/480",
+ "https://picsum.photos/seed/vaSce/640/480",
+ "https://picsum.photos/seed/Ougrgz/640/480",
+ "https://picsum.photos/seed/qZR7hQr/640/480"
+ ],
+ "featured": 1,
+ "discount": "15"
+ },
+ {
+ "id": 33,
+ "name": "Genérico Ladrillo Toallas",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€77",
+ "specialPrice": "€29",
+ "isNew": false,
+ "slug": "978-0-7226-8893-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/tMbIX5HfV/640/480",
+ "https://picsum.photos/seed/et4ExAQi7t/640/480"
+ ],
+ "featured": 1,
+ "position": 33
+ },
+ {
+ "id": 34,
+ "name": "Guapo Hormigon Raton",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€146",
+ "specialPrice": "€51",
+ "isNew": true,
+ "slug": "978-0-634-39251-1",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/At8jG/640/480",
+ "https://picsum.photos/seed/sDBrvZFV/640/480",
+ "https://picsum.photos/seed/264y6Kb4/640/480",
+ "https://picsum.photos/seed/Oq1Vg5wKD1/640/480"
+ ],
+ "featured": 0,
+ "position": 34
+ },
+ {
+ "id": 35,
+ "name": "Increible Ladrillo Gorro",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€182",
+ "specialPrice": "€21",
+ "isNew": false,
+ "slug": "978-0-278-87699-6",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/ESZ0vh37/640/480",
+ "https://picsum.photos/seed/3ipst/640/480",
+ "https://picsum.photos/seed/UtOIJitn/640/480",
+ "https://picsum.photos/seed/hOe5PJXL4/640/480",
+ "https://picsum.photos/seed/6YfyMz/640/480"
+ ],
+ "featured": 1,
+ "position": 35,
+ "discount": "12"
+ },
+ {
+ "id": 36,
+ "name": "Práctico Ladrillo Queso",
+ "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
+ "price": "€121",
+ "specialPrice": "€37",
+ "isNew": true,
+ "slug": "978-1-205-79094-1",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/3fU8oSp/640/480",
+ "https://picsum.photos/seed/hPilFahxJ/640/480"
+ ],
+ "featured": 0,
+ "discount": "11"
+ },
+ {
+ "id": 37,
+ "name": "Artesanal Plástico Mesa",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€104",
+ "specialPrice": "€26",
+ "isNew": false,
+ "slug": "978-0-622-78623-0",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/9431Z0N/640/480",
+ "https://picsum.photos/seed/PRB6XG/640/480",
+ "https://picsum.photos/seed/VXfA7tWk/640/480",
+ "https://picsum.photos/seed/UC5Eyk/640/480",
+ "https://picsum.photos/seed/8zu64Vg/640/480"
+ ],
+ "featured": 1,
+ "position": 37,
+ "discount": "15"
+ },
+ {
+ "id": 38,
+ "name": "Sorprendente Algodón Pelota",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€187",
+ "specialPrice": "€58",
+ "isNew": true,
+ "slug": "978-0-07-402974-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/L95Tq/640/480",
+ "https://picsum.photos/seed/jGwY6fe7/640/480",
+ "https://picsum.photos/seed/8HN5lY/640/480",
+ "https://picsum.photos/seed/55gXWF/640/480"
+ ],
+ "featured": 1,
+ "position": 38,
+ "discount": "9"
+ },
+ {
+ "id": 39,
+ "name": "Increible Acero Bacon",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€178",
+ "specialPrice": "€42",
+ "isNew": false,
+ "slug": "978-1-988183-69-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/OG1z8v/640/480",
+ "https://picsum.photos/seed/zDIWnh/640/480",
+ "https://picsum.photos/seed/G8K6Y/640/480",
+ "https://picsum.photos/seed/X2YQlkyK/640/480",
+ "https://picsum.photos/seed/vJqjt1xGg/640/480"
+ ],
+ "featured": 0,
+ "position": 39
+ },
+ {
+ "id": 40,
+ "name": "Hecho a mano Algodón Patatas fritas",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€39",
+ "specialPrice": "€39",
+ "isNew": true,
+ "slug": "978-0-02-502903-3",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/pWKYUi/640/480",
+ "https://picsum.photos/seed/SzzSfmXb/640/480",
+ "https://picsum.photos/seed/wgx6Fqf2/640/480",
+ "https://picsum.photos/seed/w2KLf9vsn/640/480",
+ "https://picsum.photos/seed/jjHHEu8jK/640/480",
+ "https://picsum.photos/seed/oGjUOtwr8/640/480"
+ ],
+ "featured": 1,
+ "position": 40,
+ "discount": "9"
+ },
+ {
+ "id": 41,
+ "name": "Ergonómico Acero Atún",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€198",
+ "specialPrice": "€22",
+ "isNew": true,
+ "slug": "978-1-85589-158-6",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/eGJfc4q1T/640/480",
+ "https://picsum.photos/seed/k91Bz7/640/480"
+ ],
+ "featured": 1,
+ "position": 41
+ },
+ {
+ "id": 42,
+ "name": "Inteligente Metal Queso",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€156",
+ "specialPrice": "€27",
+ "isNew": false,
+ "slug": "978-0-6456549-2-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/JgLUcKGPom/640/480",
+ "https://picsum.photos/seed/sdfLY8h5Ls/640/480"
+ ],
+ "featured": 1,
+ "position": 42,
+ "discount": "13"
+ },
+ {
+ "id": 43,
+ "name": "Artesanal Plástico Zapatos",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€190",
+ "specialPrice": "€45",
+ "isNew": true,
+ "slug": "978-1-02-809202-4",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/PRf7tzKU/640/480",
+ "https://picsum.photos/seed/Y5VyD4/640/480",
+ "https://picsum.photos/seed/7CBwb/640/480",
+ "https://picsum.photos/seed/lGr6JNwzxc/640/480",
+ "https://picsum.photos/seed/8jHMY3HaW/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 44,
+ "name": "Guapa Algodón Ordenador",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€64",
+ "specialPrice": "€57",
+ "isNew": true,
+ "slug": "978-1-68323-226-1",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Ih19wbu/640/480",
+ "https://picsum.photos/seed/5ThuuBu0/640/480",
+ "https://picsum.photos/seed/QoQvfsJWQ/640/480",
+ "https://picsum.photos/seed/Wmb20fxPNP/640/480"
+ ],
+ "featured": 1,
+ "discount": "9"
+ },
+ {
+ "id": 45,
+ "name": "Sorprendente Hormigon Zapatos",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€22",
+ "specialPrice": "€30",
+ "isNew": false,
+ "slug": "978-1-968802-11-0",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/NOuUUf2/640/480",
+ "https://picsum.photos/seed/WzMqaJJI/640/480"
+ ],
+ "featured": 0,
+ "position": 45,
+ "discount": "5"
+ },
+ {
+ "id": 46,
+ "name": "Increible Ladrillo Camiseta",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€97",
+ "specialPrice": "€47",
+ "isNew": true,
+ "slug": "978-1-934589-91-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/9OWfenO/640/480",
+ "https://picsum.photos/seed/R9A2KO8r/640/480",
+ "https://picsum.photos/seed/JYvlA5niJP/640/480",
+ "https://picsum.photos/seed/IOhmM955/640/480"
+ ],
+ "featured": 0,
+ "position": 46
+ },
+ {
+ "id": 47,
+ "name": "Sabroso Hormigon Patatas fritas",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€61",
+ "specialPrice": "€46",
+ "isNew": false,
+ "slug": "978-0-8463-7330-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/8xeXyBLh/640/480",
+ "https://picsum.photos/seed/ANqlg/640/480",
+ "https://picsum.photos/seed/01fnkQB/640/480"
+ ],
+ "featured": 0,
+ "position": 47
+ },
+ {
+ "id": 48,
+ "name": "Inteligente Acero Raton",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€144",
+ "specialPrice": "€22",
+ "isNew": false,
+ "slug": "978-1-4877-5258-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/EZqWI8H/640/480",
+ "https://picsum.photos/seed/g121Kc/640/480",
+ "https://picsum.photos/seed/pQXxeZ9/640/480",
+ "https://picsum.photos/seed/mwxZuQ6nU/640/480"
+ ],
+ "featured": 0,
+ "position": 48,
+ "discount": "13"
+ },
+ {
+ "id": 49,
+ "name": "Guapo Metal Queso",
+ "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
+ "price": "€33",
+ "specialPrice": "€50",
+ "isNew": false,
+ "slug": "978-1-76643-868-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Mdv0GLuPC/640/480",
+ "https://picsum.photos/seed/MRltK/640/480",
+ "https://picsum.photos/seed/83n5YVKd/640/480",
+ "https://picsum.photos/seed/ebkF5/640/480",
+ "https://picsum.photos/seed/OoaIaYL/640/480",
+ "https://picsum.photos/seed/uFVKu4i/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 50,
+ "name": "Práctico Acero Ensalada",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€54",
+ "specialPrice": "€36",
+ "isNew": true,
+ "slug": "978-0-17-032826-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/0W3kLsvq48/640/480",
+ "https://picsum.photos/seed/11wFl/640/480",
+ "https://picsum.photos/seed/O78YvvqwA3/640/480",
+ "https://picsum.photos/seed/FGReuQgb/640/480"
+ ],
+ "featured": 0,
+ "discount": "7"
+ },
+ {
+ "id": 51,
+ "name": "Guapo Madera Pescado",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€68",
+ "specialPrice": "€32",
+ "isNew": false,
+ "slug": "978-1-77154-647-8",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/4ZQQbYb5O3/640/480",
+ "https://picsum.photos/seed/6H29Cs/640/480",
+ "https://picsum.photos/seed/8OtUIagf/640/480",
+ "https://picsum.photos/seed/9Jwjtl6T/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 52,
+ "name": "Guapa Acero Ensalada",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€57",
+ "specialPrice": "€24",
+ "isNew": false,
+ "slug": "978-1-7398942-0-7",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/TEYOLzMxK/640/480",
+ "https://picsum.photos/seed/uyCfS/640/480",
+ "https://picsum.photos/seed/zHd13CDHy/640/480",
+ "https://picsum.photos/seed/kUxnrlYJaT/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 53,
+ "name": "Genérico Ladrillo Toallas",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€126",
+ "specialPrice": "€30",
+ "isNew": true,
+ "slug": "978-0-231-46645-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/cwvSsJm2/640/480",
+ "https://picsum.photos/seed/wojCCrdA6/640/480",
+ "https://picsum.photos/seed/qXfndE/640/480",
+ "https://picsum.photos/seed/dXPYXZ/640/480"
+ ],
+ "featured": 1,
+ "discount": "10"
+ },
+ {
+ "id": 54,
+ "name": "Guapa Acero Raton",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€198",
+ "specialPrice": "€43",
+ "isNew": true,
+ "slug": "978-1-120-68725-8",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/RRM6936/640/480",
+ "https://picsum.photos/seed/fqeIP8F5wK/640/480"
+ ],
+ "featured": 1,
+ "position": 54,
+ "discount": "8"
+ },
+ {
+ "id": 55,
+ "name": "Guapa Madera Pelota",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€67",
+ "specialPrice": "€43",
+ "isNew": true,
+ "slug": "978-0-651-31352-0",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/aNBmy7p/640/480",
+ "https://picsum.photos/seed/nf4w0mU/640/480",
+ "https://picsum.photos/seed/YQEOVIrkE/640/480",
+ "https://picsum.photos/seed/ugruE7yh02/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 56,
+ "name": "Inteligente Algodón Silla",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€131",
+ "specialPrice": "€52",
+ "isNew": true,
+ "slug": "978-1-56277-598-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/DknAAXqqqe/640/480",
+ "https://picsum.photos/seed/DJrEOpg9LT/640/480",
+ "https://picsum.photos/seed/ZlCOA/640/480",
+ "https://picsum.photos/seed/P0l09NRWAB/640/480",
+ "https://picsum.photos/seed/4pslx9R0W/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 57,
+ "name": "Pequeño Ladrillo Raton",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€45",
+ "specialPrice": "€30",
+ "isNew": true,
+ "slug": "978-1-78857-382-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/vCQywQG5x3/640/480",
+ "https://picsum.photos/seed/1bnQZbo/640/480",
+ "https://picsum.photos/seed/4FaEuS/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 58,
+ "name": "Guapa Madera Silla",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€196",
+ "specialPrice": "€33",
+ "isNew": true,
+ "slug": "978-0-07-549789-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/wFfnaczJs/640/480",
+ "https://picsum.photos/seed/h7tpUz/640/480"
+ ],
+ "featured": 0,
+ "position": 58
+ },
+ {
+ "id": 59,
+ "name": "Increible Ladrillo Pantalones",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€157",
+ "specialPrice": "€58",
+ "isNew": true,
+ "slug": "978-1-6606-8008-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/wSNlqqGDnj/640/480",
+ "https://picsum.photos/seed/akco17bAP/640/480"
+ ],
+ "featured": 1,
+ "discount": "8"
+ },
+ {
+ "id": 60,
+ "name": "Sorprendente Granito Bacon",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€199",
+ "specialPrice": "€25",
+ "isNew": true,
+ "slug": "978-0-214-77678-6",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/UA0IV5/640/480",
+ "https://picsum.photos/seed/2u1Jq/640/480",
+ "https://picsum.photos/seed/CZlhlpt/640/480",
+ "https://picsum.photos/seed/G4vixO3mGA/640/480"
+ ],
+ "featured": 0,
+ "position": 60
+ },
+ {
+ "id": 61,
+ "name": "Guapa Algodón Coche",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€85",
+ "specialPrice": "€58",
+ "isNew": false,
+ "slug": "978-1-61571-806-1",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/ruBW8/640/480",
+ "https://picsum.photos/seed/s8rox1aZdu/640/480",
+ "https://picsum.photos/seed/iZoijP/640/480"
+ ],
+ "featured": 0,
+ "position": 61,
+ "discount": "14"
+ },
+ {
+ "id": 62,
+ "name": "Ergonómico Acero Pelota",
+ "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
+ "price": "€126",
+ "specialPrice": "€50",
+ "isNew": true,
+ "slug": "978-0-9942805-8-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/UYdfPT/640/480",
+ "https://picsum.photos/seed/LwNZQ/640/480",
+ "https://picsum.photos/seed/UFJqhi/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 63,
+ "name": "Guapo Plástico Zapatos",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€115",
+ "specialPrice": "€50",
+ "isNew": true,
+ "slug": "978-1-62601-482-4",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/BuF3co/640/480",
+ "https://picsum.photos/seed/7E5G7q/640/480",
+ "https://picsum.photos/seed/L9pPIL4Ew7/640/480",
+ "https://picsum.photos/seed/ImdLeF9GM/640/480",
+ "https://picsum.photos/seed/zpR1qakud/640/480",
+ "https://picsum.photos/seed/k0uzXuaQ9X/640/480"
+ ],
+ "featured": 0,
+ "position": 63
+ },
+ {
+ "id": 64,
+ "name": "Práctico Plástico Queso",
+ "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
+ "price": "€124",
+ "specialPrice": "€38",
+ "isNew": true,
+ "slug": "978-1-034-57523-8",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/OnpkS/640/480",
+ "https://picsum.photos/seed/AKAUU/640/480",
+ "https://picsum.photos/seed/TTXVK/640/480",
+ "https://picsum.photos/seed/sARKu5/640/480",
+ "https://picsum.photos/seed/vGpRqpwbBH/640/480",
+ "https://picsum.photos/seed/i8qOz/640/480"
+ ],
+ "featured": 1,
+ "position": 64,
+ "discount": "13"
+ },
+ {
+ "id": 65,
+ "name": "Sabroso Plástico Mesa",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€181",
+ "specialPrice": "€45",
+ "isNew": true,
+ "slug": "978-1-6947-8008-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/OQmCabD/640/480",
+ "https://picsum.photos/seed/gHdcbw01CI/640/480",
+ "https://picsum.photos/seed/mqIq6dy/640/480"
+ ],
+ "featured": 0,
+ "position": 65,
+ "discount": "15"
+ },
+ {
+ "id": 66,
+ "name": "Increible Granito Ensalada",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€136",
+ "specialPrice": "€52",
+ "isNew": false,
+ "slug": "978-1-62120-910-2",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/8Mg12H88uS/640/480",
+ "https://picsum.photos/seed/1zQQzEo4/640/480",
+ "https://picsum.photos/seed/XbMb1AE/640/480"
+ ],
+ "featured": 0,
+ "discount": "5"
+ },
+ {
+ "id": 67,
+ "name": "Refinado Metal Coche",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€120",
+ "specialPrice": "€22",
+ "isNew": true,
+ "slug": "978-0-9719632-9-0",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Tal0f7Iz/640/480",
+ "https://picsum.photos/seed/eK9RYs3o/640/480",
+ "https://picsum.photos/seed/zFnAPlqRH/640/480",
+ "https://picsum.photos/seed/6eaXZbEic/640/480",
+ "https://picsum.photos/seed/rCiuA/640/480"
+ ],
+ "featured": 0,
+ "position": 67
+ },
+ {
+ "id": 68,
+ "name": "Práctico Ladrillo Bicicleta",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€92",
+ "specialPrice": "€28",
+ "isNew": false,
+ "slug": "978-1-354-15563-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/mfame2/640/480",
+ "https://picsum.photos/seed/QLdO8Pmrt/640/480",
+ "https://picsum.photos/seed/6tP9k/640/480",
+ "https://picsum.photos/seed/JwLDg09x/640/480",
+ "https://picsum.photos/seed/K9c0oLk/640/480",
+ "https://picsum.photos/seed/w4UxRRGVu/640/480"
+ ],
+ "featured": 1,
+ "discount": "10"
+ },
+ {
+ "id": 69,
+ "name": "Hecho a mano Plástico Pelota",
+ "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
+ "price": "€152",
+ "specialPrice": "€40",
+ "isNew": false,
+ "slug": "978-0-89133-735-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/buHA8/640/480",
+ "https://picsum.photos/seed/KuFBo/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 70,
+ "name": "Increible Plástico Zapatos",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€153",
+ "specialPrice": "€46",
+ "isNew": false,
+ "slug": "978-1-05-703115-5",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Bv4ya/640/480",
+ "https://picsum.photos/seed/833dgigNh/640/480",
+ "https://picsum.photos/seed/VVuT5/640/480"
+ ],
+ "featured": 1,
+ "position": 70,
+ "discount": "10"
+ },
+ {
+ "id": 71,
+ "name": "Rústico Ladrillo Queso",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€68",
+ "specialPrice": "€40",
+ "isNew": true,
+ "slug": "978-1-996167-16-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/RR529G8AQ/640/480",
+ "https://picsum.photos/seed/IyoPdm/640/480",
+ "https://picsum.photos/seed/d4XQP6rZD/640/480"
+ ],
+ "featured": 0,
+ "discount": "6"
+ },
+ {
+ "id": 72,
+ "name": "Rústico Algodón Salchichas",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€172",
+ "specialPrice": "€50",
+ "isNew": false,
+ "slug": "978-1-0730-2232-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Zo3HaYLZK/640/480",
+ "https://picsum.photos/seed/jQ3IRqF28E/640/480"
+ ],
+ "featured": 1,
+ "discount": "14"
+ },
+ {
+ "id": 73,
+ "name": "Sorprendente Granito Guantes",
+ "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
+ "price": "€91",
+ "specialPrice": "€39",
+ "isNew": false,
+ "slug": "978-1-02-320083-7",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/7tyjUczX/640/480",
+ "https://picsum.photos/seed/vPqCyxn7CJ/640/480",
+ "https://picsum.photos/seed/SmZOD/640/480",
+ "https://picsum.photos/seed/N3UNwQd7D/640/480",
+ "https://picsum.photos/seed/6Loa6r/640/480",
+ "https://picsum.photos/seed/JoaUtj/640/480"
+ ],
+ "featured": 0,
+ "position": 73
+ },
+ {
+ "id": 74,
+ "name": "Guapa Acero Pescado",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€94",
+ "specialPrice": "€39",
+ "isNew": false,
+ "slug": "978-1-135-86374-6",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/IjknxR/640/480",
+ "https://picsum.photos/seed/Pr9rO0xp/640/480",
+ "https://picsum.photos/seed/fbCviRHoG2/640/480",
+ "https://picsum.photos/seed/jDRtEUn192/640/480",
+ "https://picsum.photos/seed/aQd3mH2F/640/480",
+ "https://picsum.photos/seed/se4xRmuPPf/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 75,
+ "name": "Hecho a mano Granito Bicicleta",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€107",
+ "specialPrice": "€51",
+ "isNew": false,
+ "slug": "978-1-4649-8562-1",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/tTU60/640/480",
+ "https://picsum.photos/seed/HWRO43jD/640/480",
+ "https://picsum.photos/seed/TyTRJ0hpaH/640/480",
+ "https://picsum.photos/seed/3lMIHw/640/480",
+ "https://picsum.photos/seed/WLIaOAkn/640/480"
+ ],
+ "featured": 1,
+ "position": 75
+ },
+ {
+ "id": 76,
+ "name": "Práctico Ladrillo Pantalones",
+ "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
+ "price": "€34",
+ "specialPrice": "€32",
+ "isNew": false,
+ "slug": "978-1-390-15421-4",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Yis3juQ/640/480",
+ "https://picsum.photos/seed/iVIPYmRU/640/480",
+ "https://picsum.photos/seed/s7PiT6cj2k/640/480",
+ "https://picsum.photos/seed/XYcc9/640/480",
+ "https://picsum.photos/seed/RTBU6ReCS/640/480"
+ ],
+ "featured": 1,
+ "position": 76,
+ "discount": "8"
+ },
+ {
+ "id": 77,
+ "name": "Sorprendente Granito Ordenador",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€127",
+ "specialPrice": "€47",
+ "isNew": true,
+ "slug": "978-1-61086-263-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/jNaW6TTsz7/640/480",
+ "https://picsum.photos/seed/YgcK2ET/640/480",
+ "https://picsum.photos/seed/CPxtcHTI/640/480",
+ "https://picsum.photos/seed/4Ldm2MU9/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 78,
+ "name": "Increible Metal Mesa",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€171",
+ "specialPrice": "€32",
+ "isNew": true,
+ "slug": "978-0-7348-9051-1",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/BIYPuDhw/640/480",
+ "https://picsum.photos/seed/RhBQg/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 79,
+ "name": "Guapa Ladrillo Mesa",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€152",
+ "specialPrice": "€32",
+ "isNew": false,
+ "slug": "978-0-85535-182-3",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/gCn3Gn4J/640/480",
+ "https://picsum.photos/seed/H6woz/640/480",
+ "https://picsum.photos/seed/7SjKV0Gvo/640/480",
+ "https://picsum.photos/seed/NosRUe/640/480",
+ "https://picsum.photos/seed/jfvUkZNxz/640/480",
+ "https://picsum.photos/seed/hE48zjBkJN/640/480"
+ ],
+ "featured": 0,
+ "position": 79,
+ "discount": "10"
+ },
+ {
+ "id": 80,
+ "name": "Rústico Plástico Bacon",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€101",
+ "specialPrice": "€43",
+ "isNew": false,
+ "slug": "978-0-8170-2360-7",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/yqp4WCakW/640/480",
+ "https://picsum.photos/seed/wJksyr/640/480",
+ "https://picsum.photos/seed/JxqfhUN/640/480",
+ "https://picsum.photos/seed/FmPsUwARh/640/480",
+ "https://picsum.photos/seed/hpsm9Qlz/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 81,
+ "name": "Rústico Plástico Camiseta",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€125",
+ "specialPrice": "€54",
+ "isNew": true,
+ "slug": "978-1-63511-395-2",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/kMOLLKeH/640/480",
+ "https://picsum.photos/seed/7EyXpI/640/480"
+ ],
+ "featured": 0,
+ "position": 81
+ },
+ {
+ "id": 82,
+ "name": "Fantástico Acero Camiseta",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€126",
+ "specialPrice": "€28",
+ "isNew": false,
+ "slug": "978-1-84813-407-2",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/RT7NZ/640/480",
+ "https://picsum.photos/seed/dyyKNLmteo/640/480",
+ "https://picsum.photos/seed/lQFlM/640/480",
+ "https://picsum.photos/seed/Bsb3499Muh/640/480"
+ ],
+ "featured": 1,
+ "discount": "10"
+ },
+ {
+ "id": 83,
+ "name": "Pequeño Plástico Pelota",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€41",
+ "specialPrice": "€21",
+ "isNew": false,
+ "slug": "978-1-204-38618-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/cFUtg/640/480",
+ "https://picsum.photos/seed/D8v5TxdpR/640/480",
+ "https://picsum.photos/seed/NI48Ih9x/640/480",
+ "https://picsum.photos/seed/89jXBoU/640/480",
+ "https://picsum.photos/seed/gWxDFdu57Q/640/480",
+ "https://picsum.photos/seed/mt3pr8WT/640/480"
+ ],
+ "featured": 0,
+ "discount": "11"
+ },
+ {
+ "id": 84,
+ "name": "Ergonómico Algodón Bicicleta",
+ "description": "The Football Is Good For Training And Recreational Purposes",
+ "price": "€106",
+ "specialPrice": "€48",
+ "isNew": false,
+ "slug": "978-1-4435-9524-7",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/UttIbigO/640/480",
+ "https://picsum.photos/seed/XP1J7BcqG5/640/480",
+ "https://picsum.photos/seed/b0QYzf2M/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 85,
+ "name": "Ergonómico Plástico Pollo",
+ "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
+ "price": "€111",
+ "specialPrice": "€50",
+ "isNew": true,
+ "slug": "978-1-260-73719-6",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/qzxBnGnr8/640/480",
+ "https://picsum.photos/seed/gOUZqm/640/480",
+ "https://picsum.photos/seed/voIVe4/640/480",
+ "https://picsum.photos/seed/abq4MfXds/640/480"
+ ],
+ "featured": 0,
+ "position": 85
+ },
+ {
+ "id": 86,
+ "name": "Práctico Metal Raton",
+ "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
+ "price": "€107",
+ "specialPrice": "€45",
+ "isNew": false,
+ "slug": "978-0-03-755366-3",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/KN9eu0p/640/480",
+ "https://picsum.photos/seed/UgkBW/640/480",
+ "https://picsum.photos/seed/4BnYLW2/640/480",
+ "https://picsum.photos/seed/kCrI71b/640/480",
+ "https://picsum.photos/seed/ef1i5G/640/480",
+ "https://picsum.photos/seed/sI2fX/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 87,
+ "name": "Guapa Hormigon Sopa",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€87",
+ "specialPrice": "€53",
+ "isNew": false,
+ "slug": "978-1-0729-5563-4",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/EcwS7OPea/640/480",
+ "https://picsum.photos/seed/bgFlry/640/480",
+ "https://picsum.photos/seed/8VkHPIOc5b/640/480",
+ "https://picsum.photos/seed/FDJiUYJO/640/480",
+ "https://picsum.photos/seed/7BHOuB/640/480"
+ ],
+ "featured": 0
+ },
+ {
+ "id": 88,
+ "name": "Fantástico Hormigon Silla",
+ "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
+ "price": "€180",
+ "specialPrice": "€45",
+ "isNew": false,
+ "slug": "978-0-944532-65-2",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/a1l9oc6wW/640/480",
+ "https://picsum.photos/seed/cNI5HKX5u/640/480",
+ "https://picsum.photos/seed/xZlNPB9Xv/640/480",
+ "https://picsum.photos/seed/OIW2wuep/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 89,
+ "name": "Artesanal Madera Salchichas",
+ "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
+ "price": "€66",
+ "specialPrice": "€49",
+ "isNew": false,
+ "slug": "978-0-630-91631-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/Pl4DMgo/640/480",
+ "https://picsum.photos/seed/Ibec55k/640/480",
+ "https://picsum.photos/seed/kE0ngnp3u/640/480"
+ ],
+ "featured": 0,
+ "position": 89
+ },
+ {
+ "id": 90,
+ "name": "Práctico Hormigon Pizza",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€172",
+ "specialPrice": "€35",
+ "isNew": true,
+ "slug": "978-1-302-50924-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/nelVNN0R8/640/480",
+ "https://picsum.photos/seed/YohZP/640/480",
+ "https://picsum.photos/seed/txOphTKo/640/480",
+ "https://picsum.photos/seed/HXmuv/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 91,
+ "name": "Genérico Hormigon Pantalones",
+ "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
+ "price": "€81",
+ "specialPrice": "€40",
+ "isNew": true,
+ "slug": "978-0-9724921-9-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/aZSLe6/640/480",
+ "https://picsum.photos/seed/dtABipq5ZX/640/480",
+ "https://picsum.photos/seed/Rju99are/640/480",
+ "https://picsum.photos/seed/fA8VHW/640/480"
+ ],
+ "featured": 1,
+ "discount": "15"
+ },
+ {
+ "id": 92,
+ "name": "Increible Algodón Camiseta",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€67",
+ "specialPrice": "€27",
+ "isNew": true,
+ "slug": "978-1-338-29667-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/aYpdJ/640/480",
+ "https://picsum.photos/seed/hZgXaLBkbv/640/480",
+ "https://picsum.photos/seed/ZSyl9/640/480",
+ "https://picsum.photos/seed/ry7F0C216/640/480",
+ "https://picsum.photos/seed/Oa5Bs/640/480"
+ ],
+ "featured": 1,
+ "position": 92,
+ "discount": "10"
+ },
+ {
+ "id": 93,
+ "name": "Ergonómico Hormigon Salchichas",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€101",
+ "specialPrice": "€50",
+ "isNew": false,
+ "slug": "978-1-4253-6756-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/5v2teo6Zz6/640/480",
+ "https://picsum.photos/seed/rbwjSBZO/640/480",
+ "https://picsum.photos/seed/mDbpsj/640/480",
+ "https://picsum.photos/seed/Xxy2oRlrSe/640/480",
+ "https://picsum.photos/seed/qTE4MY4H/640/480",
+ "https://picsum.photos/seed/8BdF3DTP/640/480"
+ ],
+ "featured": 0,
+ "position": 93
+ },
+ {
+ "id": 94,
+ "name": "Inteligente Ladrillo Ensalada",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€122",
+ "specialPrice": "€48",
+ "isNew": false,
+ "slug": "978-1-962465-77-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/9W1D4ya3/640/480",
+ "https://picsum.photos/seed/wJhM250/640/480",
+ "https://picsum.photos/seed/o50uMDdn/640/480"
+ ],
+ "featured": 0,
+ "position": 94,
+ "discount": "8"
+ },
+ {
+ "id": 95,
+ "name": "Rústico Granito Ordenador",
+ "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
+ "price": "€141",
+ "specialPrice": "€55",
+ "isNew": false,
+ "slug": "978-0-255-91043-9",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/V2I1EG5e/640/480",
+ "https://picsum.photos/seed/Ez6cq/640/480",
+ "https://picsum.photos/seed/dhhAbcsiMC/640/480"
+ ],
+ "featured": 1,
+ "discount": "15"
+ },
+ {
+ "id": 96,
+ "name": "Sabroso Acero Pelota",
+ "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
+ "price": "€154",
+ "specialPrice": "€46",
+ "isNew": false,
+ "slug": "978-0-17-399087-2",
+ "type": 1,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/aZe2oHA/640/480",
+ "https://picsum.photos/seed/ZORbd2f/640/480"
+ ],
+ "featured": 1,
+ "discount": "9"
+ },
+ {
+ "id": 97,
+ "name": "Rústico Acero Mesa",
+ "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
+ "price": "€81",
+ "specialPrice": "€20",
+ "isNew": false,
+ "slug": "978-1-56213-534-8",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/LnWXyc/640/480",
+ "https://picsum.photos/seed/2bGZg/640/480",
+ "https://picsum.photos/seed/AFIHk/640/480",
+ "https://picsum.photos/seed/g3RB1YV/640/480",
+ "https://picsum.photos/seed/kkMr2EV0/640/480",
+ "https://picsum.photos/seed/3U95D/640/480"
+ ],
+ "featured": 1,
+ "position": 97,
+ "discount": "8"
+ },
+ {
+ "id": 98,
+ "name": "Pequeño Ladrillo Ordenador",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€101",
+ "specialPrice": "€55",
+ "isNew": false,
+ "slug": "978-1-317-32624-3",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/N3EHIBNkig/640/480",
+ "https://picsum.photos/seed/DYzVVwtIis/640/480",
+ "https://picsum.photos/seed/b5CAifkzaY/640/480",
+ "https://picsum.photos/seed/lwlEq/640/480"
+ ],
+ "featured": 1
+ },
+ {
+ "id": 99,
+ "name": "Pequeño Ladrillo Pantalones",
+ "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
+ "price": "€61",
+ "specialPrice": "€55",
+ "isNew": true,
+ "slug": "978-1-76170-762-9",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/oiJiOD/640/480",
+ "https://picsum.photos/seed/Jq1xZr/640/480",
+ "https://picsum.photos/seed/5TYFRW/640/480"
+ ],
+ "featured": 0,
+ "position": 99,
+ "discount": "9"
+ },
+ {
+ "id": 100,
+ "name": "Práctico Algodón Pollo",
+ "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
+ "price": "€195",
+ "specialPrice": "€28",
+ "isNew": false,
+ "slug": "978-0-516-47110-5",
+ "type": 2,
+ "postalCode": "12345",
+ "dateExpired": "2024-01-30",
+ "images": [
+ "https://picsum.photos/seed/MrRQyfqHW/640/480",
+ "https://picsum.photos/seed/SQxKuo/640/480",
+ "https://picsum.photos/seed/Aa5He/640/480",
+ "https://picsum.photos/seed/wTp5CN7UPU/640/480",
+ "https://picsum.photos/seed/U8QWR7eUEe/640/480"
+ ],
+ "featured": 1,
+ "position": 100,
+ "discount": "12"
+ }
+]
diff --git a/api/controller/products.json b/api/controller/products.json
deleted file mode 100644
index 3840e9b..0000000
--- a/api/controller/products.json
+++ /dev/null
@@ -1,1974 +0,0 @@
-[
- {
- "id": 1,
- "name": "Increible Metal Gorro",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€200",
- "specialPrice": "€54",
- "isNew": false,
- "slug": "978-1-348-64648-8",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/efCSfe/640/480",
- "https://picsum.photos/seed/cJ5zEC/640/480"
- ],
- "featured": 1
- },
- {
- "id": 2,
- "name": "Inteligente Ladrillo Atún",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€59",
- "specialPrice": "€36",
- "isNew": true,
- "slug": "978-0-8481-8892-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/aqCUrLS/640/480",
- "https://picsum.photos/seed/AyGVwTCkAI/640/480",
- "https://picsum.photos/seed/N0kuFal/640/480"
- ],
- "featured": 0,
- "position": 2
- },
- {
- "id": 3,
- "name": "Sabroso Madera Camiseta",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€67",
- "specialPrice": "€25",
- "isNew": true,
- "slug": "978-0-319-77499-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/hLvGjJ/640/480",
- "https://picsum.photos/seed/NcOmpIJw/640/480"
- ],
- "featured": 1,
- "position": 3
- },
- {
- "id": 4,
- "name": "Genérico Algodón Coche",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€128",
- "specialPrice": "€34",
- "isNew": false,
- "slug": "978-0-431-46161-8",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/knVoCgN/640/480",
- "https://picsum.photos/seed/5yGO2h/640/480"
- ],
- "featured": 1,
- "position": 4,
- "discount": "5"
- },
- {
- "id": 5,
- "name": "Ergonómico Algodón Pantalones",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€193",
- "specialPrice": "€54",
- "isNew": false,
- "slug": "978-1-342-63425-2",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/YD3k3/640/480",
- "https://picsum.photos/seed/jkGhjeZ00/640/480",
- "https://picsum.photos/seed/gSNZGN/640/480",
- "https://picsum.photos/seed/AEJnS/640/480"
- ],
- "featured": 1,
- "discount": "14"
- },
- {
- "id": 6,
- "name": "Increible Hormigon Sopa",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€77",
- "specialPrice": "€40",
- "isNew": true,
- "slug": "978-1-268-28760-0",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/xntRUHQ/640/480",
- "https://picsum.photos/seed/Hu4oY/640/480",
- "https://picsum.photos/seed/590BcM/640/480",
- "https://picsum.photos/seed/HsVfl/640/480"
- ],
- "featured": 1
- },
- {
- "id": 7,
- "name": "Sorprendente Metal Teclado",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€84",
- "specialPrice": "€42",
- "isNew": true,
- "slug": "978-0-7079-1378-0",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/oVPFFWAPa/640/480",
- "https://picsum.photos/seed/DAsBOLDk/640/480",
- "https://picsum.photos/seed/WyZIkkU999/640/480",
- "https://picsum.photos/seed/qQ5llz2/640/480",
- "https://picsum.photos/seed/Neug42/640/480"
- ],
- "featured": 1,
- "position": 7,
- "discount": "8"
- },
- {
- "id": 8,
- "name": "Práctico Plástico Patatas fritas",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€91",
- "specialPrice": "€44",
- "isNew": false,
- "slug": "978-1-295-54883-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/6enb1U/640/480",
- "https://picsum.photos/seed/wLiKA/640/480",
- "https://picsum.photos/seed/7BHZ8KnK0J/640/480",
- "https://picsum.photos/seed/ZswFH/640/480"
- ],
- "featured": 1,
- "position": 8,
- "discount": "12"
- },
- {
- "id": 9,
- "name": "Sabroso Ladrillo Pollo",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€179",
- "specialPrice": "€48",
- "isNew": false,
- "slug": "978-1-63125-580-9",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/rtWLLUs/640/480",
- "https://picsum.photos/seed/84YmSjI/640/480",
- "https://picsum.photos/seed/8mfl0k/640/480",
- "https://picsum.photos/seed/FXbll/640/480"
- ],
- "featured": 0,
- "discount": "12"
- },
- {
- "id": 10,
- "name": "Genérico Plástico Gorro",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€50",
- "specialPrice": "€32",
- "isNew": true,
- "slug": "978-1-76312-403-5",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/FB6ThP/640/480",
- "https://picsum.photos/seed/9KZh5I/640/480"
- ],
- "featured": 0,
- "position": 10,
- "discount": "15"
- },
- {
- "id": 11,
- "name": "Ergonómico Plástico Raton",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€108",
- "specialPrice": "€54",
- "isNew": true,
- "slug": "978-1-82301-801-4",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/AQBLZ/640/480",
- "https://picsum.photos/seed/luBRfDE3N/640/480",
- "https://picsum.photos/seed/lDgqkF7FZ/640/480",
- "https://picsum.photos/seed/hZC5b3hFzC/640/480",
- "https://picsum.photos/seed/LdmTkN/640/480",
- "https://picsum.photos/seed/1vhVw/640/480"
- ],
- "featured": 0
- },
- {
- "id": 12,
- "name": "Guapo Acero Mesa",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€56",
- "specialPrice": "€28",
- "isNew": false,
- "slug": "978-1-965192-91-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/j1ViMIl/640/480",
- "https://picsum.photos/seed/GlmDi/640/480",
- "https://picsum.photos/seed/fYbvd6t/640/480"
- ],
- "featured": 1,
- "position": 12
- },
- {
- "id": 13,
- "name": "Genérico Ladrillo Pizza",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€130",
- "specialPrice": "€50",
- "isNew": false,
- "slug": "978-0-87287-519-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/MeJEmW0/640/480",
- "https://picsum.photos/seed/HzpbywR2D/640/480",
- "https://picsum.photos/seed/tJBVf/640/480",
- "https://picsum.photos/seed/pMCEmn38/640/480",
- "https://picsum.photos/seed/oLjn2o/640/480"
- ],
- "featured": 1,
- "discount": "7"
- },
- {
- "id": 14,
- "name": "Refinado Madera Teclado",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€95",
- "specialPrice": "€31",
- "isNew": true,
- "slug": "978-1-7991-7993-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/jake6b/640/480",
- "https://picsum.photos/seed/Bv3GD/640/480",
- "https://picsum.photos/seed/NjEk2s/640/480"
- ],
- "featured": 0
- },
- {
- "id": 15,
- "name": "Ergonómico Granito Gorro",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€178",
- "specialPrice": "€58",
- "isNew": true,
- "slug": "978-1-236-05968-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/NUjeWD/640/480",
- "https://picsum.photos/seed/FXcWKarPgR/640/480",
- "https://picsum.photos/seed/teETy/640/480",
- "https://picsum.photos/seed/xU40Wwc/640/480",
- "https://picsum.photos/seed/nYXPBqk/640/480",
- "https://picsum.photos/seed/8MIPl/640/480"
- ],
- "featured": 0,
- "discount": "11"
- },
- {
- "id": 16,
- "name": "Inteligente Algodón Toallas",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€88",
- "specialPrice": "€30",
- "isNew": false,
- "slug": "978-1-06-472991-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/3QgBNrISB/640/480",
- "https://picsum.photos/seed/w26O8t4dU/640/480",
- "https://picsum.photos/seed/LcunJq/640/480",
- "https://picsum.photos/seed/wsxF0MFH/640/480",
- "https://picsum.photos/seed/qCaawO/640/480"
- ],
- "featured": 0,
- "discount": "7"
- },
- {
- "id": 17,
- "name": "Sabroso Granito Atún",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€21",
- "specialPrice": "€60",
- "isNew": false,
- "slug": "978-1-57118-965-3",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/SN0IW/640/480",
- "https://picsum.photos/seed/Ajbvmw3/640/480",
- "https://picsum.photos/seed/ZNquT4J50/640/480"
- ],
- "featured": 0,
- "position": 17,
- "discount": "11"
- },
- {
- "id": 18,
- "name": "Genérico Plástico Camiseta",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€149",
- "specialPrice": "€40",
- "isNew": false,
- "slug": "978-1-932110-67-8",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/Ib02oSlkv/640/480",
- "https://picsum.photos/seed/j7IHn0WcKp/640/480",
- "https://picsum.photos/seed/T8heZoClH/640/480",
- "https://picsum.photos/seed/oAzVU/640/480",
- "https://picsum.photos/seed/lf0N4j/640/480"
- ],
- "featured": 0
- },
- {
- "id": 19,
- "name": "Genérico Metal Queso",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€27",
- "specialPrice": "€26",
- "isNew": true,
- "slug": "978-1-324-94811-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/H9uB5/640/480",
- "https://picsum.photos/seed/SoANcSxyac/640/480",
- "https://picsum.photos/seed/KLSOpBF9kh/640/480",
- "https://picsum.photos/seed/pLNNSDd/640/480",
- "https://picsum.photos/seed/6ogPVwRn/640/480"
- ],
- "featured": 0,
- "position": 19
- },
- {
- "id": 20,
- "name": "Hecho a mano Plástico Salchichas",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€152",
- "specialPrice": "€32",
- "isNew": false,
- "slug": "978-1-310-91779-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/FEfDF6tnF/640/480",
- "https://picsum.photos/seed/eTmq5a/640/480",
- "https://picsum.photos/seed/SMULME/640/480",
- "https://picsum.photos/seed/t11SEBl6/640/480"
- ],
- "featured": 0
- },
- {
- "id": 21,
- "name": "Inteligente Algodón Atún",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€21",
- "specialPrice": "€50",
- "isNew": true,
- "slug": "978-0-7133-9383-5",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/hW3tkRcqCI/640/480",
- "https://picsum.photos/seed/t7NHO/640/480",
- "https://picsum.photos/seed/V3gdDgxD0/640/480",
- "https://picsum.photos/seed/cqgpbHa/640/480",
- "https://picsum.photos/seed/jNZ62FSKc/640/480"
- ],
- "featured": 1,
- "position": 21,
- "discount": "14"
- },
- {
- "id": 22,
- "name": "Sabroso Algodón Pollo",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€102",
- "specialPrice": "€36",
- "isNew": false,
- "slug": "978-0-288-35801-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/z7odxwHu/640/480",
- "https://picsum.photos/seed/RaGAjX8R/640/480",
- "https://picsum.photos/seed/Hmj1KFPpO/640/480",
- "https://picsum.photos/seed/uianxlSxSf/640/480",
- "https://picsum.photos/seed/zYhooqjS/640/480"
- ],
- "featured": 1,
- "position": 22
- },
- {
- "id": 23,
- "name": "Refinado Granito Coche",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€81",
- "specialPrice": "€26",
- "isNew": true,
- "slug": "978-0-8275-2208-4",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/XFcxz0YY/640/480",
- "https://picsum.photos/seed/bRx77e/640/480",
- "https://picsum.photos/seed/eMxcy371u/640/480"
- ],
- "featured": 1,
- "position": 23
- },
- {
- "id": 24,
- "name": "Increible Metal Pizza",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€188",
- "specialPrice": "€56",
- "isNew": true,
- "slug": "978-1-55027-664-0",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/qMu6FQzt/640/480",
- "https://picsum.photos/seed/cslc2/640/480",
- "https://picsum.photos/seed/F4wKdsI51V/640/480"
- ],
- "featured": 0,
- "position": 24,
- "discount": "8"
- },
- {
- "id": 25,
- "name": "Fantástico Metal Teclado",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€89",
- "specialPrice": "€22",
- "isNew": true,
- "slug": "978-1-140-19874-1",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/61xoHbbj3/640/480",
- "https://picsum.photos/seed/jvlNP/640/480",
- "https://picsum.photos/seed/xciRM7qd3B/640/480",
- "https://picsum.photos/seed/rmfcz75sV/640/480"
- ],
- "featured": 0,
- "position": 25
- },
- {
- "id": 26,
- "name": "Increible Plástico Pelota",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€59",
- "specialPrice": "€45",
- "isNew": false,
- "slug": "978-1-048-57120-2",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/Kv2pHL/640/480",
- "https://picsum.photos/seed/8nMjd6TU2/640/480",
- "https://picsum.photos/seed/Spcwv/640/480",
- "https://picsum.photos/seed/OTyjd/640/480",
- "https://picsum.photos/seed/YVbDFheA/640/480"
- ],
- "featured": 1,
- "position": 26,
- "discount": "15"
- },
- {
- "id": 27,
- "name": "Genérico Acero Coche",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€59",
- "specialPrice": "€44",
- "isNew": true,
- "slug": "978-0-15-326573-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/WSkuyujFa/640/480",
- "https://picsum.photos/seed/WmuRvQx/640/480",
- "https://picsum.photos/seed/kb0vcOf/640/480",
- "https://picsum.photos/seed/uH0xXb/640/480",
- "https://picsum.photos/seed/4MzyV3/640/480"
- ],
- "featured": 1,
- "position": 27
- },
- {
- "id": 28,
- "name": "Hecho a mano Hormigon Zapatos",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€45",
- "specialPrice": "€45",
- "isNew": true,
- "slug": "978-0-7563-2842-9",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/cYKbw/640/480",
- "https://picsum.photos/seed/IYFq9N/640/480",
- "https://picsum.photos/seed/UvSVZ78/640/480",
- "https://picsum.photos/seed/INrOs/640/480",
- "https://picsum.photos/seed/dEhAEZrv/640/480",
- "https://picsum.photos/seed/cMjA3Z/640/480"
- ],
- "featured": 1,
- "position": 28
- },
- {
- "id": 29,
- "name": "Refinado Granito Pollo",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€191",
- "specialPrice": "€44",
- "isNew": true,
- "slug": "978-1-3988-7301-8",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/qePoXP6K/640/480",
- "https://picsum.photos/seed/h3p0l6/640/480",
- "https://picsum.photos/seed/G2EpUubO/640/480"
- ],
- "featured": 1
- },
- {
- "id": 30,
- "name": "Inteligente Madera Salchichas",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€126",
- "specialPrice": "€20",
- "isNew": true,
- "slug": "978-1-331-75743-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/dBTrE/640/480",
- "https://picsum.photos/seed/JA4Cw/640/480",
- "https://picsum.photos/seed/2q5if/640/480",
- "https://picsum.photos/seed/2ih0CRO/640/480",
- "https://picsum.photos/seed/8fCncPfW/640/480"
- ],
- "featured": 0,
- "discount": "5"
- },
- {
- "id": 31,
- "name": "Rústico Hormigon Bicicleta",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€63",
- "specialPrice": "€40",
- "isNew": true,
- "slug": "978-0-11-989468-4",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/EwzFjj8/640/480",
- "https://picsum.photos/seed/Ne0GuwEU6/640/480"
- ],
- "featured": 1
- },
- {
- "id": 32,
- "name": "Genérico Algodón Raton",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€95",
- "specialPrice": "€20",
- "isNew": false,
- "slug": "978-1-4452-7592-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/JzEKDZ/640/480",
- "https://picsum.photos/seed/ofYhP4/640/480",
- "https://picsum.photos/seed/psUTjl0o/640/480"
- ],
- "featured": 1
- },
- {
- "id": 33,
- "name": "Guapa Ladrillo Teclado",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€168",
- "specialPrice": "€28",
- "isNew": false,
- "slug": "978-1-8380507-5-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/MvlUAg/640/480",
- "https://picsum.photos/seed/kJ6aZe/640/480",
- "https://picsum.photos/seed/vG2qiqZrI/640/480"
- ],
- "featured": 1,
- "discount": "14"
- },
- {
- "id": 34,
- "name": "Guapa Acero Ensalada",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€199",
- "specialPrice": "€51",
- "isNew": false,
- "slug": "978-0-515-08362-0",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/ktlHFZa7T/640/480",
- "https://picsum.photos/seed/zGj5G1f/640/480",
- "https://picsum.photos/seed/cGn3F/640/480"
- ],
- "featured": 1
- },
- {
- "id": 35,
- "name": "Hecho a mano Algodón Pelota",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€164",
- "specialPrice": "€49",
- "isNew": true,
- "slug": "978-1-377-81139-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/jTkM6B/640/480",
- "https://picsum.photos/seed/1bMD1mgLJ/640/480",
- "https://picsum.photos/seed/Ho4E1yc/640/480",
- "https://picsum.photos/seed/rFUM8gZxsK/640/480",
- "https://picsum.photos/seed/9PQ51cFnX/640/480"
- ],
- "featured": 0,
- "discount": "9"
- },
- {
- "id": 36,
- "name": "Guapo Metal Pescado",
- "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
- "price": "€187",
- "specialPrice": "€51",
- "isNew": false,
- "slug": "978-0-314-22100-1",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/mcSNVcAt/640/480",
- "https://picsum.photos/seed/YgXJEOkF/640/480",
- "https://picsum.photos/seed/e3fkI67F/640/480"
- ],
- "featured": 1,
- "position": 36
- },
- {
- "id": 37,
- "name": "Fantástico Madera Pollo",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€195",
- "specialPrice": "€39",
- "isNew": true,
- "slug": "978-1-84460-628-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/PuObBpl/640/480",
- "https://picsum.photos/seed/D6XW1XMhuR/640/480",
- "https://picsum.photos/seed/XaZsN/640/480"
- ],
- "featured": 0,
- "discount": "11"
- },
- {
- "id": 38,
- "name": "Rústico Algodón Queso",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€124",
- "specialPrice": "€26",
- "isNew": true,
- "slug": "978-1-309-55513-2",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/8g9ga6K/640/480",
- "https://picsum.photos/seed/er1R20/640/480",
- "https://picsum.photos/seed/W05nMAmO/640/480",
- "https://picsum.photos/seed/NGjAmte4C/640/480"
- ],
- "featured": 0,
- "discount": "10"
- },
- {
- "id": 39,
- "name": "Sorprendente Ladrillo Mesa",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€103",
- "specialPrice": "€53",
- "isNew": true,
- "slug": "978-1-6599-5199-8",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/Kbdw1/640/480",
- "https://picsum.photos/seed/pEemudoDJ/640/480",
- "https://picsum.photos/seed/R9F4r1E/640/480"
- ],
- "featured": 0
- },
- {
- "id": 40,
- "name": "Genérico Madera Teclado",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€27",
- "specialPrice": "€44",
- "isNew": true,
- "slug": "978-0-00-710592-2",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/qsKyfaxQ4g/640/480",
- "https://picsum.photos/seed/RbYRZBXlm/640/480",
- "https://picsum.photos/seed/ZNVJ25dE0X/640/480",
- "https://picsum.photos/seed/Mc0Sc/640/480",
- "https://picsum.photos/seed/KwPFis3Jh/640/480",
- "https://picsum.photos/seed/rShUr0Fxp/640/480"
- ],
- "featured": 1,
- "discount": "14"
- },
- {
- "id": 41,
- "name": "Genérico Granito Pantalones",
- "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
- "price": "€38",
- "specialPrice": "€48",
- "isNew": false,
- "slug": "978-1-4176-3485-9",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/zLjAl3/640/480",
- "https://picsum.photos/seed/t7lzKsc/640/480",
- "https://picsum.photos/seed/EdEpBs2n3/640/480"
- ],
- "featured": 0
- },
- {
- "id": 42,
- "name": "Guapo Madera Raton",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€160",
- "specialPrice": "€22",
- "isNew": true,
- "slug": "978-0-940197-17-6",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/bB5fh/640/480",
- "https://picsum.photos/seed/4z8LC3hXF/640/480",
- "https://picsum.photos/seed/KhHhYT/640/480",
- "https://picsum.photos/seed/Fg8pI/640/480",
- "https://picsum.photos/seed/Uj5w7I3V/640/480"
- ],
- "featured": 1,
- "position": 42,
- "discount": "7"
- },
- {
- "id": 43,
- "name": "Artesanal Plástico Gorro",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€154",
- "specialPrice": "€56",
- "isNew": true,
- "slug": "978-1-318-64981-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/QVRhLvAY7/640/480",
- "https://picsum.photos/seed/JAM43Cq3qz/640/480",
- "https://picsum.photos/seed/g1CG1BOr/640/480",
- "https://picsum.photos/seed/g5Gpd/640/480"
- ],
- "featured": 1,
- "position": 43
- },
- {
- "id": 44,
- "name": "Refinado Algodón Camiseta",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€32",
- "specialPrice": "€28",
- "isNew": false,
- "slug": "978-0-89872-374-8",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/l97X5/640/480",
- "https://picsum.photos/seed/e5a8U/640/480",
- "https://picsum.photos/seed/3ID5gT/640/480",
- "https://picsum.photos/seed/Fv91Wp2/640/480"
- ],
- "featured": 1,
- "discount": "14"
- },
- {
- "id": 45,
- "name": "Refinado Plástico Zapatos",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€106",
- "specialPrice": "€34",
- "isNew": true,
- "slug": "978-0-217-22380-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/cSzf4H/640/480",
- "https://picsum.photos/seed/yuUm9XD8o/640/480",
- "https://picsum.photos/seed/zRg0Tof/640/480"
- ],
- "featured": 1
- },
- {
- "id": 46,
- "name": "Increible Madera Ordenador",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€111",
- "specialPrice": "€35",
- "isNew": true,
- "slug": "978-0-909996-40-6",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/8CNBVztO/640/480",
- "https://picsum.photos/seed/Xrp987/640/480",
- "https://picsum.photos/seed/8uaxkeTHO/640/480"
- ],
- "featured": 1
- },
- {
- "id": 47,
- "name": "Fantástico Acero Queso",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€123",
- "specialPrice": "€23",
- "isNew": false,
- "slug": "978-1-64697-271-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/wCp2KM/640/480",
- "https://picsum.photos/seed/nnBEvn/640/480",
- "https://picsum.photos/seed/t5y9qSOx/640/480",
- "https://picsum.photos/seed/IwucQ3tPf/640/480",
- "https://picsum.photos/seed/Jb0yX4/640/480",
- "https://picsum.photos/seed/6e7xniBLbp/640/480"
- ],
- "featured": 1,
- "position": 47
- },
- {
- "id": 48,
- "name": "Rústico Plástico Teclado",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€72",
- "specialPrice": "€48",
- "isNew": true,
- "slug": "978-0-937555-33-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/hg9HMXJ4l/640/480",
- "https://picsum.photos/seed/PCA1uHX/640/480",
- "https://picsum.photos/seed/JFRCbMQO/640/480",
- "https://picsum.photos/seed/j5oP44i/640/480",
- "https://picsum.photos/seed/8ltyUC/640/480",
- "https://picsum.photos/seed/rJMEG/640/480"
- ],
- "featured": 1
- },
- {
- "id": 49,
- "name": "Guapa Acero Gorro",
- "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
- "price": "€41",
- "specialPrice": "€35",
- "isNew": false,
- "slug": "978-1-238-68808-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/mWU235G/640/480",
- "https://picsum.photos/seed/ZCinUiiwZ/640/480",
- "https://picsum.photos/seed/yJo5MOPK/640/480",
- "https://picsum.photos/seed/29OaIyJ/640/480"
- ],
- "featured": 0,
- "discount": "15"
- },
- {
- "id": 50,
- "name": "Genérico Algodón Bicicleta",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€190",
- "specialPrice": "€20",
- "isNew": false,
- "slug": "978-1-56675-720-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/EaDjCiqk/640/480",
- "https://picsum.photos/seed/nGNbbNc/640/480"
- ],
- "featured": 1,
- "discount": "15"
- },
- {
- "id": 51,
- "name": "Refinado Metal Pollo",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€20",
- "specialPrice": "€56",
- "isNew": true,
- "slug": "978-1-257-37902-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/s8zjP0/640/480",
- "https://picsum.photos/seed/9zEZt/640/480",
- "https://picsum.photos/seed/V7zVU/640/480"
- ],
- "featured": 0,
- "discount": "13"
- },
- {
- "id": 52,
- "name": "Fantástico Plástico Ensalada",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€194",
- "specialPrice": "€38",
- "isNew": true,
- "slug": "978-1-933903-90-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/HTev9LlW/640/480",
- "https://picsum.photos/seed/SUxtP5cT/640/480",
- "https://picsum.photos/seed/T4487xS9DG/640/480"
- ],
- "featured": 0,
- "position": 52
- },
- {
- "id": 53,
- "name": "Artesanal Madera Ordenador",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€29",
- "specialPrice": "€34",
- "isNew": false,
- "slug": "978-0-7736-7108-9",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/B6rfb/640/480",
- "https://picsum.photos/seed/k3JYiBQRx/640/480",
- "https://picsum.photos/seed/gnntwG1BX/640/480",
- "https://picsum.photos/seed/A9Wd3/640/480",
- "https://picsum.photos/seed/bptxrVNRiz/640/480",
- "https://picsum.photos/seed/HbLRfW/640/480"
- ],
- "featured": 1
- },
- {
- "id": 54,
- "name": "Pequeño Metal Ordenador",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€51",
- "specialPrice": "€32",
- "isNew": true,
- "slug": "978-0-675-04894-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/DD2MtGS8/640/480",
- "https://picsum.photos/seed/vERlc/640/480",
- "https://picsum.photos/seed/ljRUIx1/640/480",
- "https://picsum.photos/seed/1lYn2Xcr1g/640/480",
- "https://picsum.photos/seed/od7uZ0Hy/640/480",
- "https://picsum.photos/seed/eotkUn/640/480"
- ],
- "featured": 1,
- "position": 54
- },
- {
- "id": 55,
- "name": "Sabroso Ladrillo Pizza",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€104",
- "specialPrice": "€50",
- "isNew": false,
- "slug": "978-0-7105-6291-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/9N7ink7krJ/640/480",
- "https://picsum.photos/seed/7s4aYaneZg/640/480",
- "https://picsum.photos/seed/2nhD8DhqKq/640/480"
- ],
- "featured": 0,
- "position": 55,
- "discount": "5"
- },
- {
- "id": 56,
- "name": "Artesanal Metal Toallas",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€117",
- "specialPrice": "€53",
- "isNew": false,
- "slug": "978-0-18-757443-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/wNA60wdyxq/640/480",
- "https://picsum.photos/seed/86jeF/640/480",
- "https://picsum.photos/seed/2Ix8CKO0/640/480",
- "https://picsum.photos/seed/08QHc5F/640/480"
- ],
- "featured": 1
- },
- {
- "id": 57,
- "name": "Ergonómico Acero Pescado",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€176",
- "specialPrice": "€58",
- "isNew": true,
- "slug": "978-0-538-86677-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/vFAtUVdhTQ/640/480",
- "https://picsum.photos/seed/27vewh/640/480"
- ],
- "featured": 0
- },
- {
- "id": 58,
- "name": "Inteligente Granito Guantes",
- "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
- "price": "€151",
- "specialPrice": "€33",
- "isNew": false,
- "slug": "978-1-61481-833-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/4MsN1O/640/480",
- "https://picsum.photos/seed/UdYQ9p/640/480"
- ],
- "featured": 1
- },
- {
- "id": 59,
- "name": "Ergonómico Algodón Pizza",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€87",
- "specialPrice": "€45",
- "isNew": false,
- "slug": "978-1-716-77358-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/YXrh4TJhn/640/480",
- "https://picsum.photos/seed/qJ3IS/640/480",
- "https://picsum.photos/seed/vZTLJBiSs/640/480",
- "https://picsum.photos/seed/yWwpqd9uRR/640/480",
- "https://picsum.photos/seed/1oPusQ9Q3/640/480",
- "https://picsum.photos/seed/Q6kSK6/640/480"
- ],
- "featured": 0,
- "position": 59
- },
- {
- "id": 60,
- "name": "Sorprendente Acero Salchichas",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€59",
- "specialPrice": "€60",
- "isNew": false,
- "slug": "978-0-7694-2909-0",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/98Nx8Mi/640/480",
- "https://picsum.photos/seed/BwjmGy6VB/640/480"
- ],
- "featured": 0,
- "discount": "6"
- },
- {
- "id": 61,
- "name": "Increible Hormigon Pollo",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€57",
- "specialPrice": "€50",
- "isNew": true,
- "slug": "978-0-619-91892-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/kxRaIrj5/640/480",
- "https://picsum.photos/seed/QAIRpl/640/480"
- ],
- "featured": 1,
- "position": 61,
- "discount": "5"
- },
- {
- "id": 62,
- "name": "Guapa Plástico Pizza",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€194",
- "specialPrice": "€33",
- "isNew": false,
- "slug": "978-1-377-08792-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/t70NVE/640/480",
- "https://picsum.photos/seed/WCDGPADT7M/640/480"
- ],
- "featured": 0
- },
- {
- "id": 63,
- "name": "Guapo Plástico Patatas fritas",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€140",
- "specialPrice": "€31",
- "isNew": false,
- "slug": "978-0-7734-2463-0",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/ibhRMBMJ/640/480",
- "https://picsum.photos/seed/7fNck/640/480",
- "https://picsum.photos/seed/esXzS36A2/640/480",
- "https://picsum.photos/seed/Zyx0R/640/480",
- "https://picsum.photos/seed/gyUEYTFw/640/480"
- ],
- "featured": 1
- },
- {
- "id": 64,
- "name": "Genérico Algodón Coche",
- "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016",
- "price": "€137",
- "specialPrice": "€47",
- "isNew": false,
- "slug": "978-1-77867-791-5",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/AsMDYHf3/640/480",
- "https://picsum.photos/seed/tCkf3/640/480",
- "https://picsum.photos/seed/8ZnlYxm/640/480",
- "https://picsum.photos/seed/a4eViqq8y0/640/480",
- "https://picsum.photos/seed/VowNo/640/480"
- ],
- "featured": 1,
- "position": 64
- },
- {
- "id": 65,
- "name": "Inteligente Hormigon Atún",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€39",
- "specialPrice": "€44",
- "isNew": true,
- "slug": "978-1-926748-33-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/vzOKt7Ss/640/480",
- "https://picsum.photos/seed/cvHL8wo/640/480",
- "https://picsum.photos/seed/SSNTk/640/480",
- "https://picsum.photos/seed/DXRIbXn/640/480",
- "https://picsum.photos/seed/eBegt2U/640/480",
- "https://picsum.photos/seed/WTaw713G/640/480"
- ],
- "featured": 0
- },
- {
- "id": 66,
- "name": "Inteligente Metal Pizza",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€177",
- "specialPrice": "€31",
- "isNew": false,
- "slug": "978-1-229-86164-1",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/6EIye/640/480",
- "https://picsum.photos/seed/mKRPxDHnqH/640/480"
- ],
- "featured": 1
- },
- {
- "id": 67,
- "name": "Fantástico Algodón Pizza",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€25",
- "specialPrice": "€36",
- "isNew": false,
- "slug": "978-0-299-87026-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/iGfs1/640/480",
- "https://picsum.photos/seed/mxA3uTj/640/480",
- "https://picsum.photos/seed/f3Y9Y/640/480"
- ],
- "featured": 0,
- "position": 67
- },
- {
- "id": 68,
- "name": "Práctico Plástico Mesa",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€28",
- "specialPrice": "€32",
- "isNew": true,
- "slug": "978-0-8453-9085-6",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/pZHuRWv1V/640/480",
- "https://picsum.photos/seed/P22AtCz7/640/480",
- "https://picsum.photos/seed/wKO6C6VO/640/480",
- "https://picsum.photos/seed/z86STX25O/640/480"
- ],
- "featured": 1,
- "position": 68
- },
- {
- "id": 69,
- "name": "Refinado Granito Queso",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€173",
- "specialPrice": "€45",
- "isNew": true,
- "slug": "978-0-19-050936-1",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/CQ84sbVM/640/480",
- "https://picsum.photos/seed/XOEr59/640/480"
- ],
- "featured": 1,
- "discount": "15"
- },
- {
- "id": 70,
- "name": "Hecho a mano Granito Pescado",
- "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
- "price": "€57",
- "specialPrice": "€40",
- "isNew": false,
- "slug": "978-0-533-86437-9",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/oUdfbU/640/480",
- "https://picsum.photos/seed/53aGSoCV/640/480",
- "https://picsum.photos/seed/TAj3bbm/640/480"
- ],
- "featured": 1,
- "discount": "7"
- },
- {
- "id": 71,
- "name": "Práctico Madera Zapatos",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€26",
- "specialPrice": "€34",
- "isNew": false,
- "slug": "978-1-959637-80-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/n5HnJveOa/640/480",
- "https://picsum.photos/seed/74riXk3/640/480",
- "https://picsum.photos/seed/qVXXnHpTSJ/640/480",
- "https://picsum.photos/seed/Pka9uIQyEL/640/480",
- "https://picsum.photos/seed/LcQaJud/640/480"
- ],
- "featured": 1
- },
- {
- "id": 72,
- "name": "Guapo Granito Pelota",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€116",
- "specialPrice": "€42",
- "isNew": true,
- "slug": "978-1-57149-992-9",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/jEUBH4QZke/640/480",
- "https://picsum.photos/seed/erI72LXH/640/480",
- "https://picsum.photos/seed/23TyWqZQ/640/480",
- "https://picsum.photos/seed/b4GfqzlUKx/640/480"
- ],
- "featured": 0,
- "discount": "15"
- },
- {
- "id": 73,
- "name": "Hecho a mano Ladrillo Ordenador",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€53",
- "specialPrice": "€24",
- "isNew": true,
- "slug": "978-1-249-08425-9",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/mBopp/640/480",
- "https://picsum.photos/seed/kFK1V/640/480"
- ],
- "featured": 1
- },
- {
- "id": 74,
- "name": "Genérico Algodón Atún",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€157",
- "specialPrice": "€23",
- "isNew": true,
- "slug": "978-0-447-47968-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/cLwQaL/640/480",
- "https://picsum.photos/seed/cgRbBDr2K/640/480",
- "https://picsum.photos/seed/e2AkbcrrbQ/640/480",
- "https://picsum.photos/seed/WHu0N5/640/480",
- "https://picsum.photos/seed/NY7Yv/640/480"
- ],
- "featured": 0
- },
- {
- "id": 75,
- "name": "Guapa Plástico Pizza",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€109",
- "specialPrice": "€30",
- "isNew": false,
- "slug": "978-0-927854-44-3",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/SKOcqLfbL/640/480",
- "https://picsum.photos/seed/3wqPKL9P/640/480",
- "https://picsum.photos/seed/A0UPk/640/480"
- ],
- "featured": 0,
- "position": 75,
- "discount": "10"
- },
- {
- "id": 76,
- "name": "Ergonómico Metal Ordenador",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€81",
- "specialPrice": "€40",
- "isNew": true,
- "slug": "978-0-448-94113-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/aVQJJ/640/480",
- "https://picsum.photos/seed/AT7nQkM45Z/640/480",
- "https://picsum.photos/seed/FBgbD60/640/480",
- "https://picsum.photos/seed/CV2zoRUDiA/640/480",
- "https://picsum.photos/seed/TBWP8RW/640/480"
- ],
- "featured": 1
- },
- {
- "id": 77,
- "name": "Increible Acero Mesa",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€148",
- "specialPrice": "€25",
- "isNew": true,
- "slug": "978-0-251-50209-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/4PCEsZUNV8/640/480",
- "https://picsum.photos/seed/BLIbPNoqbc/640/480",
- "https://picsum.photos/seed/nhtFOy0L/640/480",
- "https://picsum.photos/seed/uIOse8YZV/640/480",
- "https://picsum.photos/seed/alDhaxN/640/480"
- ],
- "featured": 1,
- "position": 77,
- "discount": "10"
- },
- {
- "id": 78,
- "name": "Sorprendente Madera Bicicleta",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€93",
- "specialPrice": "€59",
- "isNew": true,
- "slug": "978-0-346-58774-8",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/zJ0aWOHm/640/480",
- "https://picsum.photos/seed/xZ3Cb/640/480"
- ],
- "featured": 0,
- "position": 78
- },
- {
- "id": 79,
- "name": "Sorprendente Metal Atún",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€126",
- "specialPrice": "€48",
- "isNew": false,
- "slug": "978-0-7900-3519-2",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/DuYVyZ4V/640/480",
- "https://picsum.photos/seed/C1MqeUSve/640/480",
- "https://picsum.photos/seed/HSxWo4kxAH/640/480",
- "https://picsum.photos/seed/oyfF2q/640/480"
- ],
- "featured": 0,
- "discount": "5"
- },
- {
- "id": 80,
- "name": "Rústico Granito Ensalada",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€192",
- "specialPrice": "€44",
- "isNew": false,
- "slug": "978-0-7068-0264-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/TDHd4l5/640/480",
- "https://picsum.photos/seed/AlODLgF/640/480",
- "https://picsum.photos/seed/xIqLgU/640/480",
- "https://picsum.photos/seed/vfsbUDfC/640/480"
- ],
- "featured": 0,
- "position": 80,
- "discount": "12"
- },
- {
- "id": 81,
- "name": "Refinado Hormigon Silla",
- "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality",
- "price": "€124",
- "specialPrice": "€22",
- "isNew": true,
- "slug": "978-1-82028-222-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/7rQSVsud9y/640/480",
- "https://picsum.photos/seed/v503sK/640/480",
- "https://picsum.photos/seed/9Yzs3A3x/640/480",
- "https://picsum.photos/seed/JeLrcZtW/640/480"
- ],
- "featured": 1,
- "position": 81,
- "discount": "9"
- },
- {
- "id": 82,
- "name": "Artesanal Madera Pelota",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€63",
- "specialPrice": "€33",
- "isNew": false,
- "slug": "978-0-8045-0032-6",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/apkynsM/640/480",
- "https://picsum.photos/seed/x8TxsLqWq/640/480",
- "https://picsum.photos/seed/QCvTJm2Vw/640/480",
- "https://picsum.photos/seed/Lc2uPnFVd/640/480",
- "https://picsum.photos/seed/ZzPt5jVh/640/480"
- ],
- "featured": 0
- },
- {
- "id": 83,
- "name": "Ergonómico Algodón Bacon",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€64",
- "specialPrice": "€46",
- "isNew": false,
- "slug": "978-0-06-018240-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/zY0e2vmO9O/640/480",
- "https://picsum.photos/seed/wSoCzSaP/640/480",
- "https://picsum.photos/seed/hx6X2MM/640/480",
- "https://picsum.photos/seed/RKj2y/640/480"
- ],
- "featured": 1,
- "position": 83,
- "discount": "15"
- },
- {
- "id": 84,
- "name": "Rústico Hormigon Bicicleta",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€150",
- "specialPrice": "€24",
- "isNew": true,
- "slug": "978-0-503-25299-1",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/7GgcI3O/640/480",
- "https://picsum.photos/seed/QJd06EZD/640/480",
- "https://picsum.photos/seed/UUZtuR0/640/480",
- "https://picsum.photos/seed/uNnFeax/640/480"
- ],
- "featured": 0,
- "discount": "11"
- },
- {
- "id": 85,
- "name": "Práctico Acero Ensalada",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€140",
- "specialPrice": "€59",
- "isNew": true,
- "slug": "978-1-83978-799-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/gghO9FeS/640/480",
- "https://picsum.photos/seed/spn5I6R/640/480",
- "https://picsum.photos/seed/zgqFt9/640/480",
- "https://picsum.photos/seed/MA9RK/640/480"
- ],
- "featured": 1
- },
- {
- "id": 86,
- "name": "Hecho a mano Plástico Teclado",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€184",
- "specialPrice": "€35",
- "isNew": true,
- "slug": "978-0-609-43686-8",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/JbXS1/640/480",
- "https://picsum.photos/seed/0nBtkn8/640/480",
- "https://picsum.photos/seed/JNyR9bbz/640/480",
- "https://picsum.photos/seed/SjGh0AlcFr/640/480",
- "https://picsum.photos/seed/KDUniZvZQ/640/480"
- ],
- "featured": 0,
- "discount": "13"
- },
- {
- "id": 87,
- "name": "Ergonómico Metal Salchichas",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€71",
- "specialPrice": "€45",
- "isNew": false,
- "slug": "978-0-527-38222-3",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/kqMq4IbI/640/480",
- "https://picsum.photos/seed/V5kJzsX4Qq/640/480"
- ],
- "featured": 0,
- "position": 87
- },
- {
- "id": 88,
- "name": "Artesanal Acero Toallas",
- "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart",
- "price": "€20",
- "specialPrice": "€36",
- "isNew": false,
- "slug": "978-1-106-45123-1",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/ZAUKGmZoH8/640/480",
- "https://picsum.photos/seed/b4E2a/640/480"
- ],
- "featured": 1,
- "position": 88
- },
- {
- "id": 89,
- "name": "Inteligente Plástico Ensalada",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€186",
- "specialPrice": "€23",
- "isNew": true,
- "slug": "978-0-09-262953-2",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/yi0wdYVFd/640/480",
- "https://picsum.photos/seed/N6x8TCI37/640/480",
- "https://picsum.photos/seed/LdnWmnU/640/480",
- "https://picsum.photos/seed/ZvJVU7yIs0/640/480",
- "https://picsum.photos/seed/CuJshkx/640/480",
- "https://picsum.photos/seed/K4BYL/640/480"
- ],
- "featured": 0,
- "position": 89
- },
- {
- "id": 90,
- "name": "Ergonómico Ladrillo Guantes",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€144",
- "specialPrice": "€26",
- "isNew": false,
- "slug": "978-0-08-218659-5",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/r3f9zy6s/640/480",
- "https://picsum.photos/seed/geSHZ/640/480",
- "https://picsum.photos/seed/0BzdL5/640/480",
- "https://picsum.photos/seed/wmspiYqEs/640/480"
- ],
- "featured": 1,
- "position": 90,
- "discount": "5"
- },
- {
- "id": 91,
- "name": "Sorprendente Madera Zapatos",
- "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support",
- "price": "€146",
- "specialPrice": "€33",
- "isNew": false,
- "slug": "978-1-0925-8381-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/uFgCLHRlu/640/480",
- "https://picsum.photos/seed/09IFrW/640/480",
- "https://picsum.photos/seed/9lYlf4bME/640/480",
- "https://picsum.photos/seed/dXedo8jO/640/480",
- "https://picsum.photos/seed/1mnxTIVfpl/640/480"
- ],
- "featured": 0,
- "discount": "12"
- },
- {
- "id": 92,
- "name": "Increible Hormigon Pizza",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€123",
- "specialPrice": "€20",
- "isNew": false,
- "slug": "978-1-6760-4609-7",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/q5RDIKF/640/480",
- "https://picsum.photos/seed/gftwcvjbrE/640/480"
- ],
- "featured": 1,
- "position": 92
- },
- {
- "id": 93,
- "name": "Genérico Algodón Teclado",
- "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design",
- "price": "€119",
- "specialPrice": "€38",
- "isNew": false,
- "slug": "978-1-4015-3538-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/Gc2nBOYHS/640/480",
- "https://picsum.photos/seed/7MZtu75Zc/640/480",
- "https://picsum.photos/seed/SDqw9obku/640/480",
- "https://picsum.photos/seed/xAdLYxsae/640/480",
- "https://picsum.photos/seed/epyeMo/640/480",
- "https://picsum.photos/seed/g2Ub09a8/640/480"
- ],
- "featured": 0,
- "discount": "5"
- },
- {
- "id": 94,
- "name": "Artesanal Metal Bacon",
- "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit",
- "price": "€89",
- "specialPrice": "€47",
- "isNew": true,
- "slug": "978-1-043-52433-3",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/lSX3wnBP/640/480",
- "https://picsum.photos/seed/LUOu8/640/480"
- ],
- "featured": 1,
- "position": 94,
- "discount": "11"
- },
- {
- "id": 95,
- "name": "Genérico Metal Sopa",
- "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals",
- "price": "€110",
- "specialPrice": "€51",
- "isNew": false,
- "slug": "978-1-006-62105-5",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/JD4XtJf/640/480",
- "https://picsum.photos/seed/KE0iL/640/480",
- "https://picsum.photos/seed/x0wxQjAyB/640/480",
- "https://picsum.photos/seed/3uWlXw9Oa9/640/480",
- "https://picsum.photos/seed/NSuo2fRTJ/640/480"
- ],
- "featured": 0,
- "position": 95,
- "discount": "6"
- },
- {
- "id": 96,
- "name": "Hecho a mano Ladrillo Zapatos",
- "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive",
- "price": "€76",
- "specialPrice": "€47",
- "isNew": true,
- "slug": "978-0-553-62311-6",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/tY5Oe7H6T/640/480",
- "https://picsum.photos/seed/IFg1o/640/480",
- "https://picsum.photos/seed/b3WiU7yw/640/480"
- ],
- "featured": 0
- },
- {
- "id": 97,
- "name": "Guapo Granito Toallas",
- "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles",
- "price": "€178",
- "specialPrice": "€31",
- "isNew": false,
- "slug": "978-0-270-99429-2",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/SKaIE/640/480",
- "https://picsum.photos/seed/U4Dl1e/640/480"
- ],
- "featured": 1,
- "position": 97
- },
- {
- "id": 98,
- "name": "Ergonómico Ladrillo Pizza",
- "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J",
- "price": "€32",
- "specialPrice": "€58",
- "isNew": false,
- "slug": "978-0-316-30967-7",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/I55ldG/640/480",
- "https://picsum.photos/seed/BLzJ5HyqJf/640/480",
- "https://picsum.photos/seed/df7KM/640/480",
- "https://picsum.photos/seed/wdjnNMXiAS/640/480",
- "https://picsum.photos/seed/zVNn3S/640/480"
- ],
- "featured": 0,
- "position": 98
- },
- {
- "id": 99,
- "name": "Sabroso Metal Ensalada",
- "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients",
- "price": "€188",
- "specialPrice": "€59",
- "isNew": true,
- "slug": "978-0-212-16286-4",
- "category": 2,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/V8MtVycBt/640/480",
- "https://picsum.photos/seed/Tu33LX/640/480",
- "https://picsum.photos/seed/uGXR6B5VgF/640/480"
- ],
- "featured": 0,
- "discount": "11"
- },
- {
- "id": 100,
- "name": "Sorprendente Ladrillo Pizza",
- "description": "The Football Is Good For Training And Recreational Purposes",
- "price": "€20",
- "specialPrice": "€53",
- "isNew": true,
- "slug": "978-1-9793-4598-9",
- "category": 1,
- "postalCode": "12345",
- "dateExpired": "30/01/2024",
- "images": [
- "https://picsum.photos/seed/Q5rFD/640/480",
- "https://picsum.photos/seed/gObhsXJgT/640/480",
- "https://picsum.photos/seed/eD2kNo/640/480"
- ],
- "featured": 0,
- "position": 100,
- "discount": "8"
- }
-]
diff --git a/api/controller/provinces/provinces.controller.js b/api/controller/provinces/provinces.controller.js
new file mode 100644
index 0000000..d4b6f00
--- /dev/null
+++ b/api/controller/provinces/provinces.controller.js
@@ -0,0 +1,23 @@
+const db = require("../../db/db");
+
+class ProvincesController {
+ async findAll(req, res) {
+ const params = req.query;
+ const tmpProvinces = await db.getProvinces();
+
+ let provinces = [];
+
+ tmpProvinces.forEach(element => {
+ provinces = [...provinces,{
+ code: element.id,
+ name: element.name
+ }];
+ })
+
+ return res.status(200).send({
+ data: provinces
+ })
+ }
+}
+
+module.exports = new ProvincesController();
diff --git a/api/db/db.js b/api/db/db.js
index 5801e03..11e1c38 100644
--- a/api/db/db.js
+++ b/api/db/db.js
@@ -12,17 +12,47 @@ async function connect() {
const mysql = require("mysql2/promise");
const connection = await mysql.createConnection("mysql://" + user + ":" + password + "@" + host + ":" + port + "/" + database + "");
- console.log("Connected to MySQL!");
global.connection = connection;
return connection;
}
+//Procedure for get products
async function getProducts(dateExpired, postalCode) {
- console.log("Query in table MySQL!");
const conn = await connect();
const [rows] = await conn.query(`CALL catalogue_get("${dateExpired}", "${postalCode}")`);
return rows;
}
+//Procedure for create transactions, do not carry out any manipulation at the bank
+async function orderData_put(jsonOrderData) {
+ const conn = await connect();
+ console.log(jsonOrderData);
+ const [rows] = await conn.query(`CALL orderData_put(?)`, [jsonOrderData], (err, results) => {
+ if (err) {
+ console.error(err);
+ } else {
+ console.log('Result:', results);
+ }
+ });
+ return rows;
+}
-module.exports = { getProducts }
\ No newline at end of file
+//Procedure for get transactions, do not carry out any manipulation at the bank
+async function orderData_get() {
+ const conn = await connect();
+ const [rows] = await conn.query(`CALL orderData_get()`);
+ return rows;
+}
+
+
+async function getProvinces() {
+ const conn = await connect();
+ const [rows] = await conn.query(`SELECT p.id, p.name, c.code, c.country
+ FROM vn.province p
+ JOIN vn.country c ON c.id = p.countryFk
+ WHERE c.country IN('España', 'Francia', 'Portugal')`);
+ return rows;
+}
+
+
+module.exports = { getProducts, orderData_get, orderData_put, getProvinces }
\ No newline at end of file
diff --git a/api/index.js b/api/index.js
index 40bcdd9..6ca4d95 100644
--- a/api/index.js
+++ b/api/index.js
@@ -1,7 +1,16 @@
const cors = require('cors');
const express = require('express');
const path = require('path');
-const productController = require('./controller/product.controller');
+const paypal = require('paypal-rest-sdk');
+const productController = require('./controller/product/product.controller');
+const paymengtController = require('./controller/payment/payment.controller');
+const provincesController = require('./controller/provinces/provinces.controller');
+
+paypal.configure({
+ 'mode': 'sandbox',
+ 'client_id': process.env.CLIENT_ID,
+ 'client_secret': process.env.SECRET_KEY
+});
const app = express();
const port = 9999;
@@ -11,8 +20,16 @@ const corsOptions = {
origin: allowedOrigins,
optionsSuccessStatus: 200,
};
+
app.use(cors(corsOptions));
+app.use(express.json());
+app.use(
+ express.urlencoded({
+ extended: true,
+ }),
+);
+
app.get('/', (req, res) => {
const indexPath = path.join(__dirname, './', 'index.html');
res.sendFile(indexPath);
@@ -21,6 +38,10 @@ app.get('/', (req, res) => {
//Products
app.get('/api/products', productController.findAll);
app.get('/api/products/:id', productController.findById);
+app.post('/api/payment/', paymengtController.Create)
+app.post('/api/payment/success', paymengtController.Success)
+app.get('/api/payment/cancel', paymengtController.Cancel)
+app.get('/api/provinces', provincesController.findAll)
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
diff --git a/api/package.json b/api/package.json
index 879cd23..447daea 100644
--- a/api/package.json
+++ b/api/package.json
@@ -8,8 +8,5 @@
},
"keywords": [],
"author": "",
- "license": "ISC",
- "dependencies": {
- "express": "^4.18.2"
- }
+ "license": "ISC"
}
diff --git a/package-lock.json b/package-lock.json
index b22f23e..93b9c6c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,9 @@
"@vueuse/core": "^10.7.0",
"axios": "^1.2.1",
"express": "^4.18.2",
+ "fs": "^0.0.1-security",
"mysql2": "^3.7.0",
+ "paypal-rest-sdk": "^1.8.1",
"pinia": "^2.0.11",
"quasar": "^2.6.0",
"vee-validate": "^4.12.2",
@@ -54,9 +56,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
- "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -133,9 +135,9 @@
}
},
"node_modules/@faker-js/faker": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz",
- "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.4.0.tgz",
+ "integrity": "sha512-htW87352wzUCdX1jyUQocUcmAaFqcR/w082EC8iP/gtkF0K+aKcBp0hR5Arb7dzR8tQ1TrhE9DNa5EbJELm84w==",
"dev": true,
"funding": [
{
@@ -149,13 +151,13 @@
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.13",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
- "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -176,9 +178,9 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
- "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
"dev": true
},
"node_modules/@intlify/bundle-utils": {
@@ -206,12 +208,12 @@
}
},
"node_modules/@intlify/core-base": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.0.tgz",
- "integrity": "sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.1.tgz",
+ "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==",
"dependencies": {
- "@intlify/message-compiler": "9.9.0",
- "@intlify/shared": "9.9.0"
+ "@intlify/message-compiler": "9.9.1",
+ "@intlify/shared": "9.9.1"
},
"engines": {
"node": ">= 16"
@@ -221,11 +223,11 @@
}
},
"node_modules/@intlify/message-compiler": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.0.tgz",
- "integrity": "sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.1.tgz",
+ "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==",
"dependencies": {
- "@intlify/shared": "9.9.0",
+ "@intlify/shared": "9.9.1",
"source-map-js": "^1.0.2"
},
"engines": {
@@ -236,9 +238,9 @@
}
},
"node_modules/@intlify/shared": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.0.tgz",
- "integrity": "sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.1.tgz",
+ "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==",
"engines": {
"node": ">= 16"
},
@@ -336,9 +338,9 @@
}
},
"node_modules/@quasar/app-vite": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.7.1.tgz",
- "integrity": "sha512-cs3ix7w8f7884JiTp3EW6auZ9R+Fg4qoPxEZ7VRGOrSsUg5oQtR/i91jeQk4Z96J/JUOqtcKqdqbzN4fzaFyIg==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.7.3.tgz",
+ "integrity": "sha512-pnDInCFP9M1d7lJzS8UkiFq8bGWdekLz8Gu+NLI9UAxruIM9QVlSD4hUmWptTQXaVEvYlDnqfW3LOr57B8eVtw==",
"dev": true,
"dependencies": {
"@quasar/render-ssr-error": "^1.0.3",
@@ -579,9 +581,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.41",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz",
- "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==",
+ "version": "4.17.42",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz",
+ "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -600,9 +602,9 @@
}
},
"node_modules/@types/filewriter": {
- "version": "0.0.32",
- "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.32.tgz",
- "integrity": "sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==",
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz",
+ "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==",
"dev": true
},
"node_modules/@types/har-format": {
@@ -624,9 +626,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.10.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.8.tgz",
- "integrity": "sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==",
+ "version": "20.11.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.13.tgz",
+ "integrity": "sha512-5G4zQwdiQBSWYTDAH1ctw2eidqdhMJaNsiIDKHFr55ihz5Trl2qqR8fdrT732yPBho5gkNxXm67OxWFBqX9aPg==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -677,12 +679,12 @@
"dev": true
},
"node_modules/@vee-validate/zod": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/@vee-validate/zod/-/zod-4.12.4.tgz",
- "integrity": "sha512-iNFhkBfGkre2b+eBXgBpNlNVStxDrI59sJUbzBr01EjyTkFOUgc/0wPJrhY/kBp+0pnGzNi04jklJaKfNK2ibg==",
+ "version": "4.12.5",
+ "resolved": "https://registry.npmjs.org/@vee-validate/zod/-/zod-4.12.5.tgz",
+ "integrity": "sha512-hUjvXaa4HHvlZeosucViIDOUikQmyKaXXuL6P8LR1ETOUrBV6ntTsafJGvRYtwhXosoLYuolUD6Km737okK4Gg==",
"dependencies": {
"type-fest": "^4.8.3",
- "vee-validate": "4.12.4",
+ "vee-validate": "4.12.5",
"zod": "^3.22.4"
}
},
@@ -709,49 +711,49 @@
}
},
"node_modules/@vue/compiler-core": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.7.tgz",
- "integrity": "sha512-hhCaE3pTMrlIJK7M/o3Xf7HV8+JoNTGOQ/coWS+V+pH6QFFyqtoXqQzpqsNp7UK17xYKua/MBiKj4e1vgZOBYw==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz",
+ "integrity": "sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==",
"dependencies": {
"@babel/parser": "^7.23.6",
- "@vue/shared": "3.4.7",
+ "@vue/shared": "3.4.15",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.7.tgz",
- "integrity": "sha512-qDKBAIurCTub4n/6jDYkXwgsFuriqqmmLrIq1N2QDfYJA/mwiwvxi09OGn28g+uDdERX9NaKDLji0oTjE3sScg==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz",
+ "integrity": "sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==",
"dependencies": {
- "@vue/compiler-core": "3.4.7",
- "@vue/shared": "3.4.7"
+ "@vue/compiler-core": "3.4.15",
+ "@vue/shared": "3.4.15"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.7.tgz",
- "integrity": "sha512-Gec6CLkReVswDYjQFq79O5rktri4R7TsD/VPCiUoJw40JhNNxaNJJa8mrQrWoJluW4ETy6QN0NUyC/JO77OCOw==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz",
+ "integrity": "sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==",
"dependencies": {
"@babel/parser": "^7.23.6",
- "@vue/compiler-core": "3.4.7",
- "@vue/compiler-dom": "3.4.7",
- "@vue/compiler-ssr": "3.4.7",
- "@vue/shared": "3.4.7",
+ "@vue/compiler-core": "3.4.15",
+ "@vue/compiler-dom": "3.4.15",
+ "@vue/compiler-ssr": "3.4.15",
+ "@vue/shared": "3.4.15",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5",
- "postcss": "^8.4.32",
+ "postcss": "^8.4.33",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.7.tgz",
- "integrity": "sha512-PvYeSOvnCkST5mGS0TLwEn5w+4GavtEn6adcq8AspbHaIr+mId5hp7cG3ASy3iy8b+LuXEG2/QaV/nj5BQ/Aww==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz",
+ "integrity": "sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==",
"dependencies": {
- "@vue/compiler-dom": "3.4.7",
- "@vue/shared": "3.4.7"
+ "@vue/compiler-dom": "3.4.15",
+ "@vue/shared": "3.4.15"
}
},
"node_modules/@vue/devtools-api": {
@@ -760,57 +762,57 @@
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
},
"node_modules/@vue/reactivity": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.7.tgz",
- "integrity": "sha512-F539DO0ogH0+L8F9Pnw7cjqibcmSOh5UTk16u5f4MKQ8fraqepI9zdh+sozPX6VmEHOcjo8qw3Or9ZcFFw4SZA==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz",
+ "integrity": "sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==",
"dependencies": {
- "@vue/shared": "3.4.7"
+ "@vue/shared": "3.4.15"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.7.tgz",
- "integrity": "sha512-QMMsWRQaD3BpGyjjChthpl4Mji4Fjx1qfdufsXlDkKU3HV+hWNor2z+29F+E1MmVcP0ZfRZUfqYgtsQoL7IGwQ==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz",
+ "integrity": "sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==",
"dependencies": {
- "@vue/reactivity": "3.4.7",
- "@vue/shared": "3.4.7"
+ "@vue/reactivity": "3.4.15",
+ "@vue/shared": "3.4.15"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.7.tgz",
- "integrity": "sha512-XwegyUY1rw8zxsX1Z36vwYcqo+uOgih5ti7y9vx+pPFhNdSQmN4LqK2RmSeAJG1oKV8NqSUmjpv92f/x6h0SeQ==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz",
+ "integrity": "sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==",
"dependencies": {
- "@vue/runtime-core": "3.4.7",
- "@vue/shared": "3.4.7",
+ "@vue/runtime-core": "3.4.15",
+ "@vue/shared": "3.4.15",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.7.tgz",
- "integrity": "sha512-3bWnYLEkLLhkDWqvNk7IvbQD4UcxvFKxELBiOO2iG3m6AniFIsBWfHOO5tLVQnjdWkODu4rq0GipmfEenVAK5Q==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz",
+ "integrity": "sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==",
"dependencies": {
- "@vue/compiler-ssr": "3.4.7",
- "@vue/shared": "3.4.7"
+ "@vue/compiler-ssr": "3.4.15",
+ "@vue/shared": "3.4.15"
},
"peerDependencies": {
- "vue": "3.4.7"
+ "vue": "3.4.15"
}
},
"node_modules/@vue/shared": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.7.tgz",
- "integrity": "sha512-G+i4glX1dMJk88sbJEcQEGWRQnVm9eIY7CcQbO5dpdsD9SF8jka3Mr5OqZYGjczGN1+D6EUwdu6phcmcx9iuPA=="
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz",
+ "integrity": "sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g=="
},
"node_modules/@vueuse/core": {
- "version": "10.7.1",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.1.tgz",
- "integrity": "sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==",
+ "version": "10.7.2",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
+ "integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
"dependencies": {
"@types/web-bluetooth": "^0.0.20",
- "@vueuse/metadata": "10.7.1",
- "@vueuse/shared": "10.7.1",
+ "@vueuse/metadata": "10.7.2",
+ "@vueuse/shared": "10.7.2",
"vue-demi": ">=0.14.6"
},
"funding": {
@@ -843,17 +845,17 @@
}
},
"node_modules/@vueuse/metadata": {
- "version": "10.7.1",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.1.tgz",
- "integrity": "sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==",
+ "version": "10.7.2",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
+ "integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@vueuse/shared": {
- "version": "10.7.1",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.1.tgz",
- "integrity": "sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==",
+ "version": "10.7.2",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
+ "integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
"dependencies": {
"vue-demi": ">=0.14.6"
},
@@ -920,9 +922,9 @@
}
},
"node_modules/acorn-walk": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
- "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
"dev": true,
"engines": {
"node": ">=0.4.0"
@@ -1109,9 +1111,9 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/autoprefixer": {
- "version": "10.4.16",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
- "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
+ "version": "10.4.17",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
+ "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
"dev": true,
"funding": [
{
@@ -1128,9 +1130,9 @@
}
],
"dependencies": {
- "browserslist": "^4.21.10",
- "caniuse-lite": "^1.0.30001538",
- "fraction.js": "^4.3.6",
+ "browserslist": "^4.22.2",
+ "caniuse-lite": "^1.0.30001578",
+ "fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
"postcss-value-parser": "^4.2.0"
@@ -1146,9 +1148,9 @@
}
},
"node_modules/axios": {
- "version": "1.6.5",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
- "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
+ "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
"dependencies": {
"follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
@@ -1286,9 +1288,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.22.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
- "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
+ "version": "4.22.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
+ "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
"dev": true,
"funding": [
{
@@ -1305,8 +1307,8 @@
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001565",
- "electron-to-chromium": "^1.4.601",
+ "caniuse-lite": "^1.0.30001580",
+ "electron-to-chromium": "^1.4.648",
"node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13"
},
@@ -1345,7 +1347,6 @@
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
"engines": {
"node": "*"
}
@@ -1392,9 +1393,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001576",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz",
- "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==",
+ "version": "1.0.30001581",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz",
+ "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==",
"dev": true,
"funding": [
{
@@ -1948,9 +1949,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.625",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.625.tgz",
- "integrity": "sha512-DENMhh3MFgaPDoXWrVIqSPInQoLImywfCwrSmVl3cf9QHzoZSiutHwGaB/Ql3VkqcQV30rzgdM+BjKqBAJxo5Q==",
+ "version": "1.4.651",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.651.tgz",
+ "integrity": "sha512-jjks7Xx+4I7dslwsbaFocSwqBbGHQmuXBJUK9QBZTIrzPq3pzn6Uf2szFSP728FtLYE3ldiccmlkOM/zhGKCpA==",
"dev": true
},
"node_modules/elementtree": {
@@ -2461,9 +2462,9 @@
}
},
"node_modules/eslint-plugin-vue": {
- "version": "9.19.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
- "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
+ "version": "9.21.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.21.0.tgz",
+ "integrity": "sha512-B3NgZRtbi9kSl7M0x/PqhSMk7ULJUwWxQpTvM8b2Z6gNTORK0YSt5v1vzwY84oMs/2+3BWH5XmTepaQebcJwfA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
@@ -2471,7 +2472,7 @@
"nth-check": "^2.1.1",
"postcss-selector-parser": "^6.0.13",
"semver": "^7.5.4",
- "vue-eslint-parser": "^9.3.1",
+ "vue-eslint-parser": "^9.4.2",
"xml-name-validator": "^4.0.0"
},
"engines": {
@@ -2764,9 +2765,9 @@
"dev": true
},
"node_modules/fastq": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
- "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
+ "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
@@ -2896,9 +2897,9 @@
"dev": true
},
"node_modules/follow-redirects": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
- "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "version": "1.15.5",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
+ "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
"funding": [
{
"type": "individual",
@@ -2956,6 +2957,11 @@
"node": ">= 0.6"
}
},
+ "node_modules/fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
+ },
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -3256,9 +3262,9 @@
}
},
"node_modules/immutable": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
- "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
+ "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
"dev": true
},
"node_modules/import-fresh": {
@@ -3859,15 +3865,11 @@
"dev": true
},
"node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
+ "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
"engines": {
- "node": ">=10"
+ "node": ">=16.14"
}
},
"node_modules/magic-string": {
@@ -4076,9 +4078,9 @@
"dev": true
},
"node_modules/mysql2": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.7.0.tgz",
- "integrity": "sha512-c45jA3Jc1X8yJKzrWu1GpplBKGwv/wIV6ITZTlCSY7npF2YfJR+6nMP5e+NTQhUeJPSyOQAbGDCGEHbAl8HN9w==",
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.1.tgz",
+ "integrity": "sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ==",
"dependencies": {
"denque": "^2.1.0",
"generate-function": "^2.3.1",
@@ -4104,14 +4106,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/mysql2/node_modules/lru-cache": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
- "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
- "engines": {
- "node": ">=16.14"
- }
- },
"node_modules/named-placeholders": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
@@ -4431,6 +4425,26 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
+ "node_modules/paypal-rest-sdk": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/paypal-rest-sdk/-/paypal-rest-sdk-1.8.1.tgz",
+ "integrity": "sha512-Trj2GuPn10GqpICAxQh5wjxuDT7rq7DMOkvyatz05wI5xPGmqXN7UC0WfDSF9WSBs4YdcWZP0g+nY+sOdaFggw==",
+ "dependencies": {
+ "buffer-crc32": "^0.2.3",
+ "semver": "^5.0.3"
+ },
+ "engines": {
+ "node": ">= v0.6.0"
+ }
+ },
+ "node_modules/paypal-rest-sdk/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -4642,9 +4656,9 @@
}
},
"node_modules/quasar": {
- "version": "2.14.2",
- "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.14.2.tgz",
- "integrity": "sha512-f5KliWtM5BEuFsDU4yvuP+dlVIWZNrGu5VpWFsxzjpoykcP4B2HIOUiCl3mx2NCqERHd4Ts0aeioRkt9TTeExA==",
+ "version": "2.14.3",
+ "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.14.3.tgz",
+ "integrity": "sha512-7WzbtZxykLn2ic5oNpepZ2ZjDVpmxyVD4KC9rWe+Ia+4Er61svGr4jOuttN+Ok7IerLSCmKIRyjQMgasF60rFA==",
"engines": {
"node": ">= 10.18.1",
"npm": ">= 6.13.4",
@@ -4970,9 +4984,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sass": {
- "version": "1.69.7",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz",
- "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==",
+ "version": "1.70.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz",
+ "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -5013,6 +5027,18 @@
"integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
"dev": true
},
+ "node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -5089,14 +5115,15 @@
"dev": true
},
"node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
+ "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
"dependencies": {
"define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.2",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -5478,9 +5505,9 @@
}
},
"node_modules/type-fest": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz",
- "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
+ "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
"engines": {
"node": ">=16"
},
@@ -5622,9 +5649,9 @@
}
},
"node_modules/vee-validate": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.12.4.tgz",
- "integrity": "sha512-rqSjMdl0l/RiGKywKhkXttUKwDlQOoxTxe31uMQiMlwK4Hbtlvr3OcQvpREp/qPTARxNKudKWCUVW/mfzuxUVQ==",
+ "version": "4.12.5",
+ "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.12.5.tgz",
+ "integrity": "sha512-rvaDfLPSLwTk+mf016XWE4drB8yXzOsKXiKHTb9gNXNLTtQSZ0Ww26O0/xbIFQe+n3+u8Wv1Y8uO/aLDX4fxOg==",
"dependencies": {
"@vue/devtools-api": "^6.5.1",
"type-fest": "^4.8.3"
@@ -5634,9 +5661,9 @@
}
},
"node_modules/vite": {
- "version": "2.9.16",
- "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.16.tgz",
- "integrity": "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==",
+ "version": "2.9.17",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.17.tgz",
+ "integrity": "sha512-XxcRzra6d7xrKXH66jZUgb+srThoPu+TLJc06GifUyKq9JmjHkc1Numc8ra0h56rju2jfVWw3B3fs5l3OFMvUw==",
"dev": true,
"dependencies": {
"esbuild": "^0.14.27",
@@ -5671,15 +5698,15 @@
}
},
"node_modules/vue": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.7.tgz",
- "integrity": "sha512-4urmkWpudekq0CPNMO7p6mBGa9qmTXwJMO2r6CT4EzIJVG7WoSReiysiNb7OSi/WI113oX0Srn9Rz1k/DCXKFQ==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz",
+ "integrity": "sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==",
"dependencies": {
- "@vue/compiler-dom": "3.4.7",
- "@vue/compiler-sfc": "3.4.7",
- "@vue/runtime-dom": "3.4.7",
- "@vue/server-renderer": "3.4.7",
- "@vue/shared": "3.4.7"
+ "@vue/compiler-dom": "3.4.15",
+ "@vue/compiler-sfc": "3.4.15",
+ "@vue/runtime-dom": "3.4.15",
+ "@vue/server-renderer": "3.4.15",
+ "@vue/shared": "3.4.15"
},
"peerDependencies": {
"typescript": "*"
@@ -5696,9 +5723,9 @@
"integrity": "sha512-4fdRMXO6FHzmE7H4soAph6QmPg3sL/RiGdd+axuxuU07f02LNMns0jMM88fmt1bvSbN+2Wyd8raho6p6nXUzag=="
},
"node_modules/vue-eslint-parser": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.0.tgz",
- "integrity": "sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==",
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+ "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
"dev": true,
"dependencies": {
"debug": "^4.3.4",
@@ -5720,12 +5747,12 @@
}
},
"node_modules/vue-i18n": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.0.tgz",
- "integrity": "sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.1.tgz",
+ "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==",
"dependencies": {
- "@intlify/core-base": "9.9.0",
- "@intlify/shared": "9.9.0",
+ "@intlify/core-base": "9.9.1",
+ "@intlify/shared": "9.9.1",
"@vue/devtools-api": "^6.5.0"
},
"engines": {
diff --git a/package.json b/package.json
index 57dd062..ca30603 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "floranet",
"version": "0.0.1",
"description": "A floranet app",
- "productName": "Floranet App",
+ "productName": "Floranet",
"author": "user",
"private": true,
"scripts": {
@@ -22,7 +22,9 @@
"@vueuse/core": "^10.7.0",
"axios": "^1.2.1",
"express": "^4.18.2",
+ "fs": "^0.0.1-security",
"mysql2": "^3.7.0",
+ "paypal-rest-sdk": "^1.8.1",
"pinia": "^2.0.11",
"quasar": "^2.6.0",
"vee-validate": "^4.12.2",
diff --git a/src/components/@inputs/Calendar.vue b/src/components/@inputs/Calendar.vue
index a262502..2b91ff1 100644
--- a/src/components/@inputs/Calendar.vue
+++ b/src/components/@inputs/Calendar.vue
@@ -1,8 +1,10 @@
-
-
-
-
diff --git a/src/components/@inputs/Example/PostalCodeEx.vue b/src/components/@inputs/Example/PostalCodeEx.vue
deleted file mode 100644
index 2f99696..0000000
--- a/src/components/@inputs/Example/PostalCodeEx.vue
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
diff --git a/src/components/@inputs/PostalCode.vue b/src/components/@inputs/PostalCode.vue
index 25919ab..da50c2d 100644
--- a/src/components/@inputs/PostalCode.vue
+++ b/src/components/@inputs/PostalCode.vue
@@ -1,47 +1,13 @@
@@ -54,17 +20,6 @@ export default defineComponent({
¿Dónde?
-
diff --git a/src/components/@inputs/SortSelect.vue b/src/components/@inputs/SortSelect.vue
index 288b368..1fd470c 100644
--- a/src/components/@inputs/SortSelect.vue
+++ b/src/components/@inputs/SortSelect.vue
@@ -10,7 +10,7 @@ export default defineComponent({
const formStore = useFormStore();
const { sortProductFilters } = storeToRefs(formStore);
- async function handleOrder(order) {
+ function handleOrder(order) {
sortProductFilters.value.order = order;
sortProductFilters.value.isOpenOrderFilter = false;
}
diff --git a/src/components/header/HeaderPrimary.vue b/src/components/header/HeaderPrimary.vue
index 78f7d52..c37c121 100644
--- a/src/components/header/HeaderPrimary.vue
+++ b/src/components/header/HeaderPrimary.vue
@@ -29,9 +29,9 @@ export default defineComponent({
:class="isOpenNav && 'mobile-nav'"
>
diff --git a/src/components/header/HeaderSecondary.vue b/src/components/header/HeaderSecondary.vue
index 2a92039..a48753d 100644
--- a/src/components/header/HeaderSecondary.vue
+++ b/src/components/header/HeaderSecondary.vue
@@ -24,9 +24,9 @@ export default defineComponent({
-
+
PROCEDER AL PAGO
diff --git a/src/pages/CheckoutSuccessPage.vue b/src/pages/CheckoutSuccessPage.vue
new file mode 100644
index 0000000..b957a60
--- /dev/null
+++ b/src/pages/CheckoutSuccessPage.vue
@@ -0,0 +1,313 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Has efectuado la siguiente compra
+
+
+
+
+
+ -
+
+
+
+
+
+ {{ name }}
+
+
+
+
{{ price }}€
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/ExamplePage.vue b/src/pages/ExamplePage.vue
deleted file mode 100644
index 589893f..0000000
--- a/src/pages/ExamplePage.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam rerum omnis
- repellat. Harum ducimus nulla repellendus neque officia eveniet corporis
- odio sequi animi ut, non incidunt est error esse aperiam?
-
-
-
-
diff --git a/src/pages/HomePage.vue b/src/pages/HomePage.vue
index c9ad90c..cc95db4 100644
--- a/src/pages/HomePage.vue
+++ b/src/pages/HomePage.vue
@@ -62,8 +62,7 @@ export default defineComponent({
Diseños de ramos más vendidos
-
+
@@ -85,7 +84,7 @@ export default defineComponent({
-
+
Ver todos los diseños
@@ -97,8 +96,7 @@ export default defineComponent({
Nuestra selección de plantas para el verano
-
-
+
diff --git a/src/pages/ProductPage.vue b/src/pages/ProductPage.vue
index c1a8e79..a6db3dc 100644
--- a/src/pages/ProductPage.vue
+++ b/src/pages/ProductPage.vue
@@ -1,7 +1,7 @@
-
-
-
-
diff --git a/src/components/@inputs/Example/PostalCodeEx.vue b/src/components/@inputs/Example/PostalCodeEx.vue
deleted file mode 100644
index 2f99696..0000000
--- a/src/components/@inputs/Example/PostalCodeEx.vue
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
diff --git a/src/components/@inputs/PostalCode.vue b/src/components/@inputs/PostalCode.vue
index 25919ab..91b1743 100644
--- a/src/components/@inputs/PostalCode.vue
+++ b/src/components/@inputs/PostalCode.vue
@@ -1,47 +1,75 @@
@@ -51,20 +79,35 @@ export default defineComponent({
-
¿Dónde?
+
+ ¿Dónde?
+
+
-
-
+ @blur="onBlur"
+ />
+
+
diff --git a/src/components/@inputs/PriceRange.vue b/src/components/@inputs/PriceRange.vue
index c420066..37f9749 100644
--- a/src/components/@inputs/PriceRange.vue
+++ b/src/components/@inputs/PriceRange.vue
@@ -11,16 +11,36 @@ export default defineComponent({
default: 0,
required: true,
},
+ minDefault: {
+ type: Number,
+ default: 0,
+ required: true,
+ },
max: {
type: Number,
default: 200,
required: true,
},
+ maxDefault: {
+ type: Number,
+ default: 200,
+ required: true,
+ },
+ modelValue: {
+ type: String,
+ },
+ bindValue: {
+ type: Object,
+ },
},
- setup() {
+ setup(props, { emit }) {
const rangePriceStore = useRangePriceStore();
- return { rangePriceStore };
+ const updateModel = (value) => {
+ emit("update:modelValue", value);
+ };
+
+ return { rangePriceStore, updateModel };
},
});
@@ -29,7 +49,14 @@ export default defineComponent({
Precio
-
+
diff --git a/src/components/@inputs/SortSelect.vue b/src/components/@inputs/SortSelect.vue
index 288b368..1fd470c 100644
--- a/src/components/@inputs/SortSelect.vue
+++ b/src/components/@inputs/SortSelect.vue
@@ -10,7 +10,7 @@ export default defineComponent({
const formStore = useFormStore();
const { sortProductFilters } = storeToRefs(formStore);
- async function handleOrder(order) {
+ function handleOrder(order) {
sortProductFilters.value.order = order;
sortProductFilters.value.isOpenOrderFilter = false;
}
diff --git a/src/components/footer/FooterComponent.vue b/src/components/footer/FooterComponent.vue
index 50d07d4..f76f966 100644
--- a/src/components/footer/FooterComponent.vue
+++ b/src/components/footer/FooterComponent.vue
@@ -33,8 +33,7 @@ export default defineComponent({
@@ -44,7 +43,7 @@ export default defineComponent({
Plantas
-
Contacta
+
Contacta
@@ -174,6 +143,18 @@ export default defineComponent({
border-radius: 10px 0 0 10px;
overflow: hidden;
min-height: 96px;
+
+ /* & .carousel-content {
+ border-radius: 10px 10px 0 0;
+ overflow: hidden;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ flex: 2;
+ background-color: $white;
+ } */
+
& .carousel-content-item {
display: flex;
align-items: center;
diff --git a/src/components/sections/QuestionSection.vue b/src/components/sections/QuestionSection.vue
index 1f4a3d1..c81eb7b 100644
--- a/src/components/sections/QuestionSection.vue
+++ b/src/components/sections/QuestionSection.vue
@@ -23,9 +23,11 @@ export default defineComponent({
>
-
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore...
@@ -70,6 +72,16 @@ p {
& .question-content {
flex: 1 0 min(100%, 540px);
+
+ & .white-logo {
+ width: min(100%, 335px);
+ height: 75px;
+ @media only screen and (max-width: $med-xmd) {
+ width: min(100%, 175px);
+ height: 50px;
+ }
+ }
+
& .question-paragraph {
line-height: 35px;
font-size: $font-25;
diff --git a/src/components/stripe/StripeCheckoutComponent.vue b/src/components/stripe/StripeCheckoutComponent.vue
deleted file mode 100644
index fc26023..0000000
--- a/src/components/stripe/StripeCheckoutComponent.vue
+++ /dev/null
@@ -1,65 +0,0 @@
-
- (loading = v)"
- style="display: none"
- />
-
-
-
-
-
-
-
diff --git a/src/components/swiper/Swiper.vue b/src/components/swiper/Swiper.vue
index f138aa7..834b50e 100644
--- a/src/components/swiper/Swiper.vue
+++ b/src/components/swiper/Swiper.vue
@@ -20,8 +20,6 @@ export default defineComponent({
const nextSwiperBtn = ref(null);
onMounted(() => {
- // console.log('Montado!');
-
swiperContainer.value =
document.querySelector("swiper-container").shadowRoot;
prevSwiperBtn.value = swiperContainer.value.querySelector(
@@ -40,11 +38,9 @@ export default defineComponent({
return {
screenWidth,
handlePrev() {
- // console.log('Prev click');
prevSwiperBtn.value.click();
},
handleNext() {
- // console.log('Next click');
nextSwiperBtn.value.click();
},
};
diff --git a/src/components/ui/Card.vue b/src/components/ui/Card.vue
index 4c9e992..7b8d66e 100644
--- a/src/components/ui/Card.vue
+++ b/src/components/ui/Card.vue
@@ -33,10 +33,7 @@ export default defineComponent({
type: String,
default: "",
},
- isNew: {
- type: Boolean,
- default: false,
- },
+ isNew: String,
size: {
type: String,
default: "md-card",
@@ -54,10 +51,8 @@ export default defineComponent({
const isLoaded = ref(false);
const isError = ref(false);
const percent = +discount / 100;
- //const priceWithoutLetter = ~~price?.replaceAll("€", "");
const priceWithoutLetter = price;
const finalValue = ~~(priceWithoutLetter - priceWithoutLetter * percent);
- console.log(price);
const onLoad = () => {
isLoaded.value = true;
diff --git a/src/components/ui/Chat.vue b/src/components/ui/Chat.vue
index 3a77d6c..62a7e73 100644
--- a/src/components/ui/Chat.vue
+++ b/src/components/ui/Chat.vue
@@ -6,9 +6,7 @@ export default defineComponent({
name: "chat-component",
components: { IconChat },
setup() {
- const handleClick = () => {
- console.log("click");
- };
+ const handleClick = () => {};
return { handleClick };
},
});
diff --git a/src/components/ui/MobileNav.vue b/src/components/ui/MobileNav.vue
index a653186..7ff0902 100644
--- a/src/components/ui/MobileNav.vue
+++ b/src/components/ui/MobileNav.vue
@@ -18,7 +18,6 @@ export default defineComponent({
function closeNav() {
isOpenNav.value = false;
- console.log("foi click");
}
watch(isOpenNav, (newValue) => {
diff --git a/src/components/ui/Modal.vue b/src/components/ui/Modal.vue
index 11b40c9..5bca69c 100644
--- a/src/components/ui/Modal.vue
+++ b/src/components/ui/Modal.vue
@@ -31,6 +31,7 @@ export default defineComponent({
const {
onSubmit,
setValues,
+ setFieldError,
fields: {
calendar,
calendarAttrs,
@@ -39,6 +40,8 @@ export default defineComponent({
priceRange,
priceRangeAttrs,
},
+ isPostalCalendarEmpty,
+ isAvailabilityEmpty,
errors,
modalStore,
} = usePostalCalendar({
@@ -63,6 +66,10 @@ export default defineComponent({
modalStore,
modalTextContent,
setValues,
+ setFieldError,
+
+ isAvailabilityEmpty,
+ isPostalCalendarEmpty,
postalCode,
postalCodeAttrs,
@@ -106,16 +113,14 @@ export default defineComponent({
class="modal-body-filters"
>
@@ -123,31 +128,17 @@ export default defineComponent({
v-if="modalItem === 'isOpenAvailability'"
class="modal-body-availability"
>
-
-
-
+
-
-
-
+
@@ -159,23 +150,11 @@ export default defineComponent({
align="center"
class="modal-footer"
form="filters-form"
+ :disabled="modalItem === 'isOpenFilters' && isPostalCalendarEmpty"
>
-
ver disponibilidad
-
@@ -238,6 +217,10 @@ export default defineComponent({
margin-bottom: 29px;
&.availability {
gap: 65px;
+
+ @media only screen and (max-width: $med-md) {
+ gap: 10px;
+ }
}
& .modal-body-paragraph {
diff --git a/src/components/ui/QuestionForm.vue b/src/components/ui/QuestionForm.vue
index 3786bb2..0dc400d 100644
--- a/src/components/ui/QuestionForm.vue
+++ b/src/components/ui/QuestionForm.vue
@@ -1,49 +1,37 @@
+
+
+
+
+ ¡Uy! Algo ha ido mal durante el proceso de compra.
+
+
+
+
+
diff --git a/src/pages/CheckoutPage.vue b/src/pages/CheckoutPage.vue
index 9793ca3..645376d 100644
--- a/src/pages/CheckoutPage.vue
+++ b/src/pages/CheckoutPage.vue
@@ -20,7 +20,20 @@ export default defineComponent({
checkoutBlock,
cart,
totalPrice,
- formState: { errors, meta, onSubmit, submitLoading },
+ isError,
+ onError,
+ redsysData,
+ tooltip: {
+ postalCode: {
+ postalCodeRef,
+ postalCodeTooltip,
+ floatingStyles,
+ isHidden,
+ hideTooltip,
+ showTooltip,
+ },
+ },
+ formState: { errors, meta, onSubmit, isLoadingSubmit },
fields: {
name,
nameAttrs,
@@ -51,21 +64,31 @@ export default defineComponent({
terms,
termsAttrs,
},
+ phoneInputRef,
+ phoneSenderInputRef,
+ redsysFormRef,
} = useCheckoutForm();
onBeforeMount(() => {
if (cart.length === 0) return push("/");
});
- const isError = ref(false);
- const onError = () => {
- isError.value = true;
- };
-
return {
handleClickStep,
onSubmit,
onError,
+ redsysData,
+
+ phoneInputRef,
+ phoneSenderInputRef,
+ redsysFormRef,
+
+ postalCodeRef,
+ postalCodeTooltip,
+ floatingStyles,
+ isHidden,
+ hideTooltip,
+ showTooltip,
checkoutBlock,
stepsFormated,
@@ -74,7 +97,7 @@ export default defineComponent({
stepList,
cart,
step: ref(1),
- submitLoading,
+ isLoadingSubmit,
successURL: ref(""),
cancelURL: ref(""),
meta,
@@ -117,21 +140,12 @@ export default defineComponent({
-