WP Manifestindependent plugin directory
manifest / ecommerce / woo-la-caisse-sync-api

Woo La Caisse Sync API

Solution d'intégration complète pour connecter votre boutique WooCommerce avec le système de gestion La Caisse (macaisse.ma) via le compte client Pizzaty. Synchronise automatiquement les produits, catégories et options depuis l'API La Caisse vers WooCommerce, et transmet les commandes clients vers cette API en temps réel.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/khadijahr/woo-la-caisse-sync-api/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WOO La Caisse Sync API - Intégration WooCommerce & La Caisse

Plugin WordPress qui synchronise automatiquement les produits, catégories et options depuis l'API La Caisse (compte client Pizzaty sur macaisse.ma) vers WooCommerce, et transmet les commandes clients vers cette API en temps réel.


📋 Description

Woo-la-Caisse-Sync-API est une solution d'intégration complète qui permet de connecter votre boutique WooCommerce avec le système de gestion La Caisse (macaisse.ma) via le compte client Pizzaty sur La Caisse.ma. Le plugin automatise la synchronisation bidirectionnelle des données :

  • Import automatique : Synchronise les produits, catégories, images et options depuis l'API La Caisse vers WooCommerce
  • Export automatique : Envoie les commandes validées dans WooCommerce vers l'API La Caisse au format JSON
  • Gestion intelligente : Évite les doublons et gère automatiquement les images et options produits

Développé spécifiquement pour Pizzaty, ce plugin permet de synchroniser le compte client Pizzaty sur La Caisse.ma avec une boutique WooCommerce, facilitant la gestion des commandes en ligne et la synchronisation des produits.


✨ Fonctionnalités principales

🔄 Synchronisation des produits

  • Import automatique des produits depuis l'API La Caisse
  • Création automatique des catégories avec leurs images
  • Import des images de produits et de catégories depuis les URLs fournies
  • Gestion des prix et descriptions produits
  • Vérification des doublons (évite la création de produits existants)
  • Limite de 20 produits à l'activation (configurable)

🎯 Gestion des options produits

  • Import des groupes d'attributs (ex: Tailles, Sauces, Suppléments)
  • Création automatique des options personnalisables pour chaque produit
  • Association des options avec leurs prix respectifs
  • Intégration avec Product Options for WooCommerce pour la gestion des options produits

🛒 Transmission des commandes

  • Envoi automatique des commandes vers l'API après validation WooCommerce
  • Transmission complète des données :
    • Informations client (nom, téléphone)
    • Adresse de livraison
    • Produits commandés avec quantités
    • Options sélectionnées pour chaque produit
    • Prix total et méthode de paiement
  • Format JSON conforme à l'API La Caisse

🎨 Affichage front-end

  • Shortcode [afficher_produits] pour afficher les données de l'API
  • Affichage des produits avec leurs catégories et options
  • Formatage HTML structuré pour intégration facile

🚀 Installation

Prérequis

  • WordPress >= 6.0
  • PHP >= 7.0
  • WooCommerce (actif et configuré)
  • Product Options for WooCommerce (recommandé pour la gestion des options produits)
  • Extension cURL activée sur le serveur
  • Accès à l'API La Caisse avec token d'authentification

Étapes d'installation

  1. Télécharger le plugin

    # Copier le dossier du plugin dans le répertoire WordPress
    wp-content/plugins/woo-la-caisse-sync-api/
  2. Activer le plugin

    • Aller dans Extensions > Plugins dans l'administration WordPress
    • Activer Woo La Caisse Sync API
  3. Vérifier les dépendances

    • S'assurer que WooCommerce est installé et activé
    • Installer et activer Product Options for WooCommerce pour la gestion des options produits
    • Le plugin vérifie automatiquement la présence de WooCommerce
  4. Synchronisation initiale

    • À l'activation, les 20 premiers produits sont automatiquement importés
    • Les catégories et options sont créées automatiquement
    • Les images sont téléchargées et associées

📖 Utilisation

Synchronisation automatique

La synchronisation se déclenche automatiquement à l'activation du plugin. Les produits importés sont :

  • Publiés immédiatement dans WooCommerce
  • Associés à leurs catégories respectives
  • Enrichis avec leurs images et descriptions
  • Configurés avec leurs options personnalisables

Affichage des produits API

Utilisez le shortcode dans vos pages ou articles pour afficher les données de l'API :

[afficher_produits]

Ce shortcode affiche :

  • Liste de tous les produits disponibles dans l'API
  • Catégories associées
  • Options disponibles pour chaque produit
  • Prix et descriptions

Transmission des commandes

Les commandes sont automatiquement transmises à l'API lorsque :

  • Un client valide une commande dans WooCommerce
  • La commande est marquée comme complétée
  • Le hook woocommerce_thankyou est déclenché

Aucune configuration supplémentaire n'est nécessaire - tout est automatique !


🔧 Configuration

Paramètres API

Les paramètres de connexion à l'API sont définis dans le fichier woo-la-caisse-sync-api.php :

// URL de l'API pour récupérer les produits
CURLOPT_URL => 'https://api-legacy.lacaisse.ma/CM/getProduct.php?...'

// URL pour envoyer les commandes
wp_remote_post("https://api-legacy.lacaisse.ma/CM/pushOrder.php", ...)

Limite de produits

Par défaut, seuls 20 produits sont importés à l'activation pour éviter la surcharge. Pour modifier cette limite, éditez la ligne 118 dans woo-la-caisse-sync-api.php :

if ($added_products_count >= 20) { // Modifier 20 par le nombre souhaité
    break;
}

