Jump to content

ClicShopping

Administrators
  • Posts

    407
  • Joined

  • Last visited

  • Days Won

    109

Posts posted by ClicShopping

  1. We are proud now to announce you ClicShoppingAI is a native agentic e-commerce platform built on an open, multi-agent architecture orchestrated by a central Orchestrator Agent. Designed for extensibility, the platform enables the dynamic addition of new agents and functional domains as business needs evolve.
     

    Multi-Agent Architecture

     

    At the core of the system, the Orchestrator Agent analyzes user intent and routes requests to the appropriate domain agents. Specialized agents operate across key functions:

    Semantic Agent for semantic search and content understanding using vector embeddings and retrieval-augmented generation (RAG).

    Analytics Agent for internal data analysis, automated SQL generation, and business intelligence.

    WebSearch Agent for retrieving external information from the public web and competitive sources.

    Hybrid Agent combining semantic, analytics, and web search capabilities to handle complex queries.

     

    Conversational Interface

    ClicShoppingAI features a conversational chat interface that supports natural language queries and delivers contextualized responses through intelligent intent analysis, contextual awareness, response validation, and multilingual support.

    Monitoring and Performance

     

    A centralized dashboard provides real-time visibility into platform activity with key performance indicators, including agent performance metrics, system latency, cache usage, alerts, trends, and token consumption statistics.

    Extensible by Design

     

    The platform relies on standardized interfaces and a clear three-layer architecture (Domains, Apps, Agents), ensuring clean separation between query processing, business logic, and autonomous agent behavior. This design allows rapid integration of new agents and domains without disrupting existing functionality.


    An example below :

    spacer.png

     

     

    An request example across the chat :

    spacer.png
     


     

  2. ClicShopping Version 4.08 and more :

    MCP (Model Context Protocol) Documentation for ClicShopping

    Overview

    The ClicShopping MCP (Model Context Protocol) system allows for the integration of external Node.js or Python servers to extend the e-commerce application’s capabilities with advanced Artificial Intelligence functionalities. It provides a modular architecture for communication between ClicShopping and external services via standardized protocols.

    What is MCP?

    MCP is a communication protocol that enables applications to interact with language models and AI services in a standardized manner. In the context of ClicShopping, it facilitates:

    • Bidirectional communication between the e-commerce application and external AI servers
    • Integration of intelligent agents for task automation
    • Data access via secured REST APIs
    • Real-time monitoring and analytics of interactions

    Importance in E-commerce

    Advantages:

    • Intelligent automation: Automatic order management, product recommendations
    • 24/7 customer support: Smart chatbots for customer assistance
    • Advanced analytics: Predictive analysis of sales and customer behavior
    • Personalization: AI-based personalized recommendations
    • Inventory optimization: Demand forecasting and automatic management

    Disadvantages:

    • Implementation complexity: Requires advanced technical skills
    • Infrastructure costs: External servers and AI services
    • External dependency: Risk of third-party service outages
    • Security: Management of tokens and secure access

    Examples of potential implementations:

    🔗 Social Media Integrations
    • Instagram Shopping: Automatic product synchronization with Instagram posts
    • Facebook Marketplace: Automatic publication of new products
    • TikTok Shop: Integration with TikTok trends for recommendations
    • Pinterest: Automatic creation of pins for popular products
    🏢 ERP Integrations
    • SAP: Synchronization of stocks, orders, and customers
    • Oracle NetSuite: Accounting integration and financial management
    • Microsoft Dynamics: Synchronization of customer and sales data
    • Odoo: Full CRM/ERP integration with inventory management
    📈 Marketing Integrations
    • Mailchimp: Automatic customer segmentation and targeted campaigns
    • HubSpot: Lead scoring and customer journey automation
    • Google Analytics 4: Advanced tracking of conversions and behavior
    • Facebook Ads: Automatic optimization of advertising campaigns
    💳 Payment Integrations
    • Stripe: Management of subscriptions and recurring payments
    • PayPal: Integration of payments and refunds
    • Klarna: Installment payments and credit scoring
    • Apple Pay/Google Pay: Optimized mobile payments
    📦 Logistics Integrations
    • DHL/UPS/FedEx: Automatic shipping cost calculation and tracking
    • Amazon FBA: Amazon stock management and synchronization
    • Shopify Fulfillment: Optimization of distribution centers
    • ShipStation: Multi-carrier shipping automation
    🎯 Analytics & BI Integrations
    • Tableau: Advanced sales dashboards
    • Power BI: Predictive analytics and automated reports
    • Google Data Studio: Marketing and performance reporting
    • Mixpanel: Advanced user event tracking
    🤖 AI & Chatbot Integrations
    • OpenAI GPT: Smart chatbot for customer support
    • Dialogflow: Multilingual conversation management
    • Zendesk: Automation of support tickets
    • Intercom: Real-time chat with lead qualification
    📱 Mobile Integrations
    • React Native: Native mobile application
    • Flutter: Cross-platform iOS/Android app
    • PWA: Progressive Web Application
    • Push Notifications: Personalized notifications
    🔐 Security Integrations
    • Auth0: Advanced authentication and authorization
    • Okta: Identity and access management
    • Cloudflare: DDoS protection and CDN
    • Sentry: Real-time error monitoring

    Examples of Integration Code

    Example 1: Instagram Shopping Integration

    // New MCP endpoint for Instagram
    class InstagramIntegration extends \ClicShopping\OM\PagesAbstract
    {
        public function syncProductsToInstagram(): void
        {
            $products = $this->getProductsForSync();
            
            foreach ($products as $product) {
                $instagramData = [
                    'name' => $product['products_name'],
                    'description' => $product['products_description'],
                    'price' => $product['products_price'],
                    'image_url' => $product['products_image'],
                    'availability' => $product['products_quantity'] > 0 ? 'in stock' : 'out of stock'
                ];
                
                $this->postToInstagramAPI($instagramData);
            }
        }
    }

    Example 2: SAP ERP Integration

    // Synchronization with SAP via MCP
    class SAPIntegration extends \ClicShopping\OM\PagesAbstract
    {
        public function syncOrdersToSAP(): void
        {
            $orders = $this->getPendingOrders();
            
            foreach ($orders as $order) {
                $sapData = [
                    'order_number' => $order['orders_id'],
                    'customer_code' => $order['customers_id'],
                    'order_date' => $order['date_purchased'],
                    'items' => $this->formatOrderItems($order['items'])
                ];
                
                $response = $this->sendToSAP($sapData);
                $this->updateOrderStatus($order['orders_id'], $response['status']);
            }
        }
    }

    Example 3: AI Chatbot with OpenAI

    // Smart chatbot for customer support
    class AIChatbot extends \ClicShopping\OM\PagesAbstract
    {
        public function handleCustomerInquiry(string $message): array
        {
            $context = $this->getCustomerContext();
            
            $prompt = "As an e-commerce assistant, help this customer: " . $message;
            $prompt .= "\nCustomer context: " . json_encode($context);
            
            $response = $this->callOpenAI($prompt);
            
            // If necessary, create a support ticket
            if ($this->requiresHumanIntervention($response)) {
                $this->createSupportTicket($message, $context);
            }
            
            return [
                'response' => $response,
                'requires_human' => $this->requiresHumanIntervention($response),
                'suggested_products' => $this->extractProductSuggestions($response)
            ];
        }
    }

    Example 4: Predictive Analytics

    // Sales prediction with AI
    class PredictiveAnalytics extends \ClicShopping\OM\PagesAbstract
    {
        public function predictSales(): array
        {
            $historicalData = $this->getSalesHistory();
            $externalFactors = $this->getExternalData(); // Weather, events, etc.
            
            $prediction = $this->runMLModel([
                'historical_sales' => $historicalData,
                'seasonality' => $this->getSeasonalityFactors(),
                'external_factors' => $externalFactors,
                'inventory_levels' => $this->getCurrentInventory()
            ]);
            
            return [
                'predicted_sales' => $prediction['sales'],
                'recommended_stock' => $prediction['stock_recommendations'],
                'confidence_score' => $prediction['confidence'],
                'risk_factors' => $prediction['risks']
            ];
        }
    }

    Concrete Use Cases

    🛒 B2C E-commerce

    • Personalized recommendations: “Customers who bought this product also viewed…”
    • 24/7 chat support: Automatic assistance with escalation to a human
    • Intelligent inventory management: Stock-out prediction
    • Dynamic pricing: Automatic price adjustment based on competition

    🏢 B2B E-commerce

    • Personalized catalog: Prices and products according to the customer
    • Large order management: ERP integration for high volumes
    • Automated reporting: Dashboards for resellers
    • Discount management: Automatic calculation based on commercial agreements

    🎯 Marketplace

    • Multi-vendor synchronization: Centralized stock management
    • Fraud detection: Automatic detection of suspicious transactions
    • Fee optimization: Automatic commission calculation
    • Dispute management: Automation of resolution processes

    📱 Mobile Commerce

    • Smart push notifications: Personalized notifications
    • Geolocation: Location-based offers
    • Mobile payments: Apple Pay/Google Pay integration
    • Image recognition: Product search by photo

    Measurable Business Benefits

    📈 Sales Performance

    • +25% conversion thanks to personalized recommendations
    • -40% shopping cart abandonment with the smart chat
    • +30% average cart value via cross-sell suggestions
    • -60% order processing time with automation

    💰 Cost Optimization

    • -50% support costs with chat automation
    • -30% logistics costs with inventory optimization
    • -25% marketing costs with precise targeting
    • -70% human errors with process automation

    🎯 Customer Experience

    • +90% customer satisfaction with 24/7 support
    • -80% response time to customer inquiries
    • +45% loyalty thanks to personalization
    • +60% problem resolution rate on first interaction

    MCP Architecture

    General Architecture

    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
    │   ClicShopping  │◄──►│    MCP Server   │◄──►│    AI Services  │
    │   (PHP Core)    │    │  (Node.js/Python)│    │   (OpenAI, etc.)│
    └─────────────────┘    └─────────────────┘    └─────────────────┘
             │                       │                       │
             ▼                       ▼                       ▼
    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
    │     Database    │    │   Monitoring    │    │    Analytics    │
    │                 │    │     & Logs      │    │    & Reports    │
    └─────────────────┘    └─────────────────┘    └─────────────────┘
    

    ClicShopping MCP Architecture

    The ClicShopping MCP system is organized into several components:

    1. Core Classes

    • MCPConnector: Connection and protocol management
    • McpMonitor: Performance oversight and monitoring
    • McpService: Core services for MCP operations
    • McpDecisionAgent: Intelligent agent for automation

    2. API Endpoints

    • /mcp&customersProducts: Products API
    • /mcp&ragBI: RAG (Retrieval-Augmented Generation) Interface for admins - the rag must ve activated
    • You are free to create other EndPoints (see example above)

    3. Admin Configuration

    • Administration interface for configuring MCP servers
    • Token, port, SSL management
    • Real-time monitoring

    What is Not Provided with the APP

    The Chat

    The chat interface is not included in the ClicShopping application. To implement it:

    Chat construction and connection:

    1. Create a chat interface (HTML/CSS/JavaScript)
    2. Connect to the MCP server via WebSocket or HTTP
    3. Use the available API endpoints:
      // Example of chat connection
      const chatEndpoint = 'http://your-domain/index.php?mcp&customersProducts';
      
      // Sending a message
      fetch(chatEndpoint, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Bearer ' + token
        },
        body: JSON.stringify({
          message: 'Looking for products',
          context: {
            user_type: 'client',
            session_id: 'unique_session_id'
          }
        })
      });

       

    The Node.js/Python MCP Server

    The external MCP server is not provided with the application. To build it:

    Node.js MCP Server Example:

    // Example of a Node.js MCP server
    const express = require('express');
    const app = express();
    
    app.post('/mcp/products', async (req, res) => {
      // Logic for processing product requests
      const response = await processProductRequest(req.body);
      res.json(response);
    });
    
    app.listen(3000, () => {
      console.log('MCP server started on port 3000');
    });

    Server Connection:

    • Configuration in the ClicShopping admin: Host, Port, SSL, Token
    • API Usage: Access via the /Shop/json routes

    Configuration and Usage

    Configuration in the Administration

    MCP configuration is done directly in the ClicShopping administration interface:

    Available parameters:

    • Server Host: Address of the MCP server (default: localhost)
    • Server Port: Port of the MCP server (default: 3000)
    • SSL: Secure protocol activation
    • Token: Authentication token for security
    • Status: MCP module activation/deactivation

    Alert configuration:

    • Latency thresholds: Maximum response time
    • Availability thresholds: Maximum downtime
    • Notifications: Email alert configuration

    Access API - Shop Routes

    The MCP API is accessible via the /Shop/json routes of ClicShopping:

    1. CustomersProducts.php

    This class serves as the main entry point for the MCP products API. It manages:

    Main features:

    • Product list: GET ?mcp&customersProducts&action=products
      Product detail: GET ?mcp&customersProducts&action=product&id={ID}
      Search: GET ?mcp&customersProducts&action=search&query={TERM}
      Statistics: GET ?mcp&customersProducts&action=stats
      Categories: GET ?mcp&customersProducts&action=categories
      Recommendations: GET ?mcp&customersProducts&action=recommendations
      Customer chat: POST ?mcp&customersProducts (with JSON body)

       

    •  

    Example usage:

    # Product list
    curl "http://localhost/clicshopping_test/index.php?mcp&customersProducts&action=products&limit=5"
    
    # Product search
    curl "http://localhost/clicshopping_test/index.php?mcp&customersProducts&action=search&query=washcloth"
    
    # Customer chat (POST)
    curl -X POST "http://localhost/clicshopping_test/index.php?mcp&customersProducts" \
      -H "Content-Type: application/json" \
      -d '{"message": "I am looking for cleaning products", "context": {"user_type": "client"}}'

    2. RagBI.php

    RAG (Retrieval-Augmented Generation) interface identical to ClicShopping’s internal chat but accessible via MCP:
    To use it, you must activate the Agent RAG-BI inside the administration.

    Features:

    • Semantic queries: Smart search in the database
    • Analytical queries: Analysis of sales and performance data
    • OpenAI Integration: Use of language models for responses
    • Translation cache: Performance optimization

    Example usage:

    # RAG BI Query
    curl -X POST "http://localhost/clicshopping_test/index.php?mcp&ragBI" \
      -H "Content-Type: application/json" \
      -d '{"message": "Give me a table of the evolution of turnover by month for the year 2025"}'

    3. customerOrders.php

    Customer order management API:

    Features:

    • Order list: GET ?mcp&customerOrders&action=list_orders&customer_id={ID}
      Order detail: GET ?mcp&customerOrders&action=read_order&order_id={ID}
      Cancellation: POST ?mcp&customerOrders&action=cancel_order
      Messages: POST ?mcp&customerOrders&action=send_message
      History: GET ?mcp&customerOrders&action=history&order_id={ID}

       

    •  

    Examples of Future Implementation

    Agentic Approach

    The MCP system supports the implementation of intelligent agents for:

    1. Recommendation Agent:

      // Example of a Recommendation Agent
      class RecommendationAgent {
        public function analyzeCustomerBehavior($customerId) {
          // Analyze customer behavior
          // Generate personalized recommendations
        }
      }

       

    2. Stock Management Agent:

      // Example of a Stock Management Agent
      class StockAgent {
        public function predictDemand($productId) {
          // Demand prediction
          // Optimization of stock levels
        }
      }

       

    3. Customer Support Agent:

      // Example of a Support Agent
      class SupportAgent {
        public function handleCustomerInquiry($message) {
          // Process customer inquiries
          // Automatic escalation if necessary
        }
      }

       


    Monitoring and CronJobs

    Monitoring System

    The MCP system includes complete monitoring:

    Monitored metrics:

    • Response time: Latency of MCP requests
    • Availability: Uptime of the MCP server
    • Errors: Error rate and error types
    • Security: Intrusion attempts and unauthorized access

    Automatic alerts:

    • Performance thresholds: Alerts if response time > threshold
    • Service outages: Notifications in case of unavailability
    • Suspicious activities: Detection of attacks or abuse

    CronJob Configuration

    The MCP system uses scheduled tasks for:

    1. Health Monitoring (every 5 minutes)

    // CronJob: McpHealthCron
    // Checks the health of the MCP server
    // Stores alerts in the database
    // Cleans up old alerts (>30 days)

    2. Decision Agent (every 5 minutes)

    // CronJob: mcp_agent
    // Executes the intelligent decision agent
    // Processes automated tasks
    // Updates recommendations

    CronJob Configuration:

     
    # Add to crontab
    */5 * * * * /usr/bin/php /path/to/clicshopping/index.php?cronId={CRON_ID}
    

    Security

    Authentication and Authorization

    Access Tokens:

    • Secure generation: Unique tokens per session
    • Automatic expiration: Token rotation
    • Validation: Verification on every request

    Endpoint protection:

    • Configured CORS: Controlled access by origin
    • Parameter validation: Input sanitization
    • Production mode: Access restrictions in production

    Security Best Practices

    1. Use HTTPS in production
    2. Configure strong tokens and renew them regularly
    3. Limit access by IP if necessary
    4. Monitor logs to detect suspicious activities
    5. Regularly update dependencies

    Troubleshooting

    Common Problems

    1. Connection to the MCP server fails

    • Check the configuration (host, port, SSL)
    • Verify that the MCP server is started
    • Check error logs

    2. Authentication errors

    • Verify the token validity
    • Check permission configuration
    • Check security logs

    3. Degraded performance

    • Check monitoring metrics
    • Optimize database queries
    • Increase resource limits

    Logs and Debugging

    Log files:

    • MCP Logs: Available in the database and admin interface (export) for various traceability
    • PHP Error Logs: Standard PHP configuration
    • Monitoring Logs: mcp_alerts database

    Support and Resources

    Additional Documentation

  3. For over two years, ClicShopping AI has been integrating generative AI using OpenAI, Anthropic, and Ollama.

    While the V3.x release incorporated AI without requiring fundamental changes to the core application or underlying technologies, the upcoming V4 takes a major leap forward with deeper AI integration and enhanced functionalities.

     

    MariaDB with RAG: A Game Changer for AI-Driven E-Commerce for PHP aplication

    MariaDB has recently introduced a version with built-in Retrieval-Augmented Generation (RAG), leveraging OpenAI for intelligent search and contextual understanding.
    This upgrade enables databases to create vector embeddings, allowing for advanced semantic search capabilities that link structured and unstructured data.
     

    ClicShopping AI V4 seamlessly integrates MariaDB’s RAG with its PHP-based framework, empowering merchants with AI-powered data retrieval. The system can process vast datasets, enabling real-time insights and intelligent automation through a chatbot-driven interface.


    Advanced AI-Powered Features for Merchants

    ClicShopping AI V4 enhances the merchant experience with context-aware search and AI-driven analytics.

    Key capabilities will be includes (most of them):
     

    ✔ Intelligent Stock Monitoring – Instantly check which products are running low.
    ✔ Advanced Product Lookup – Retrieve products by reference, attributes, or even vague descriptions.
    ✔ Automated Customer Insights – AI-driven analysis of purchasing patterns and customer preferences.
    ✔ Smart Recommendations – Suggests relevant products based on user behavior and search history.

    and more.

    If no exact match is found, the chatbot dynamically returns the closest relevant result, ensuring an intuitive and efficient user experience.

    Currently, very few PHP e-commerce solutions natively integrate generative AI and RAG technology.

    ClicShopping AI is the first PHP solution to pioneer this innovation, redefining how merchants interact with their data.


    Enhanced Security with AES-256 Encryption

    Security remains a top priority. The next release will introduce dynamic AES-256 encryption for sensitive data stored within the platform.
    This ensures:

    🔐 End-to-End Encryption – Protects customer and transaction data.
    🔐 Adaptive Key Management – Rotates encryption keys dynamically for enhanced security.
    🔐 Compliance-Ready Protection – Meets industry standards for data privacy and security.
     

    Try the Development Version Today

    ClicShopping AI V4 is at the forefront of AI-driven e-commerce solutions. Be among the first to explore its capabilities!
     

    System Requirements (recommended):

    MariaDB 11.7 (with RAG support)

    PHP 8.4

     

    Stay ahead of the curve—embrace the future of AI-powered e-commerce with ClicShopping AI V4!

  4. Good morning,

     

    Some of you have certainly noticed a change on the logo. Since the 2 last versions, we have set out to put generative artificial intelligence in the application with GPT and OPENAI. The module will certainly evolve in time to integrate other approach like Google Bard for example. We go there in stages.

     

    For the next version 3.431 a Charbot will be integrated into the application on the front office.


    It will use generative AI to give additional information to the user allowing him to have more information on the product.

     

    We wanted to go more far including generation conditions for example. But the expected result was not there. We have tried to use text segmentation to reduce the processing time but the limitation obtained is not good.

     

    This is due to the fact that Mariadb does not have a feature to include a vector inside a table.

    This approach improves treatment time but drastically reducing the number of Token sent to GPT and the cost linked to treatment.

     

    In addition, proposing a solution whose reaction time and a cost of treatment too much did not seem to us to be careful as an approach.

    Furthermore, like the administration where we use Davinci-003 model, in the front office, we use GPT 3.5 Turbo is a model largely cheaper than Davinci.

     

    We have included a parameter allowing to manage the chatbot display in the offering front so that you can better manage your budget.

    To complete the next evolution will have updates concerning the GPT including new statistics, a preditive security stock -analyse and an update on customer recommendations.

     

    Our objective is to be able to offer a new generation of e-commerce platform allowing merchants (small company, medium company) to be able to use artificial intelligence with a budget control, to be able to carry out more impactful communication campaign, marketing and finally to optimize production time, creation of product sheets and increase the sell.

     

    The work continues and will continue in this orientation in the future.

    • Like 3
    • Thanks 2
  5. We have started the next version of ClicShopping and some minor release has been pushed.

     

    What do we find inside this new version essentially ?

     

    Php8.2 compatibility and optimized

    Studio editor to edit the template and the css

    Cronjob manager with some tasks included

    API allowing to connect ClicShopping with some other tools as crm, erp across json approach ....

    A new marketplace

    Librairies will updated

    Double authentification

    The new boostrap version

     

    and some other surprises :)

     

     

    • Thanks 3
  6. Email is part of communication, below different examples how to set email inside ClicShopping

     

    Example 1 : o2switch.net


     

    User name : myemail@domain.com
    
    - Password : email password
    - Server : mail.test.domain.com
    - remove mail. and write only test.domain.com
    - SMTP Port: 26
    - SMTP authentication : true
    - SMTP secured protocol : ssl
    - Emails activation : true

     

     

    Example 2 : gmail.com

     

    - User name : myemail@gmail.com
    - Password : Utilisez le mot de passe du compte de messagerie.
    - Server smtp : smtp.gmail.com
    - remove smtp. and write only gmail.com
    - SMTP Port: 25 ou 465
    - SMTP authentication : true
    - SMTP secured protocol : ssl or Tls
    - Emails activation : true

     

    • Like 7
  7. When Google or other search engines come to your site to read and store the content in its search index, it will look for a special file called robots.txt. This file is a set of instructions to tell search engines where they can look to crawl content and where they are not allowed to crawl content. We can use these rules to ensure that search engines don't waste their time looking at links that do not have valuable content and avoid links that produce faceted content.

     

    Why is this important?

    Search engines need to look at and store as many pages that exist on the internet as possible. There are currently an estimated more 4.5 billion web pages active today. That's a lot of work for Google.

    It cannot look and store every single page, so it needs to decide what to keep and how long it will spend on your site indexing pages. This is called a crawl budget.

    How many pages a day Google will index depends on many factors, including how fresh the site is, how much content you have and how popular your site is. Some websites will have Google index as few as 30 links a day. We want every link to count and not waste Google's time.

     

    What does the suggested Robots.txt file do?

    ClicShopping optimised rules exclude site areas with no unique content but instead redirect links to existing topics. Also excluded are areas such as the privacy policy, cookie policy, log in and register pages and so on. Submit buttons and filters are also excluded to prevent faceted pages. Finally, user profiles are excluded as these offer little valuable content for Google but contain around 150 redirect links. Given that Google has more seconds on your site, these links that exist elsewhere eat up your crawl budget quickly.

     

    What is the suggested Robots.txt file?

    Here is the content of the suggested Robots.txt file. If your ClicSHoppingis inside a directory, you will need to apply it to the root of your site manually. So, for example, if your community was at /home/site/public_html/myDirectory/ - you would need to create this robots.txt file and add it to /home/site/public_html. It's simple just edit robot.txt and change inside the information

     

    example of robot.txt

    Note : domain.ltd must be changed by your domain.
     

    # Rules for ClicSopping (https://www.clicshopping.org)
    
    User-Agent: *
    
    # Block pages with no unique content
    
    Disallow: /Account/LogIn/
    
    Disallow: /Account/CreatePro
    
    Disallow: /Account/Create
    
    Disallow: /Account/PasswordForgotten
    
    Disallow: /Search/AdvancedSearch/
    
    Disallow: /Search/Q/
    
    # Block faceted pages and 301 redirect pages
    
    Disallow: /*?page=
    
    Disallow: /*?sort=
    
    # Sitemap URL
    
    Sitemap: https://domain.tld/index.php?Sitemap&GoogleSitemapIndex

     

    • Like 7
  8. The version 3.323 allows to use htaccess to rewrite the url.

     

    To use this function you must activate in Shop/SEO urls this 2 options

     

    1 - Use Search-Engine Safe Native URLs

     

    this option rewrites the url like this :

     https://demo.clicshopping.org/index.php/Products/Description/logitech-trackman-marble-mouse/Id-12

     

    and

    2- Use Search-Engine Safe URLs Pro (with htaccess)

     

    This option rewrites the url like this :

    https://demo.clicshopping.org/Products/Description/logitech-trackman-marble-mouse/Id-12

     

     

    To use the last option, you must include inside your root an htaccess with this syntax. Of course, it can updated in function of your server.

    note : This option works only on the catalog without customer, if your are logged you will see the url above. It's optimized only for the search engine.
     

    For apache 2.4

    ##################################
    # url rewiting
    #improve url rewriting
    #work fine without directory https://mydomain.com/test/index.php
    #the rewriting must be activated inside the application
    # uncomment
    ##################################
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    DirectorySlash Off
    
    #
    # Remove WWW
    #
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=302,L]
    
    #
    # Remove Trailing Slashes
    #
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{THE_REQUEST} \s(.+?)//+[?\s]
    RewriteRule ^ %1 [R=302,L]
    
    #
    # Reroute to index.php
    #
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    
    </IfModule>

     

    • Like 5
  9. Hello,

    Thank you for you comment, it's always welcome.

    @Juliana,

    Yes you can always use the last image gallery but you must follow this process
    - Do not remove the jquery hooks because the module use jquery - For this version, we do not touch on the module - No pb

    - You must change inside the image gallery these elements :

    edit : pi_products_info_gallery.php

    Inside sql configuration : 'configuration_title' => 'Where do want to display the gallery position ?',

    update by this

    'set_function' => 'clic_cfg_set_boolean_value(array(\'float-end\', \'float-start\', \'float-none\'))',

     

    Of course, remove and reinstall it.
    I will push when I have a little time a specific module in the marketplace and github community.

     

    • Like 3
    • Thanks 2
  10. Hello @Rantanplan,

     

    little late but there an example. You can find this code the apps category

    You can create another if you add information inside the json or you can add inside the includes/Modules directories. Goofd luck

     

    <?php
      /**
       *
       * @copyright 2008 - https://www.clicshopping.org
       * @Brand : ClicShopping(Tm) at Inpi all right Reserved
       * @Licence GPL 2 & MIT
       * @licence MIT - Portion of osCommerce 2.4
       * @Info : https://www.clicshopping.org/forum/trademark/
       *
       */
    
      namespace ClicShopping\Apps\Catalog\Categories\Module\Hooks\ClicShoppingAdmin\DashboardShortCut;
    
      use ClicShopping\OM\Registry;
      use ClicShopping\OM\HTML;
      use ClicShopping\OM\CLICSHOPPING;
    
      use ClicShopping\Apps\Catalog\Categories\Categories as categoriesApp;
    
      class DashboardShortCutCategories implements \ClicShopping\OM\Modules\HooksInterface
      {
        protected $app;
    
        public function __construct()
        {
          if (!Registry::exists('Categories')) {
            Registry::set('Categories', new categoriesApp());
          }
    
          $this->app = Registry::get('Categories');
    
          $this->app->loadDefinitions('Module/Hooks/ClicShoppingAdmin/DashboardShortCut/dashboard_shortcut_categories');
        }
    
        public function display(): string
        {
          if (!defined('CLICSHOPPING_APP_CATEGORIES_CT_STATUS') || CLICSHOPPING_APP_CATEGORIES_CT_STATUS == 'False') {
            return false;
          }
    
          $output = HTML::link(CLICSHOPPING::link(null, 'A&Catalog\Categories&Categories'), null, 'class="btn btn-primary btn-sm" role="button"><span class="fas fa-list" title="' . $this->app->getDef('heading_short_categories') . '"') . ' ';
    
          return $output;
        }
      }

     

    • Like 1
  11. With PHP 7.4, support for preloading was added, a feature that could improve the performance of your code significantly.

    In a nutshell, this is how it works:

     

    - In order to preload files, you need to write a custom PHP script

    - This script is executed once on server startup

    - All preloaded files are available in memory for all requests

    - Changes made to preloaded files won't have any effect, until the server is restarted

     

    If you want more information, some article are available on this new feature.
     

    library used (under MIT licence):
    https://github.com/DarkGhostHunter/Preloader

     

    1 / Mandatory Requirement
    - Php 7.4 minimum version
    - opCache installed
    - An access to your php.ini
    - Work in 777 chmod

     

    2 / How to implement :

     

    Step 1 : Know your path
    You must know  your root on preloader.php inside your application. below an example

    www/var/..../shop/Core/ClicShopping/Work/Log/preloader.php

     

    Step 2 : Php.init implementation
    Edit your php.init and search this line :

    ;opcache.preload=

    replace by your root path : below an example

    opcache.preload=/home/www/..../shop/Core/ClicShopping/Work/Log/preloader.php

     

    Step4 : Restart apache2

    Make this command inside your terminal

    sudo service apache2 restart

    Step5 : Configure ClicShopping

    * Go to ClicShopping Administration
    - Menu Configuration / Session & Cache / Compression & optimization
    - Activate the preload functionnalities

     

    * Go to your catalog and actualise a page
    - The sytem will create a preloader.php file inside your Work/Log directory
    - You can check if everything is correct in editing your preload.php files. You must see some information inside.

    • Like 1
    • Thanks 7
  12. Hello,

    @Drack, thank you for this report, updated.
    The ClicShopping Core seems to work fine with php 7.4, just the external libraries must be updated eventually, for that we must wait the developer to make the work.
    If I see something, I will update the core.

     

    There, the elements can put eventually a problem after a quick search (I do not say, you will have an error, more test must be again done) :
    base on this information : https://www.php.net/manual/fr/migration74.deprecated.php

     

    Using array_key_exists() on objects (some external libraries) ¶

    Magic quotes functions  (ckeditor) ==> no impact

     

     

    • Like 1
    • Thanks 4
  13. Hello,

     

    To react at this topic, I pushed a new minor version with all the composer libraries updated.
    This version has some update like ckeditor, Elfinder and some fix.

     

    If you have not included new composer library, you can easily update your solution else you must make the command composer unpdate inside the Shop directory or where you can find the composer.json in the ClicShopping root directory.

    • Like 2
    • Thanks 2
  14. Hello,

    @Patricks describe well what you must make and also take time to learn and test.

     

    About the demo and master, the demo show you how to use different themes but the default is the same than you have on Github, after you can change some setting inside modules ou default configuration or apps.

     

    For the demo, I just created a specific theme and put just the file need to be change but you also can create your own module and call your own template.

     

    Note, the default template is the "referent" for the files, if you create a new template with new module and change after in other template without this module, errors can appear. You can resolve that if you bring you new module inside the default template.

    The new template override just the files in the default template. Limit all the css must copied in the new template

     

     

    • Thanks 1
  15. The menu can have different function

     

    For example if you want to create a marketplace you have 2 choices

    Create the menu in manual mode

    Create the menu via the apps automatically

     

    Manual is not recommended on this case when you create an apps because the administrator must do a manual action on the menu and after install the apps with the instructions.

     

    Like all menu has a specific code. It s possible to re-organise the menu if you do not appreciate.

     

    Access to this menu allow you to know the good code and id for a programmer when he creates a new apps inside the menu of his choice.

    The best is to look inside the Configure directory the different files (Install and Delete) the approach.

     

    About the modules inside the catalog (template), you have nothing to do.

     

    • Like 2
    • Thanks 2
  16. hello @SuperThin,

     

    Could you test (on several specific world)  this please  and tell me if it work ?

     

    in includes/Shop/RewriteUrl.php - change the function by this.

    In it's work it will be added on next update.

    I take different work on your website, and seems now ok inside the the url

    Thank you for your comment @SuperThin

    /**
         * Remove url accent
         * @param $str
         * @param string $charset
         * @return null|string|string[]
         */
        protected function getSkipAccents(string $str, string $charset = 'utf-8'): string
        {
    
          if (!extension_loaded('intl')) {
            throw new Exception('intl module not loaded');
          } else {
            $transliterator = \Transliterator::create('Any-Latin; Latin-ASCII');
            $str = $transliterator->transliterate(mb_convert_encoding(htmlspecialchars_decode($str),$charset, 'auto'));
          }
    
          $str = htmlentities($str, ENT_NOQUOTES, $charset);
    
          $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
          $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
          $str = preg_replace('#&[^;]+;#', '', $str);
          $str = preg_replace('/[^A-Za-z0-9\-]/', '', $str); // Removes special chars
    
          return $str;
        }

     

    • Like 4
    • Thanks 2
  17. Hello

     

    I make an update about the composer who can create automatically an htaccess in shop directory and  when you install application and the site is not accessible.

    I change the json configuration to resolve that.

     

    About chmod if your hoster do not allow to include new file or create new directory. You must do that manually.

     

    For you the most important directory and sub directory are :

     

    Includes/clicshopping/work in 777 and sub

    Sources/images in 777 and image

     

    The chmod can be changed with your ftp

     

    Check also is your hoster accept composer (commande). Now, if you want install a payment for example, composer is required in your server.

     

    If the automatic install do not work you have no choice to download the apps you make an install manually in your case

    You have some tutorials on the website to do that how to install in manual an apps

     

    The best is to have a local website, to install local and after to export in your server.

     

    I hope it can help you to resolve your problem.

    • Like 1
  18. Hello,

     

    Just for information, An update has been made, now, it's possible to :

    update all the library

    update one library

    clear the cache

    compare the version installed with the latest version.

     

    Just a warning, you must be careful when you make an update because it can create an error inside your apps.

    Make for the expert.

    • Like 4
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use