Jump to content

bedford

Members
  • Posts

    34
  • Joined

  • Last visited

Everything posted by bedford

  1. Hi D. Tengler, I want a simple table like the image below, without calling a view but directly from PHP code. The code is full working on another CMS, I want to use it on my admin pane and I don't care if it doesn't look "modern", I only want it functional and ready to import, so I only have to update the queries to access prestashop's database model. I can't find a way to do such a "simple" model, all tutorial I've found do uses the MVC and most of them don't even work with 1.7 Thank you
  2. Actually I tried for 2 days to create a module, couldn't find a way to simply run a PHP file inside the module and show on right pane the result. I'm probably too bad at programming
  3. Hi joseantgv, thank you for your help. So far I could create a menu but could not create the module to include or execute my scripts on the right pane of prestashop's backoffice
  4. Hi, I'm still learning Prestashop (1.7.6.7). I've some proven PHP/MySQL/JQuery scripts I'm trying to import from an old OsCommerce site. It would be a huge work to make them compatible with MVC, so my idea is to show them in backoffice right pane and use the Prestashop functions. I've been able with a public function getContent(){include('views/templates/admin/myscript.php');} line to show on backoffice but the content is 100% of the page and shows partly under the backoffice left menu. Most important, they are daily use modules, I really need a direct link from left menu in backoffice and not from module management menu (too long). Could someone help me with this please ? Thank you
  5. Bonjour, j'essaye depuis 2 jours de créer un module backoffice complet (pas un override, pas de frontoffice), mais sans succès. J'ai parcouru des tutos, le forum, les questions/réponses sur d'autres sites... Soit je me rends compte que les articles sont pas faits pour la bonne version, soit c'est pas fonctionnel, soit je suis nul (le plus probable...) Je me suis dit que je pouvais partir d'un module 1.7 complet et le modifier mais ça n'a pas fonctionné (https://github.com/nenes25/prestashop_samplemodule et d'autres dont je n'ai pas le liens) . J'ai essayé de trouver un module gratuit sur les addons pour l'étudier et voir comment c'est fait mais je n'ai trouvé aucun module gratuit affichant des données en backoffice. Ce que j'essaye de faire, c'est un module dans le backoffice qui me permette d'afficher un tableau avec des données provenant de deux tables personnelles de la BDD avec une jointure. Je reprends ce tableau d'un site OsCommerce mais j'aimerais qu'il fonctionne dans Prestashop car c'est un tableau qui doit me permettre de créer des produits et j'aimerais ensuite utiliser les fonctions prestashop. Le générateur Prestashop (https://validator.prestashop.com/generator) a permis de créer le module mais ça s'arrête là...impossible d'aller plus loin pour faire fonctionner quoi que ce soit. J'arrive pas à afficher une page dans le backoffice, même pas un simple texte. La documentation est un mix de plusieurs versions, avec des informations incomplètes pour ceux qui démarrent... En plus des fichiers index.php de chaque répertoire, j'ai les fichiers suivants: modules/monmodule/monmodule.php modules/monmodule/controllers/MonModuleController.php modules/monmodule/classes/Monmodule.php modules/monmodule/sql/install.php modules/monmodule/sql/uninstall.php Par contre j'ai au moins réussi à avoir un liens dans le menu de gauche. Où pourrais-je trouver un module en pur backoffice me permettant d'afficher les données liées de 2 tables de la bdd ? Une fois que j'ai ça, je pense que j'arrive à m'en sortir... Merci pour votre aide.
  6. Bonjour, Sur prestashop 1.7.6.7 j'aimerais ajouter une colonne dans les détails de commande en frontend sans toucher au template de base pour l'url suivante: index.php?controller=order-detail&id_order=xxx Le fichier source est /themes/classic/templates/customer/_partials/order-detail-no-return.tpl , je l'ai copié dans /override/controllers/front/templates/customer/_partials/order-detail-no-return.tpl mais la modification sur le nouveau fichier n'a aucun effet, même après suppression des caches. Peut-on en fait "overrider" un fichier template ? Si oui quel serait le chemin correct ? Le but est d'avoir l'override dans tous les templates, indépendamment de celui choisi. Merci pour votre aide
  7. Hi Jezza, in my store I don't reserve items for unpaid orders. For me the stock must be decreased when the payment is done, not when the order is done. This is because many people and some concurrent make orders and never pay, so the items aren't on available for other customers but in fact they are. Unfortunately Prestashop decreases stock when you make order, not when you pay it. So I checked around and found some weird things in code (redundant information on database and/or an unused field). So I needed help to understand what are those fields for and why the information is recorded in different places. Still haven't found the information. In backend there is a feature to restock unpaid orders after X days, so the stock number is set back to initial value, but this is not the way I want it to work.
  8. Merci à vous, j'ai réussi à mettre XDebug, faut que j'apprenne à le configurer et surtout à comprendre ce qui est généré
  9. Mes concurrents avaient du temps à perdre et "retiraient" les articles du stock pendant plusieurs jours par ce procédé. Ils passaient commande et les articles étaient retirés du stock pendant un moment. J'aimerais garder ce moyen car il y a encore pas mal de clients qui l'utilisent et ne veulent pas de paiements en ligne. Au fait je n'accepte pas de chèque car je suis en Suisse, mais les paiements par virement bancaire ou postal sont encore très fréquents ici, je ne peux donc pas désactiver ce mode de paiement. En plus de 10 ans de business, ça m'est peut-être arrivé 3-4 fois de vendre à quelqu'un d'autre un article acheté par virement bancaire et dans mes conditions, c'est bien l'ordre d'arrivée du paiement qui fait foi. La proportion de gens qui ne paient pas par rapport à ceux qui paient ne me permet actuellement pas d'envisager un autre système mais c'est vrai qu'au moment de mettre en place le site initial, on y a longuement réfléchi et c'est ainsi qu'on a eu le moins de soucis pendant 10 ans.
  10. Bonjour, existe-t-il un moyen de loguer dans un fichier externe l'appel à chaque fonction, avec chemin complet du fichier appelé ? J'arrive à le faire pour les requêtes SQL, mais je ne trouve pas comment le faire pour chaque appel de fonction. J'aimerais pouvoir loguer la suite des fonctions appelées en parallèle des requêtes SQL afin de comprendre le cheminement du code et pouvoir ainsi mieux cibler mes modifications ou la recherche des bugs. Merci d'avance pour votre aide.
  11. Bonjour, j'essaye en vain de bloquer le changement de stock jusqu'à ce qu'une commande soit réellement payée. En effet si le paiement est par chèque ou par banque, l'article est réservé pendant quelques jours et si la commande n'est pas payée (dans 70% des cas), l'article n'est pas disponible à la vente pour d'autres clients (1-2 articles en stock pour chaque référence). J'ai parcouru le code en long et en large (module de paiement,classe stock etc...) et j'ai pu bloquer le changement de stock_available.physical_quantity et stock_available.quantity mais le code continue de décrémenter la valeur de stock_available.quantity. comment bloquer ce changement ? Question bonus pour la table stock_available: physical_quantity = quantity + reserved_quantity, pourquoi une information redondante dans la bdd ou n'aurais-je pas compris l'utilité de ces champs ? Merci pour toute aide
  12. Sur Firefox, j'ai cleané tous les cookies, le cache, les mots de passe enregistrés et finalement je n'ai plus l'erreur. Difficile de dire ce qui a pu se passer (un cookie ou autre) mais dans mon cas je n'ai plus d'erreur. En espérant que ça puisse t'aider.
  13. Hi, I'm looking to a way to only decrease stock when the order is really paid (too many customers reserve some items and they aren't available for buying by other in the meantime, and most orders aren't paid). So as far as I understand the way it works, I've updated the function updatePhysicalProductQuantity in StockManager to check if order is paid before executing code: public function updatePhysicalProductQuantity($shopId, $errorState, $cancellationState, $idProduct = null, $idOrder = null) { //GG START 16/4/20 only deduct when status changes from unpaid to paid if($idOrder == null) return; $order = new Order((int) $idOrder); if($order->hasBeenPaid()){ //GG END $this->updateReservedProductQuantity($shopId, $errorState, $cancellationState, $idProduct, $idOrder); $updatePhysicalQuantityQuery = ' UPDATE {table_prefix}stock_available sa SET sa.physical_quantity = sa.quantity + sa.reserved_quantity WHERE sa.id_shop = ' . (int) $shopId . ' '; if ($idProduct) { $updatePhysicalQuantityQuery .= ' AND sa.id_product = ' . (int) $idProduct; } $updatePhysicalQuantityQuery = str_replace('{table_prefix}', _DB_PREFIX_, $updatePhysicalQuantityQuery); return Db::getInstance()->execute($updatePhysicalQuantityQuery); } //GG 16/4/20 } When I make an order, the field stock_available.physical_quantity isn't decreased nor the stock_available.reserved_quantity is increased, but I see the field stock_available.quantity is decreased. Could someone tell me what is the difference between stock_available.physical_quantity and stock_available.quantity ? The backend still show full stock quantity as expected since the order hasn't been paid, but what this stock_available.quantity is ? I see in this function that "sa.physical_quantity = sa.quantity + sa.reserved_quantity". But since is't a calculated information, based on 2 fields in the same table, why it is in a database (redundant information) ? Also if somebody could tell me if such kind of information exists somewhere, so I can try to find without asking. Thank you for help !
  14. Je n'ai pas la solution mais j'ai le même problème. Depuis quelques jours ce message dans le backoffice. J'ai la version 1.7.6.4 en local, sur un serveur wamp et également 1 click upgrade et 2 autres modules (dont 1 perso). Comme c'est mon premier prestashop et que je suis en train de développer dessus, je me suis las trop posé la question. Je ne pense pas que ce soit du côté de l'hébergeur mais plus un soucis ps. J'essaye de regarder tout à l'heure si je trouve une solution. Dans tous les cas après 12 années OScommerce, je t'avoue que je n'arrive absolument pas à avoir confiance en ps. J'ai l'impression qu'on essaye de faire joli au détriment de la stabilité...mais c un avis perso
  15. Ok doing module, will return back if not ok. Thanks a lot Sir
  16. I'll have a product which is a group of other products: Example 2 distincts products, chair and office desk, car be purchased separately but also as a grouped product (combined product) at a special discounted price. with 2 physical products I'll have 3 product for sale on my store. If chair is 50.50€ and office desk 150.50€ (but calculated 50.52 and 150.52), will the grouped price be 201 or 201.05 ?
  17. OK thank you for pointing me to this. I'll have grouped products, do you think it's the correct place to do it anyway ?
  18. thank you for quick answer. I want to modify price amount. In fact the price amount in my case is a sort of calculation (provider price, provider currency change, margin). Also for some currencies I've to round to 5 cents (10.00, 10.05, 10.10, etc...) and I think I can do at the same place Thank you for your help
  19. Hi, This is my second module development, I'm trying to override the core function (Context::getContext()->currentLocale->formatPrice(123.45, 'EUR');) I can't find a solution to override core with a module. Can anyone point me where to look at ? In my case I want the price calculated by some rules, no based on value inserted in product's table Thank you for your help.
  20. J'essaye en vain de comprendre la structure même des modules Prestashop. J'ai lu la doc (un mix de PS 1.5, 1.6, 1.7...) j'ai essayé des modules et des tutos que j'ai pu trouver sur le web (la plupart pour 1.6, on ne s'en rend compte qu'après avoir tout essayé en vain)... Je viens du monde OsCommerce, que j'ai upgradé pendant plus de 10 ans ! Pas de POO, pas de framework et j'avoue que ma logique POO est plus que rouillée, mais j'ai d'excellentes notions de PHP/MySQL. J'en viens donc à poster sur le forum car la logique de certaines choses m'échappent. Je voulais en faire un module, afin de ne pas toucher au coeur de PS, mais je ne trouve pas toute l'info, ou seulement par brides, et là je bloque. Après avoir lu la doc PS pour les programmeurs et ne pas y avoir trouvé toutes les réponses, si quelqu'un peut me proposer un site qui explique comment créer un module 1.7 qui touche à l'existant, sans pour autant aller toucher le coeur, je suis preneur. En ce qui me concerne l'état d'avancement de mon module: j'ai réussi à créer une page où je peux enregistrer dans une table de la BDD un texte (multilangue) pour chaque status de produit ("en attente de préparation", "préparé", "backorder"...). Dans la gestion d'une commande, j'ai réussi à ajouter un dropdown pour chaque produit. Ce que j'essaye maintenant c'est de remplir chaque dropdown avec les enregistrements de ma table de la BDD, sans toucher au coeur de PS 1.7.
  21. Up !!! J'ai réussi à ajouter le dropdown dans produt_line.tpl.php mais je ne vois pas où je dois ajouter le champ dans une requête pour qu'elle se remplisse (une table spécifique product_order_status). J'ai déjà rapatrié les status de articles commandés depuis mon OsCommerce et je dois ensuite lier la valeur à l'article commandé. J'aimerais conserver la possibilité d'upgrader prestashop, en évitant des hack qui ne le rendraient pas possible. Merci pour toute aide.
  22. Merci doekia, j'essaye de faire un override de la vue dans mon module mais ça ne prend pas le fichier tpl dans le sous-répertoire de mon module. ça m'inquiète car je vois dans les réponses du forum que les ovveride de template d'admin se font dans le sous-dossier override et pas monmodule/override ! J'ai copié les fichiers /adminXXX/themes/default/template/controllers/orders/view/view.tpl /adminXXX/themes/default/template/controllers/orders/_product_line.tpl dans le répertoire suivant: /modules/monmodule/override/controllers/admin/templates/orders/helpers/view/view.tpl /modules/monmodule/override/controllers/admin/templates/orders/helpers/_product_line.tpl et j'ai modifié le chemin du include dans view.tpl pour qu'il prenne celui de monmodule mais il continue de prendre le template de base de l'admin. EDIT 16:16 Je confirme que l'on peut overrider le template d'admin en mettant le template dans le dossier override: /override/controllers/admin/templates/orders/helpers/view/view.tpl (Remplacer le chemin de _product_line.tpl) /override/controllers/admin/templates/orders/helpers/_product_line.tpl Je n'ai pas trouvé comment faire pour que ce soit fait dans mon module et ça m'intéresse toujours, je laisse donc pour l'instant à pas résolu car pour moi ce n'est pas une solution convenable. En espérant que quelqu'un puisse m'aider à mettre ces templates dans le dossier du module.
  23. Bonjour et bonne année. Je suis en train de créer mon premier module Prestashop 1.7.5.2, qui doit permettre de configurer le status de chaque article dans une commande (par exemple préparé, en rupture de stock, en réapprovisionnement). Je viens du monde OsCommerce, autant dire que la philosophie change grandement et qu'en plus je n'ai jamais travaillé sur Symphony (quoique brièvement avec Zend Framework). J'ai créé la partie permettant de créer ces status dans la bdd, avec le texte pour chaque langue. J'essaye maintenant de rajouter une combobox dans la backend de gestion de chaque commande, dans la liste des articles. J'ai suivi des indications pour les HOOKS trouvées dans la doc ainsi que plusieurs sites mais je n'y arrive pas. Coici une partie du code de la classe: public function install() { return parent::install() && $this->registerHook('displayAdminOrderContentOrder') && $this->_installSql() && $this->_installTab(); } public function hookDisplayAdminOrderContentOrder($params) { foreach ( $params['products'] as &$product ){ $product['current_stock'] .= ' XXX'; } } Première chose que je ne comprends pas: s'il y a plusieurs articles dans la commande, seul le dernier possède les 3 "XXX" après le nombre en stock. Un var_dump à chaque boucle affiche pourtant des XXX pour chaque article. Je pense n'avoir pas utilisé le bon HOOK mais de la liste des HOOKs ça semble pourtant le plus adéquat. Autre chose que je n'ai pas réussi à trouver, c'est comment rajouter une combobox dans cette liste en prenant les infos d'une base de données (j'ai essayé avec order_state->id_order_state,order_state_lang->name avant de créer mes propres tables ) mais je n'ai pas trouvé d'information de comment ajouter un composant dans une liste existante sans devoir tout refaire. Merci pour votre aide.
  24. Ils sont rares sont les clients qui peuvent se contenter d'une version de base d'une solution e-commerce, y compris Prestashop et je crains que tu commenceras à déchanter le jour où ton client décidera de faire évoluer la solution installée. Le retour de manivelle risque de faire très, très mal !!! et du moment que tu as certainement touché au code source de prestashop...j'imagine pas le temps que tu vas passer à installer les mises à jour. Si c'est pour faire tourner une boutique "avec des besoins simples" alors Prestashop n'est certainement pas la solution la mieux adaptée pour ton client, il y a des solutions nettement plus légères et qui ne sont pas destinées à évoluer comme l'était la version 1.6 de Prestashop (et j'insiste bien sur la 1.6, pas la 1.7...)..enfin c'est mon avis à 2 cents.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More