
Prestashop Developments – API & modules
@Didiaupdates posted 3 weeks ago Shortlist Email JobJob Detail
-
Job ID 630
Job Description
⚠Please indicate a total package price. Other proposals will not be considered.
Context
The project involves developing and integrating several modules for a PrestaShop store specializing in precious metals sales (gold, silver, platinum, palladium). The objective is to provide an optimal user experience, dynamic pricing based on real-time metal prices, and advanced features for customers and administrators.
All developed elements must perfectly align with the existing website’s graphic charter, and the site must maintain a fast loading time (less than 3 seconds).
1. Integration of a Third-Party API for Precious Metal Prices
The objective of this phase is to install and configure a third-party API to retrieve real-time prices for the following precious metals: gold, silver, platinum, and palladium.
? API Documentation
Detailed documentation is provided for using the API (see attached document “[login to view URL]”). This API offers REST endpoints to retrieve price data in different currencies and from several sources.
✅ Tasks to Complete
Implement a periodic update system:
Define an optimal refresh frequency considering API call limits.
Store retrieved data in a database or cache to avoid excessive calls.
Expose data internally:
Create an internal endpoint or service for easy access to retrieved data.
Ensure compatibility with other modules using this information.
⚠️ Constraints and Recommendations
Respect API call limitations (e.g., rate limit of 1000 requests/day).
Implement a cache system to limit API usage.
Manage API errors and unavailability by providing fallback solutions (e.g., saving the last valid rates).
Ensure a fast response time to avoid slowing down the site.
Secure API calls with authentication keys and use HTTPS.
The next project phases will depend on the successful integration of this API.
2. Metal Price Update Banner (Top Header)
Objective: Display real-time precious metal prices (gold, silver, platinum, palladium) with their respective variations.
Technical Specifications:
Integration of a third-party API (e.g., [login to view URL]) to retrieve real-time metal prices.
Display of prices in a banner at the top of each page of the site.
Automatic price updates every 60 seconds (configurable).
Display of percentage variations (positive in green, negative in red).
Implementation of a fallback in case of API error (display of the last available prices).
✅ Tasks to Complete
Design the banner:
Define a design consistent with the graphic charter.
Ensure smooth and non-intrusive integration.
Optimize performance:
Use asynchronous loading to avoid slowdowns.
Implement a temporary cache of retrieved data.
Test and validate:
Verify display on desktop, mobile, and tablet.
Test data updates and interface responsiveness.
Constraints:
The banner must be responsive and adapt to all devices (desktop, tablet, mobile).
The solution must be lightweight to avoid impacting site performance.
Updates must be smooth without complete page reload.
The module must be compatible with other site elements (no interference with other scripts or plugins).
3. Development of Dynamic Pricing
Objective: Enable dynamic product pricing based on several criteria, particularly metal prices.
Technical Specifications:
Creation of a dynamic pricing module based on 7 criteria:
Metal (gold, silver, platinum, palladium).
Weight (in grams, ounces, etc.).
Metal content (e.g., 24 karat, 18 karat).
Purity (e.g., 99.9%).
VAT (variable rate depending on the country).
Manufacturing price (transformation cost).
Professional margin (fixed or variable margin).
4. Creation of a Customized Client Dashboard
Objective: Provide customers with a personalized space to track their investments and orders.
Technical Specifications:
Order history: Display of past orders with details (date, amount, status, etc.).
Purchase portfolio: Visualization of purchased metals with their weight, purity, and purchase price.
Investment value: Calculation and display of the current portfolio value based on real-time metal prices.
Portfolio variation: Display of positive or negative variation based on purchase price and current price (in percentage and absolute value).
Constraints:
The dashboard must be accessible from the PrestaShop customer account.
Data must be updated in real-time (or near real-time) via the metal price API.
5. Sales Module for Clients
Objective: Allow customers to initiate a request to sell their metals directly from their customer account.
Technical Specifications:
Addition of a “Sell” button on the product page.
Display of the selling price based on the current metal price.
Sales request form with the following fields:
Metal weight.
Metal type.
Customer contact information.
Request validation by the administrator via the backoffice:
Ability to adjust the selling price.
Ability to reject the request with reason.
Automated email notifications:
Notification to the customer upon request submission.
Notification to the customer upon validation or rejection of the request.
Notification to the administrator upon submission of a new request.
Constraints:
The module must be smoothly integrated into the existing interface.
Notifications must be configurable from the backoffice (content, recipients, etc.).
6. Automatic Product Price Updates
Objective: Automatically update product prices based on the spot price of precious metals.
Technical Specifications:
Integration of the metal price API to retrieve spot prices.
Automatic product price updates every X minutes (configurable).
Price gap management (e.g., if the price varies by more than X%, an alert is sent to the administrator).
Constraints:
Price updates must not impact site performance.
Old prices must be saved in a history for reference.
7. Storage Options at Checkout
Objective: Offer two storage options to customers during checkout.
Technical Specifications:
Free port: Secure storage option in a fiscal warehouse.
Home delivery: Standard delivery option with tracking.
Display of options at checkout with associated costs.
Constraints:
Options must be configurable from the backoffice (activation/deactivation, costs, etc.).
8. Perishable Orders for Wire Transfer Payments
Objective: Manage unpaid orders within a 48-hour timeframe.
Technical Specifications:
Customer notification at checkout that the order is perishable (explanation + 48h countdown).
Administrator notification by email when a perishable order is created.
Automatic cancellation of unpaid orders after 48 hours.
Ability to manually extend the deadline from the backoffice.
Constraints:
The system must be robust and handle customers’ time zones.
9. KYC (Know Your Customer) Form
Objective: Implement a KYC form for transactions exceeding €10,000 or cumulative over a calendar year.
Technical Specifications:
Automatic triggering of the KYC form when a customer’s cumulative purchases exceed €10,000 in the calendar year.
Creation of a dedicated page for document submission (ID card, passport, etc.).
Backoffice interface for verification and approval of documents by administrators.
Customer notification once KYC is approved or rejected.
Constraints:
The system must comply with current regulations (e.g., GDPR).
Documents must be stored securely.
10. Design and Integration
Objective: Ensure smooth integration and consistent design with existing elements.
Technical Specifications:
Respect for existing design (colors, fonts, etc.).
Responsive integration for all devices.
Performance optimization (loading time, etc.).
11. Testing and Validation
Objective: Ensure the quality and stability of developed features.
Technical Specifications:
Unit and functional tests for each module.
Performance tests to ensure real-time updates do not impact site performance.
Validation by the business team before production deployment.
12. Expected Deliverables
Commented and documented source code.
Technical documentation for each module.
User documentation for administrators and customers.
Deployment plan and rollback in case of error.
Project ID: #39183829