LNK Stock et emplacements, le stock de chaque entrepôt et l'emplacement de chaque produit
Votre marchandise est dans deux entrepôts et trois agences, et PrestaShop ne connaît qu'un chiffre par produit. LNK Stock et emplacements tient le stock de chaque lieu, et dans chaque lieu l'emplacement exact de chaque produit : allée B, travée 12, étage 3. Le stock de PrestaShop devient la somme de vos lieux : la boutique, le panier et les commandes continuent de le lire comme avant.
- Version 1.1.0 · PrestaShop 1.7.6 à 8.x
- Version 1.9.0 · PrestaShop 9
- PrestaShop 1.7.6 à 9.x
- PHP 7.1 à 8.4
- Aucun override
Captures d'écran
Points clés
- Stock par entrepôt, agence ou dépôt, une boutique par lieu.
- Emplacements de stockage sur mesure, créés d'un coup dans l'ordre de passage.
- Plusieurs emplacements par produit et par lieu : principal et réserves.
- Recherche de ce qui est rangé à une adresse.
- Stock de PrestaShop tenu comme la somme des lieux, mouvements de stock natifs.
- L'ERP fait foi : webservice ou base, jamais écrasé.
- Commandes réparties par zone de livraison, un colis par lieu, suivi de chaque colis.
- Retrait en agence, avec code de retrait par e-mail.
- Disponibilité par agence sur la fiche produit, « Mon agence » du client, sans prix ni quantité exacte.
- API pour les ERP par le webservice natif, droits par clé et limites de débit.
- Import CSV en deux temps, import programmé depuis une adresse.
- Liste de préparation dans l'ordre de passage, étiquettes avec code-barres.
- Journal complet de chaque changement.
- Garde de l'ancienne gestion avancée des stocks de PrestaShop 1.6.
- Désinstallation sans toucher au stock.
- Multiboutique, français, anglais et arabe (de droite à gauche).
- PrestaShop 1.7.6 à 9, sans override, 0 octet en boutique.
Gérer plusieurs entrepôts dans PrestaShop
Créez vos lieux : entrepôts, agences, dépôts, chacun avec son nom en français, en anglais et en arabe, son adresse, son téléphone et ses horaires. Sur la fiche de chaque produit, un onglet montre le stock de chaque lieu, à côté du stock de PrestaShop. Pour un produit à déclinaisons, chaque déclinaison a sa répartition, et PrestaShop garde le total du produit.
Des emplacements de stockage à votre façon
Chaque lieu a son modèle d'adresse. Vous choisissez et ordonnez les parties : zone, allée, travée, étage, position, case, ou une partie à votre nom ; chacune en numéros ou en lettres, avec sa plage et son séparateur. Allées A à H, travées 01 à 20 et étages 1 à 6 donnent A-01-1 à H-20-6 : les 960 emplacements sont créés d'un coup, dans l'ordre de passage. Un produit peut être rangé à plusieurs endroits d'un même lieu : un emplacement principal, puis des réserves. La recherche « qu'est-ce qui est rangé en B-12 ? » liste le contenu des emplacements, et le champ natif « Emplacement » de PrestaShop reçoit l'emplacement principal, pour vos documents et vos autres modules.
Votre ERP fait foi
Si votre ERP écrit le stock dans PrestaShop, par le webservice ou directement en base, le module ne l'écrase jamais. L'écart est repris dans le lieu par défaut et noté au journal : aussitôt pour le webservice, la fiche produit et la page Stocks ; à l'ouverture de la fiche, ou d'un clic sur « Vérifier les écarts maintenant », pour une écriture directe en base. Une fiche ouverte avant le passage de l'ERP est refusée à l'enregistrement : rien n'est écrasé, il suffit de recharger.
Une commande, plusieurs colis
Une commande qui part de deux entrepôts reste une seule commande PrestaShop : un paiement, une facture, avec un colis par lieu. Chaque ligne est prise d'abord dans les lieux qui desservent la zone de livraison du client. Sur la page de la commande, chaque colis a son bouton « Marquer comme expédié » et son numéro de suivi ; le client reçoit un e-mail pour chaque colis et suit chacun depuis son compte. Au moment de commander, il peut préférer un seul colis, même si c'est plus long.
Retrait en agence
Ouvrez les lieux de votre choix au retrait, avec une note comme « Prêt demain dès 7 h ». Le transporteur « Retrait sur place » les propose au moment de commander, et dit au client si tout est disponible dans le lieu choisi. Quand la commande est prête, le client reçoit un e-mail avec son code de retrait. Vous pouvez aussi ajouter un supplément de port pour chaque colis en plus.
La disponibilité dans chaque agence
Sur la fiche produit, vos clients voient où le produit est disponible : « En stock », « Plus que 3 » ou « Indisponible ici », agence par agence, pour la déclinaison choisie. Ils choisissent « Mon agence », qui passe en premier et leur est proposée au retrait. Aucune quantité exacte au-delà de votre seuil, aucun prix, aucun fichier chargé : votre thème habille le bloc.
Une API pour votre ERP
Votre ERP envoie le stock par lieu et par emplacement par le webservice de PrestaShop, avec une clé dont vous choisissez les droits. Chaque écriture passe par les mêmes contrôles qu'au back-office ; un ERP qui s'emballe est freiné sans jamais saturer la boutique.
Import CSV et préparation des commandes
Importez votre stock par lieu et par emplacement depuis un fichier CSV : le module lit le fichier, montre chaque ligne refusée avec sa raison, et n'écrit rien avant votre accord. Le même fichier peut être lu tout seul à une adresse de votre ERP ou de votre fournisseur, par une tâche programmée. Pour préparer les commandes, imprimez la liste d'un lieu dans l'ordre de passage des emplacements, et les étiquettes de vos emplacements avec leur code-barres.
Un journal de chaque mouvement
Chaque changement est noté : qui (employé, import, ERP, tâche programmée, modification faite dans PrestaShop), le lieu et l'emplacement, la quantité avant et après, le stock de PrestaShop avant et après. Quand c'est possible, PrestaShop écrit aussi un mouvement de stock natif, au motif « Ajustement LNK Stock », visible dans les mouvements de la page Stocks.
Une boutique venue de PrestaShop 1.6
La gestion avancée des stocks de PrestaShop 1.6 a disparu des écrans en 1.7, mais une boutique migrée peut l'avoir gardée active en base, et PrestaShop 1.7 la lit encore par endroits. Le module le détecte, l'explique, et propose de la désactiver d'un clic. Il ne touche à rien sans ce clic.
Sûr par construction
Chaque contrôle est fait avant d'écrire, puis tout est écrit d'un bloc : en cas d'échec, la boutique reste exactement comme avant. En contexte « Toutes les boutiques », le module n'écrit rien. À la désinstallation, le stock de PrestaShop garde la dernière somme : rien n'est remis à zéro. Prouvé au banc sur PrestaShop 1.7.6 et 9.2.
Léger et rapide
0 octet de CSS et de JavaScript chargé sur le front, aucune requête ajoutée. En boutique, le module n'affiche que le message des colis au tunnel et la liste des colis du compte client, quand une commande part de plusieurs lieux, avec les styles de votre thème.
Compatibilité PrestaShop 1.7.6, 8 et 9
Deux versions du module, une par génération : la 1.1 pour PrestaShop 1.7.6 à 8.x, la 1.9 pour PrestaShop 9, avec une page sous Catalogue et un onglet sur la fiche produit. Multiboutique : des lieux par boutique, et le stock partagé d'un groupe de boutiques. Aucun override, aucun appel externe.
Questions fréquentes
Comment gérer le stock par entrepôt ou par agence dans PrestaShop ?
Créez vos lieux (entrepôts, agences, dépôts) sur la page LNK Stock et emplacements, sous Catalogue. Puis, sur la fiche de chaque produit, répartissez son stock entre les lieux. Le stock de PrestaShop devient la somme des lieux : la boutique, le panier et les commandes continuent de le lire comme avant. Quand le module commence à suivre un produit, il fait d'abord recompter par PrestaShop ce que les commandes en cours réservent : le stock repris est le stock réel, et le journal ne montre aucun écart qui n'en est pas un.
Comment nommer les emplacements de mon entrepôt ?
Chaque lieu a son modèle d'adresse : vous choisissez et ordonnez les parties (zone, allée, travée, étage, position, case, ou une partie à votre nom), chacune en numéros ou en lettres, avec sa plage et son séparateur. Par exemple allées A à H, travées 01 à 20, étages 1 à 6 donnent A-01-1 à H-20-6. Tous les emplacements sont créés d'un coup, dans l'ordre de passage.
Un produit peut-il être rangé à plusieurs endroits ?
Oui : dans chaque lieu, un emplacement principal et autant de réserves que nécessaire, chacun avec sa quantité. La recherche « qu'est-ce qui est rangé en B-12 ? » liste le contenu des emplacements.
Mon ERP écrit le stock dans PrestaShop. Le module va-t-il l'écraser ?
Non. L'ERP, ou PrestaShop, fait foi. Une quantité changée par le webservice, directement en base, sur la fiche produit ou sur la page Stocks de PrestaShop est reprise dans le lieu par défaut et notée au journal ; le module ne réécrit jamais le stock de PrestaShop pour la corriger. Si une fiche était ouverte avant ce changement, son enregistrement est refusé : il suffit de recharger.
Les mouvements de stock de PrestaShop sont-ils conservés ?
Oui. Chaque changement fait depuis la fiche produit écrit un mouvement de stock natif, au motif « Ajustement LNK Stock », visible dans les mouvements de la page Stocks. Quand PrestaShop ne peut pas en écrire (import, tâche programmée), le journal du module fait foi : qui, quand, avant, après.
Ma boutique vient de PrestaShop 1.6 : le module signale la « gestion avancée des stocks ». Que faire ?
PrestaShop 1.6 avait une gestion avancée des stocks par entrepôt. Elle a disparu des écrans en 1.7, mais une boutique migrée peut l'avoir gardée active en base, et PrestaShop 1.7 la lit encore par endroits (découpage du panier par entrepôt). Le module ne répartit rien tant qu'elle est active. Le bouton « Désactiver la gestion avancée des stocks de PrestaShop 1.6 », sur la page du module, la désactive pour toutes les boutiques ; vos quantités ne changent pas. Rien n'est fait sans ce clic.
D'où part une commande quand j'ai plusieurs entrepôts ?
Chaque ligne est prise d'abord dans les lieux qui desservent la zone de livraison du client (le lieu par défaut en tête), puis, si ces lieux n'ont pas assez, complétée depuis les autres lieux. Vous déclarez les zones desservies sur chaque lieu ; sans zone déclarée, tous les lieux servent toutes les zones. La page de la commande montre de quel lieu part chaque ligne. La marchandise sort de ses lieux quand la commande passe à « Expédié », et y revient si la commande est annulée après expédition.
Une commande qui part de deux entrepôts arrive-t-elle en deux colis ?
Oui, et elle reste une seule commande PrestaShop : un paiement, une facture. Sur la page de la commande, chaque colis a sa liste, son bouton « Marquer comme expédié » et son numéro de suivi. Le client reçoit un e-mail pour chaque colis et voit leur suivi dans son compte. La commande passe à « Expédiée en partie », puis à « Expédié » avec le dernier colis. Au moment de commander, le client peut demander « un seul colis, même si c'est plus long » : tout part alors d'un seul lieu. Les frais de port restent ceux de PrestaShop, une fois par commande.
Un colis m'est retourné : comment le remettre en stock ?
Sur la page de la commande, « Colis retourné : remettre en stock » remet sa marchandise dans le lieu d'où il est parti et dans le stock de PrestaShop, avec un mouvement « Retour produit ». N'annulez pas ensuite la commande : PrestaShop remettrait la même marchandise en stock une seconde fois. Pour rembourser, faites un avoir.
Mes clients peuvent-ils venir retirer leur commande à l'agence ?
Oui. Cochez « Les clients peuvent retirer leur commande ici » sur les lieux concernés, avec une note comme « Prêt demain dès 7 h ». Le transporteur « Retrait sur place », créé par le module et gratuit par défaut, propose alors ces lieux au moment de commander ; le client voit si tout est disponible dans le lieu choisi. La commande est prise d'abord dans ce lieu. Passez-la à « Prête à retirer » : le client reçoit un e-mail avec son code de retrait ; puis à « Retirée » quand il est passé.
Puis-je faire payer le port par colis ?
Oui, avec le réglage « Supplément de port par colis en plus » : un montant HT ajouté au port pour chaque colis au-delà du premier, jamais sur le retrait. Il s'appuie sur un crochet de PrestaShop 1.7.7 et suivants : en 1.7.6, le port reste celui que calcule PrestaShop.
Mon ERP peut-il envoyer le stock par lieu et par emplacement ?
Oui, par le webservice de PrestaShop, avec une clé dont vous choisissez les droits. Le module y ajoute ses ressources : lieux, emplacements, stock par lieu et par emplacement, journal et colis. Chaque écriture passe par les mêmes contrôles qu'au back-office, et le journal la note au nom de la clé. Une écriture trop grosse, ou un ERP qui envoie trop d'appels par minute, est refusée sans rien écrire : la boutique reste disponible. Sur PrestaShop 9, l'Admin API offre aussi ces données, avec des portées de lecture et d'écriture ; elle demande HTTPS et n'est pas disponible en multiboutique (limite de PrestaShop 9). Le guide pour votre intégrateur est dans docs/API.md.
Puis-je importer mon stock depuis un fichier ?
Oui, onglet « Import » : un fichier CSV avec une ligne par emplacement (référence, lieu, emplacement, quantité), dont le modèle se télécharge sur la même page. La référence peut être celle du produit, de la déclinaison ou l'EAN ; le lieu, son identifiant ou son nom. Le module lit d'abord le fichier et montre chaque ligne refusée avec sa raison ; rien n'est écrit avant que vous cliquiez sur « Écrire les lignes valides ». Pour un produit, les lignes d'un lieu remplacent ce que ce lieu contenait ; les autres lieux gardent les leurs.
Si votre ERP ou votre fournisseur dépose ce fichier à une adresse (http, https, ftp ou ftps), saisissez-la dans les réglages avancés : la tâche cron de votre hébergeur appelle l'adresse indiquée dans l'onglet « Import », par exemple toutes les heures, et les lignes valides sont écrites. Le dernier passage et son résultat s'affichent sur la page.
Le module m'aide-t-il à préparer les commandes ?
Oui. Dans l'onglet « Emplacements », la « Liste de préparation » d'un lieu donne ce que les commandes attendent encore, produit par produit, dans l'ordre de passage des emplacements, avec une case à cocher par ligne. Les « Étiquettes des emplacements affichés » s'impriment trois par ligne sur A4, avec un code-barres Code 128 lu par toutes les douchettes (désactivable dans les réglages).
Et en multiboutique ?
Chaque lieu appartient à une boutique. Si vos boutiques partagent leur stock (groupe de boutiques), le stock partagé est la somme des lieux de toutes ces boutiques. Le stock s'écrit boutique par boutique : en contexte « Toutes les boutiques », le module n'écrit rien.
Que se passe-t-il si je désinstalle le module ?
Le stock de PrestaShop garde la dernière somme écrite : rien n'est remis à zéro. Les lieux, les emplacements et le journal du module sont supprimés. Le transporteur « Retrait sur place » et les états de commande du module sont retirés des listes, mais restent lisibles dans les commandes passées ; ils reviennent tels quels si vous réinstallez le module.
Le module affiche-t-il quelque chose en boutique ?
Oui, là où c'est utile, avec les styles de votre thème et sans charger aucun fichier :
- sur la fiche produit, sous le bouton d'ajout au panier, la disponibilité dans chaque agence : « En stock », « Plus que 3 » ou « Indisponible ici ». Jamais de quantité au-delà du seuil (5 par défaut, réglable), jamais de prix. Elle suit la déclinaison choisie ;
- le client choisit « Mon agence » : elle passe en premier, reste gardée pour son compte, et elle est proposée d'office au retrait sur place ;
- le choix du lieu de retrait au tunnel, le message des colis quand une commande part de plusieurs lieux, les colis ou le retrait dans le compte client.
Votre thème peut aussi afficher une ligne de disponibilité dans les listes de produits et le choix de l'agence dans l'en-tête : le guide pour votre intégrateur est dans docs/THEME-CONTRACT.md. Un réglage coupe l'affichage sur la fiche.
Journal des versions
-
Version 1.9.0 PrestaShop 9
Nouveautés
- Lieux de stock (entrepôt, agence, dépôt), une boutique chacun : nom en trois langues, adresse, téléphone et horaires repliés.
- Emplacements de rangement : modèle d'adresse par lieu (zone, allée, travée, étage, position, case ou partie à votre nom, en numéros ou en lettres, avec plage et séparateur), création d'un coup dans l'ordre de passage, ajout à la main, recherche de ce qui est rangé à une adresse, suppression des emplacements vides.
- Onglet de la fiche produit : stock du produit ou de chaque déclinaison par lieu et par emplacement, emplacement principal puis réserves.
- Stock de PrestaShop tenu comme la somme des lieux, écrit par l'API native avec un mouvement de stock « Ajustement LNK Stock » quand PrestaShop peut en écrire un ; champ natif « Emplacement » rempli avec l'emplacement principal du lieu par défaut.
- L'ERP ou PrestaShop fait foi : une quantité changée sur la fiche, la page Stocks, par le webservice ou en SQL est reprise dans le lieu par défaut, jamais écrasée ; bouton « Vérifier les écarts maintenant » ; fiche ouverte avant un changement refusée à l'enregistrement.
- Début du suivi d'un produit : réservations des commandes en cours recomptées par PrestaShop d'abord, aucun faux écart au journal.
- Contrôles avant toute écriture et transaction unique ; rien n'est écrit en contexte « Toutes les boutiques ».
- Journal de chaque changement (qui, avant et après, stock PrestaShop, mouvement natif ou non).
- Commandes : chaque ligne est prise dans les lieux qui desservent la zone de livraison (le lieu par défaut d'abord), puis complétée depuis les autres lieux si besoin (réglable) ; la marchandise sort de ses lieux à l'expédition et y revient si la commande est annulée après expédition ; bloc « Lieux de cette commande » sur la page de la commande ; quantité réservée par lieu sur la fiche.
- Zones de livraison desservies par chaque lieu.
- Colis : une commande reste une seule commande PrestaShop, avec un colis par lieu ; sur la page de la commande, chaque colis avec ses lignes, « Marquer comme expédié » avec son numéro de suivi, e-mail au client pour chaque colis (fr, en, ar), état « Expédiée en partie » puis « Expédié » avec le dernier colis ; « Colis retourné : remettre en stock » remet la marchandise dans son lieu et dans le stock de PrestaShop.
- Compte client : le détail de la commande montre chaque colis, son état et son lien de suivi.
- Tunnel de commande : « Votre commande partira en N colis » et le choix « Je préfère un seul colis, même si c'est plus long ».
- Retrait sur place : transporteur « Retrait sur place » créé à l'installation (gratuit par défaut, réglable comme tout transporteur, retiré à la désinstallation) ; lieux ouverts au retrait avec leur note (« prêt demain dès 7 h ») ; choix du lieu au tunnel, avec « Tout est disponible ici » ou « Une partie vient d'abord d'un autre lieu » ; commande prise d'abord dans le lieu de retrait ; états « En préparation pour le retrait », « Prête à retirer » (e-mail au client avec un code de retrait, fr, en, ar) et « Retirée ».
- API pour les ERP, par le webservice natif de PrestaShop (droits par clé) : lieux, emplacements, stock par lieu et par emplacement (écrit uniquement par l'écriture centrale du module, source « ERP » et nom de la clé au journal), journal, colis (expédition avec suivi) ; taille maximale par écriture et nombre d'écritures par minute et par clé ; guide docs/API.md.
- Admin API de PrestaShop 9 : lieux, stock par lieu et par emplacement (lecture et écriture par l'écriture centrale), journal, colis (expédition avec suivi), portées lnk_stock_read et lnk_stock_write, mêmes limites (413, 429).
- Import d'un fichier CSV (référence du produit, de la déclinaison ou EAN ; lieu par identifiant ou par nom ; emplacement ; quantité) en deux temps : rapport ligne par ligne, puis écriture des lignes valides par l'écriture centrale du module, source « Import » au journal ; modèle à télécharger ; UTF-8 ou Windows-1252, séparateur point-virgule, virgule ou tabulation, 20 Mo et 50 000 lignes au plus.
- Import programmé : le fichier est lu à une adresse http, https, ftp ou ftps (réglage avancé) par une tâche cron qui appelle l'adresse du module avec son jeton ; dernier passage affiché ; source « Tâche programmée » au journal.
- Liste de préparation d'un lieu, à imprimer : ce que les commandes attendent encore, produit par produit, dans l'ordre de passage des emplacements.
- Étiquettes des emplacements, à imprimer, avec un code-barres Code 128 (réglage « Code-barres sur les étiquettes d'emplacement »).
- Retrait sur place : un lieu refusé à la validation (fermé au retrait, ou aucun lieu) est signalé au client dans le bloc du lieu, dans le tunnel en étapes comme dans la commande en une page de PrestaShop 9 (ps_onepagecheckout).
- Boutique : disponibilité de chaque produit ou déclinaison par agence sous le bouton d'ajout au panier (réglage, actif par défaut ; « En stock », « Plus que N » à partir d'un seuil réglable, « Indisponible ici », réservations déduites, jamais de prix), redessinée au changement de déclinaison ; agence du client gardée pour son compte ou le visiteur, en premier dans le bloc, proposée d'office au retrait ; crochets displayLnkStockAvailability et displayLnkStockListing, widget lnk_stock (modes availability, listing, agency) avec la garde du contrat de thème (docs/THEME-CONTRACT.md) ; aucun fichier chargé en boutique.
- Supplément de port par colis en plus (réglage, HT, PrestaShop 1.7.7 et suivants), jamais sur le retrait.
- Garde de l'ancienne gestion avancée des stocks de PrestaShop 1.6 : alerte et bouton pour la couper, jamais de modification silencieuse.
- Désinstallation sans toucher au stock de PrestaShop.
- Multiboutique : lieux par boutique, stock partagé d'un groupe de boutiques, réglages par boutique, par groupe ou communs.
- Français, anglais et arabe (de droite à gauche).
-
Version 1.1.0 PrestaShop 1.7.6 à 8.x
Nouveautés
- Lieux de stock (entrepôt, agence, dépôt), une boutique chacun : nom en trois langues, adresse, téléphone et horaires repliés.
- Emplacements de rangement : modèle d'adresse par lieu (zone, allée, travée, étage, position, case ou partie à votre nom, en numéros ou en lettres, avec plage et séparateur), création d'un coup dans l'ordre de passage, ajout à la main, recherche de ce qui est rangé à une adresse, suppression des emplacements vides.
- Onglet de la fiche produit : stock du produit ou de chaque déclinaison par lieu et par emplacement, emplacement principal puis réserves.
- Stock de PrestaShop tenu comme la somme des lieux, écrit par l'API native avec un mouvement de stock « Ajustement LNK Stock » quand PrestaShop peut en écrire un ; champ natif « Emplacement » rempli avec l'emplacement principal du lieu par défaut.
- L'ERP ou PrestaShop fait foi : une quantité changée sur la fiche, la page Stocks, par le webservice ou en SQL est reprise dans le lieu par défaut, jamais écrasée ; bouton « Vérifier les écarts maintenant » ; fiche ouverte avant un changement refusée à l'enregistrement.
- Début du suivi d'un produit : réservations des commandes en cours recomptées par PrestaShop d'abord, aucun faux écart au journal.
- Contrôles avant toute écriture et transaction unique ; rien n'est écrit en contexte « Toutes les boutiques ».
- Journal de chaque changement (qui, avant et après, stock PrestaShop, mouvement natif ou non).
- Commandes : chaque ligne est prise dans les lieux qui desservent la zone de livraison (le lieu par défaut d'abord), puis complétée depuis les autres lieux si besoin (réglable) ; la marchandise sort de ses lieux à l'expédition et y revient si la commande est annulée après expédition ; bloc « Lieux de cette commande » sur la page de la commande ; quantité réservée par lieu sur la fiche.
- Zones de livraison desservies par chaque lieu.
- Colis : une commande reste une seule commande PrestaShop, avec un colis par lieu ; sur la page de la commande, chaque colis avec ses lignes, « Marquer comme expédié » avec son numéro de suivi, e-mail au client pour chaque colis (fr, en, ar), état « Expédiée en partie » puis « Expédié » avec le dernier colis ; « Colis retourné : remettre en stock » remet la marchandise dans son lieu et dans le stock de PrestaShop.
- Compte client : le détail de la commande montre chaque colis, son état et son lien de suivi.
- Tunnel de commande : « Votre commande partira en N colis » et le choix « Je préfère un seul colis, même si c'est plus long ».
- Retrait sur place : transporteur « Retrait sur place » créé à l'installation (gratuit par défaut, réglable comme tout transporteur, retiré à la désinstallation) ; lieux ouverts au retrait avec leur note (« prêt demain dès 7 h ») ; choix du lieu au tunnel, avec « Tout est disponible ici » ou « Une partie vient d'abord d'un autre lieu » ; commande prise d'abord dans le lieu de retrait ; états « En préparation pour le retrait », « Prête à retirer » (e-mail au client avec un code de retrait, fr, en, ar) et « Retirée ».
- API pour les ERP, par le webservice natif de PrestaShop (droits par clé) : lieux, emplacements, stock par lieu et par emplacement (écrit uniquement par l'écriture centrale du module, source « ERP » et nom de la clé au journal), journal, colis (expédition avec suivi) ; taille maximale par écriture et nombre d'écritures par minute et par clé ; guide docs/API.md.
- Import d'un fichier CSV (référence du produit, de la déclinaison ou EAN ; lieu par identifiant ou par nom ; emplacement ; quantité) en deux temps : rapport ligne par ligne, puis écriture des lignes valides par l'écriture centrale du module, source « Import » au journal ; modèle à télécharger ; UTF-8 ou Windows-1252, séparateur point-virgule, virgule ou tabulation, 20 Mo et 50 000 lignes au plus.
- Import programmé : le fichier est lu à une adresse http, https, ftp ou ftps (réglage avancé) par une tâche cron qui appelle l'adresse du module avec son jeton ; dernier passage affiché ; source « Tâche programmée » au journal.
- Liste de préparation d'un lieu, à imprimer : ce que les commandes attendent encore, produit par produit, dans l'ordre de passage des emplacements.
- Étiquettes des emplacements, à imprimer, avec un code-barres Code 128 (réglage « Code-barres sur les étiquettes d'emplacement »).
- Retrait sur place : un lieu refusé à la validation (fermé au retrait, ou aucun lieu) est signalé au client dans le bloc du lieu.
- Boutique : disponibilité de chaque produit ou déclinaison par agence sous le bouton d'ajout au panier (réglage, actif par défaut ; « En stock », « Plus que N » à partir d'un seuil réglable, « Indisponible ici », réservations déduites, jamais de prix), redessinée au changement de déclinaison ; agence du client gardée pour son compte ou le visiteur, en premier dans le bloc, proposée d'office au retrait ; crochets displayLnkStockAvailability et displayLnkStockListing, widget lnk_stock (modes availability, listing, agency) avec la garde du contrat de thème (docs/THEME-CONTRACT.md) ; aucun fichier chargé en boutique.
- Supplément de port par colis en plus (réglage, HT, PrestaShop 1.7.7 et suivants), jamais sur le retrait.
- Garde de l'ancienne gestion avancée des stocks de PrestaShop 1.6 : alerte et bouton pour la couper, jamais de modification silencieuse.
- Désinstallation sans toucher au stock de PrestaShop.
- Multiboutique : lieux par boutique, stock partagé d'un groupe de boutiques, réglages par boutique, par groupe ou communs.
- Français, anglais et arabe (de droite à gauche).