Menu
Coddy logo textTech

Système de produits E-commerce

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 54 sur 56.

challenge icon

Défi

Il s'agit d'un système de produits pour une boutique en ligne. Les produits ont des prix, et les produits physiques (comme les ordinateurs portables) calculent les frais d'expédition en fonction de leur poids. Les produits numériques (comme les ebooks) auraient une expédition gratuite.

Votre tâche consiste à compléter les méthodes manquantes dans le système de produits :

1 : Complétez la classe Product dans product.js :

  • Ajoutez la méthode getPrice() qui retourne this.#price
  • Ajoutez la méthode getDescription() qui retourne ${this.name} - ${this.#price}

2 : Complétez la classe PhysicalProduct dans physicalProduct.js :

  • Ajoutez la méthode calculateShipping() qui :
    • Calcule this.weight * 0.5 (50 cents par livre)
    • Retourne le coût d'expédition

Essayez vous-même

import { Product } from './product.js';
import { PhysicalProduct } from './physicalProduct.js';

const book = new Product('Book', 20);
const laptop = new PhysicalProduct('Laptop', 1000, 5);

console.log(book.getDescription()); // Devrait afficher : "Book - $20"
console.log(laptop.getDescription()); // Devrait afficher : "Laptop - $1000  (5 lbs)"

console.log(`Shipping cost for laptop: $${laptop.calculateShipping()}`); // Devrait afficher : "Shipping cost for laptop: $2.5"

console.log(`Book price: $${book.getPrice()}`); // Devrait afficher : "20"
console.log(`Laptop price: $${laptop.getPrice()}`); // Devrait afficher : "1000"

Toutes les leçons de Programmation Orientée Objet