Jump to content

Margaux M

Members
  • Posts

    39
  • Joined

  • Last visited

Everything posted by Margaux M

  1. Ca semble effectivement être exactement ce que je recherche !
  2. Bonjour à tous! J’ai une question existentielle ! J’ai actuellement un site e-commerce sous Prestashop 1.7, et l’ouverture d’une boutique physique est prévue pour bientôt. Je recherche donc un moyen de faire fonctionner les deux en parallèle, c’est à dire ne pas changer grand chose pour la partie « en ligne » et avoir la possibilité d’utiliser une douchette / terminal de paiement pour la partie « physique ». Parmi mes nombreuses questions, il y a bien l’essentielle : vers quoi me diriger ? Dolibarr ? Odoo ? Autre ? Le but est que lorsque je suis en boutique, je fais une vente, je scan l’EAN de(s) l’article(s) avec la douchette, puis j’appuie sur « Payer » disons et ça balance l’ordre de paiement avec le montant sur mon terminal de paiement (fourni par ma banque). Une fois la transaction effectuée, le stock de Prestashop est mis à jour. Je m'interroge sur la partie douchette / terminal de paiement. Déjà, comment j’interface la douchette avec Prestashop ? En passant par Dolibarr ou Odoo ? Via un client Windows / Mac / Linux / Android / iOS ? La communauté à une préférence ? Dans la continuité, pour lancer l’ordre de paiement au terminal, je passe par la même interface ? J'ai bien trouvé un topic datant de 2018 qui parle d'une multitude de modules, et finalement un post des années plus tard qui parle de Dolibarr, mais j'aimerai savoir si c'est vraiment le chemin à prendre! Merci!
  3. Hi! Is it possible to grey out out of stock sizes in list menu on the product page? But keep it selectable so the customers can suscribe to be notified once it's back in stock? Thanks!
  4. Bonjour, Je me pose la question si il est possible de donner certains privilèges à un groupe de clients en particulier. Est-il possible par exemple de faire en sorte que le stock ne soit pas affecté par une commande d'un certain groupe? J'ai 10 produits en stock, un client normal en commande 2, ça réduit le stock à 8. Un client "avec des privilèges" en commande 2, le stock reste à 10. Possible?
  5. Merci de votre aide! Pour avoir moins de fichiers à envoyer sur mon serveur, j'ai procédé différemment... J'ai téléchargé ma version de PS (1.7.3.3) puis j'ai remplacé les répertoires admin, app, src et vendor de mon site par ceux d'origine, en gardant uniquement le parameters.php de app/config, ça remarche!
  6. J'ai eu la même erreur [Ajax / Server Error for action upgradeFiles] textStatus: "error " errorThrown:" " jqXHR: " " Mais j'ai eu la super bonne idée de re cliquer sur 1-click upgrade dans le menu... Et maintenant, Erreur 500 que ce soit dans le BO ou FO. Je suis censée faire quoi? J'ai bien entendu pas eu la bonne idée de copier tout le log En PS_MOD_DEV true j'ai ça Warning: require(/home/nomdusite/www/config/../app/autoload.php): failed to open stream: No such file or directory in /home/nomdusite/www/config/autoload.php on line 33 Warning: require(/home/nomdusite/www/config/../app/autoload.php): failed to open stream: No such file or directory in /home/nomdusite/www/config/autoload.php on line 33 Fatal error: require(): Failed opening required '/home/nomdusite/www/config/../app/autoload.php' (include_path='.:/usr/local/php7.0/lib/php') in /home/nomdusite/www/config/autoload.php on line 33 Et la ligne 33 de autoload.php j'ai ça require(__DIR__.'/../app/autoload.php');
  7. Je viens de remarquer quelque chose et j'ai fait un essai, si ça peut donner une piste. Lorsque la déclinaison par défaut est à 0, l'image est grisée même si d'autre déclinaisons sont en stock. Si je change la déclinaison par défaut par une déclinaison avec du stock, l'affichage est correcte!
  8. Pour un produit OK (stock 0 sur toutes les déclinaisons) : Quantité totale déclis = 0 Quantités produit = 0 Pour un produit grisé malgré le fait que des déclinaisons soient en stock : Quantité totale déclis = 5 Quantités produit = 0
  9. Apparemment les overrides ont été créé par ce module "groupinc" (Module Augmentation/Baisse de prix par groupe, catégorie...), que je n'utilise plus, donc je l'ai supprimé... La date des fichiers overrides a bien changé, j'ai supprimé le class_index.php, mais toujours pas mieux!
  10. J'ai bien un fichier ProductController.php dans /override/controllers/front/ et Product.php dans /override/classes/ J'ai essayé de les renommer en .phpold ainsi que class_index.php dans /cache/ mais sans succès, c'est à s'arracher les cheveux!
  11. Si il y a un override c'est dans le même fichier? Je le colle ici si jamais c'est le cas {* * 2007-2014 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {if !isset($image_size)} {assign var=image_size value='home_default'} {/if} <section class="cs-product" itemscope itemtype="http://schema.org/Product"> <div class="cs-left-product"> {$imageAll=Image::getImages(Context::getContext()->language->id,$product.id_product)} <a class="product_img_link{if count($imageAll)<=1} only-image{/if}" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url"> <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0)} outstock{else}{if $product.quantity <= 0} outstock{/if}{/if}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" /> {if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {/if} </a> <div class="new-sale-box"> {if isset($product.new) && $product.new == 1} <a class="new-box" href="{$product.link|escape:'html':'UTF-8'}"> <span class="new-label">{l s='New'}</span> </a> {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <a class="sale-box" href="{$product.link|escape:'html':'UTF-8'}"> <span class="sale-label">{l s='Sale!'}</span> </a> {/if} </div> <div class="button-container"> {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {else} <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&amp;id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {/if} {else} <span class="button ajax_add_to_cart_button btn btn-default disabled"> <span>{l s='Out of stock'}</span> </span> {/if} {/if} <a itemprop="url" class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}"> <span>{l s='More'}</span> </a> <div class="functional-buttons clearfix"> {hook h='displayProductListFunctionalButtons' product=$product} {if isset($comparator_max_item) && $comparator_max_item} <div class="compare"> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to Compare'}" class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a> </div> {/if} {if isset($quick_view) && $quick_view} <div class="quick-view-wrapper-mobile"> <a class="quick-view-mobile" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <i class="icon-eye-open"></i> </a> </div> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Quick view'}" class="quick-view" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <span>{l s='Quick view'}</span> </a> {/if} </div> </div> </div> <div class="cs-right-product"> {if isset($product.category_default)}<h6 class="category-name">{$product.category_default|truncate:30:'...'|escape:'html':'UTF-8'}</h6>{/if} <h5 itemprop="manufacturer"> {if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if} <!--Product list catalogue Manufacturer--> <a class="product-manufacturer" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.manufacturer_name|escape:'html':'UTF-8'}" > {$product.manufacturer_name|escape:'html':'UTF-8'} </a> </h5> <p class="product-name" itemprop="name"> <!--Product list catalogue Product name--> <a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" > {$product.name|truncate:70:'...'|escape:'html':'UTF-8'} </p> {if $page_name != 'product'} {hook h='displayProductListReviews' product=$product} {/if} <p class="product-desc" itemprop="description"> {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} </p> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="content_price"> {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)} <span itemprop="price" class="price product-price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if} </span> <meta itemprop="priceCurrency" content="{$currency->iso_code}" /> {if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0} {hook h="displayProductPriceBlock" product=$product type="old_price"} <span class="old-price product-price"> {displayWtPrice p=$product.price_without_reduction} </span> {hook h="displayProductPriceBlock" id_product=$product.id_product type="old_price"} {if $product.specific_prices.reduction_type == 'percentage'} <span class="price-percent-reduction">-{$product.specific_prices.reduction * 100}%</span> {/if} {/if} {hook h="displayProductPriceBlock" product=$product type="price"} {hook h="displayProductPriceBlock" product=$product type="unit_price"} {/if} </div> {/if} <div class="button-container"> {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to cart'}" class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {else} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to cart'}" class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&amp;id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {/if} {else} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Out of stock'}"> <span class="button ajax_add_to_cart_button btn btn-default disabled"> <span>{l s='Out of stock'}</span> </span> </a> {/if} {/if} <a itemprop="url" class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}"> <span>{l s='More'}</span> </a> <div class="functional-buttons clearfix"> {hook h='displayProductListFunctionalButtons' product=$product} {if isset($comparator_max_item) && $comparator_max_item} <div class="compare"> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to Compare'}" class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a> </div> {/if} {if isset($quick_view) && $quick_view} <div class="quick-view-wrapper-mobile"> <a class="quick-view-mobile" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <i class="icon-eye-open"></i> </a> </div> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Quick view'}" class="quick-view" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <span>{l s='Quick view'}</span> </a> {/if} </div> </div> {if isset($product.color_list)} <div class="color-list-container">{$product.color_list}</div> {/if} <div class="product-flags"> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.online_only) && $product.online_only} <span class="online_only">{l s='Online only'}</span> {/if} {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <span class="discount">{l s='Reduced price!'}</span> {/if} </div> {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)} <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability"> {if ($product.allow_oosp || $product.quantity > 0)} <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}"> <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if} </span> {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)} <span class="available-dif"> <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'} </span> {else} <span class="out-of-stock"> <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'} </span> {/if} </span> {/if} {/if} {if isset($cs_id)} {assign var=temp value=$cs_id} {else} {assign var=temp value='product_list'} {/if} {if !isset($count_down)} {hook h='displayCountDownProduct' product=$product index1='block' index2=$temp} {/if} </div> </section>
  12. En effet! Par contre, l'image est toujours grisée même si des déclinaisons sont encore en stock
  13. Merci, j'ai remplacé mais j'ai une erreur lorsque je rafraîchis la page!
  14. Oui, et ça marche impeccable tant qu'il n'y a pas de déclinaisons. En présence de déclinaisons, si l'une d'elle est à 0, l'image est grisée, au lieu de rester en couleur et passer en gris lorsque toutes les déclinaisons sont à 0. Je colle le code si jamais c'est un problème là dedans <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0) || $product.quantity <= 0} outstock{/if}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" /> {if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {/if}
  15. Ah voilà! Je ne souhaite pas griser les images dans la page produit, j'y vois pas spécialement d'intérêt, alors que sur la product list ça permet d'un coup d'oeil de voir qu'un produit est en rupture. Mais du coup, ce que vous disiez concernant le fait que si une déclinaison est à 0 l'image serait grisée est vrai, du coup je dois modifier quoi pour que l'image ne se grise pas lors qu'au moins une déclinaison est en stock? J'ai essayé de voir si il était possible de récupérer le code existant pour l'étiquette "out of stock", qui elle marche bien, mais j'ai pas noté de différence par rapport au code global que vous m'aviez indiqué... En tout cas merci encore de votre patience!
  16. On est d'accord que c'est bien pour griser l'image uniquement sur la page product list? Concernant l'appel en question, j'imagine que c'est celui là // search the combinations' case of attributes and update displaying of availability, prices, ecotax, and image function findCombination() //show the large image in relation to the selected combination if (combinations[combination]['image'] && combinations[combination]['image'] != -1) displayImage($('#thumb_' + combinations[combination]['image']).parent());
  17. Bonjour! Est-il possible d'avoir un poil plus d'explication pour terminer la modification? Dans quel fichier .js je dois regarder? J'ai pas compris l'histoire de changement de combinaison et l'ajout de la classe à l'image de la déclinaison! Merci et encore désolée d'avoir autant de difficultés!
  18. Effectivement, comme prévu ça marche mais ça affecte aussi les produits avec des déclinaisons! Je dois regarder du côté de product.js? Mille mercis pour l'aide!
×
×
  • Create New...

Important Information

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