🛠️ Fonctions principales

Fonction Description
recuperer_produits_depuis_api() Récupère toutes les données (produits, catégories, options) depuis l'API La Caisse
add_products_and_categories_woocommerce() Crée les produits, catégories et options dans WooCommerce
ajouter_image_produit() Télécharge et attache l'image à un produit depuis son URL
send_order_data_to_api() Envoie les données de commande à l'API externe au format JSON
get_product_id_by_name() Trouve l'ID d'un produit dans l'API selon son nom
get_option_id_by_name() Trouve une option dans l'API selon son nom et le produit
afficher_produits_avec_categories() Affiche les produits avec catégories et options (shortcode)

📡 Structure de l'API

🌐 Site officiel La Caisse : macaisse.ma

Endpoint de récupération des produits

GET https://api-legacy.lacaisse.ma/CM/getProduct.php

Paramètres :

  • id_caisse : Identifiant de la caisse
  • id_menu : Identifiant du menu
  • token_api : Token d'authentification

Réponse JSON :

{
  "products": [
    {
      "id": "123",
      "name": "Burger Classic",
      "prix": "45",
      "image_url": "https://example.com/image.jpg",
      "description": "Description du produit",
      "options_groups": [4, 5]
    }
  ],
  "categories": [
    {
      "id_cat": "1",
      "name": "Burgers",
      "image_url": "https://example.com/cat.jpg",
      "sections": [
        {
          "products": ["123", "124"]
        }
      ]
    }
  ],
  "attribute_groups": [
    {
      "id": 4,
      "name": "Taille",
      "options": [25, 26]
    }
  ],
  "options": [
    {
      "id": 25,
      "name": "Petite",
      "prix": 0
    },
    {
      "id": 26,
      "name": "Grande",
      "prix": 10
    }
  ]
}

Endpoint d'envoi des commandes

POST https://api-legacy.lacaisse.ma/CM/pushOrder.php

Format JSON envoyé :

{
  "order_id": "12345",
  "store_id": "111111",
  "token_api": "1010101f-1a01-11e0-1211-10a101e1b01d1",
  "payment_method": "bacs",
  "currency": "MAD",
  "special_requirements": null,
  "customer": {
    "name": "Jean Dupont",
    "phone_number": "+212612345678"
  },
  "delivery_address": "123 Rue Example, Casablanca",
  "estimated_total_price": "150.00",
  "products": [
    {
      "quantity": 2,
      "price": "90.00",
      "name": "Burger Classic",
      "id": "123",
      "remark": "",
      "options": [
        {
          "name": "Grande",
          "id": 26,
          "quantity": "1",
          "price": 10
        }
      ]
    }
  ]
}

🔐 Sécurité & Bonnes pratiques

Mesures de sécurité

  • ✅ Vérification de l'existence de WooCommerce avant toute action
  • ✅ Vérification des doublons avant création de produits
  • ✅ Sanitization des données avant insertion en base
  • ✅ Utilisation des fonctions WordPress natives pour la sécurité

Limitations

  • ⚠️ Seuls 20 produits sont importés à l'activation (pour éviter la surcharge)
  • ⚠️ Aucune planification automatique : la synchronisation se fait uniquement à l'activation
  • ⚠️ Pour une synchronisation régulière, envisager l'ajout d'un cron job WordPress

Recommandations

  • 🔄 Configurer un cron job pour synchroniser régulièrement les produits
  • 📊 Surveiller les logs d'erreur WordPress pour les échecs d'API
  • 🔑 Sécuriser les tokens API (ne pas les exposer publiquement)
  • 💾 Effectuer des sauvegardes régulières avant synchronisation

🐛 Dépannage

Les produits ne s'importent pas

  • Vérifier que WooCommerce est actif
  • Vérifier la connexion à l'API (tokens valides)
  • Consulter les logs d'erreur WordPress
  • Vérifier que l'extension cURL est activée

Les images ne s'affichent pas

  • Vérifier les permissions d'écriture dans wp-content/uploads/
  • Vérifier que les URLs d'images sont accessibles
  • Consulter les logs pour les erreurs de téléchargement

Les commandes ne sont pas envoyées

  • Vérifier que le hook woocommerce_thankyou fonctionne
  • Vérifier les logs d'erreur pour les échecs d'API
  • Tester la connexion à l'endpoint pushOrder.php
  • Vérifier le format JSON envoyé

📝 Changelog

Version 1.3.6

  • Synchronisation automatique des produits à l'activation
  • Import des catégories avec images
  • Gestion des options produits (groupes d'attributs)
  • Envoi automatique des commandes vers l'API
  • Shortcode pour affichage front-end
  • Vérification des doublons
  • Limite de 20 produits à l'import

👤 Auteur

Khadija HR


📄 Licence

Ce plugin est distribué sous licence GPLv2 ou ultérieure.

Vous êtes libre de :

  • Utiliser ce plugin commercialement ou non
  • Modifier le code selon vos besoins
  • Distribuer le plugin modifié

🤝 Contribution

Les contributions sont les bienvenues ! Pour contribuer :

  1. Fork le projet
  2. Créer une branche pour votre fonctionnalité
  3. Commiter vos changements
  4. Pousser vers la branche
  5. Ouvrir une Pull Request

🔗 Ressources


📞 Support

Pour toute question ou problème :

  • Ouvrir une issue sur GitHub
  • Consulter la documentation WordPress
  • Vérifier les logs d'erreur WordPress
  • Contacter le support La Caisse via macaisse.ma

Développé avec ❤️ pour Khadija Harmouche