Jump to content
Ste-WD

[RISOLTO]Soluzione al problema: prodotto non disponibile perchè già nel carrello

Recommended Posts

Avrò una clientela “particolare” ma è capitato più volte che mi chiamassero dicendo che un codice era esaurito quando invece era disponibile in quantità 1 .

Questo succede quando il cliente non si accorge di aver già il prodotto nel carrello ( possibile che lo abbia aggiunto due giorni prima ) e quindi il sistema gli fa vedere il prodotto non disponibile ( proprio perchè ha preso lui l’ultimo ).

qualche idea su come risolvere?

 

Io vorrei fare in modo tale che se il cliente ha già l’ultimo codice nel carrello viene avvisato che ha già nel carrello l’ultimo prodotto disponibile.

Non so se è possibile ma penso sia l’unica soluzione.

Edited by Ste-WD (see edit history)

Share this post


Link to post
Share on other sites

invece la soluzione più logica ( di un eCommerce serio ) è quella di azzerare i carrelli abbandonati alla mezzanotte di ogni giorno e ripristinare le quantità

Saluto

Share this post


Link to post
Share on other sites
1 hour ago, solved said:

invece la soluzione più logica ( di un eCommerce serio ) è quella di azzerare i carrelli abbandonati alla mezzanotte di ogni giorno e ripristinare le quantità

Saluto

Ciao,

quella è una cosa che potrebbe servire ma non risolve il mio problema.

Il problema è che subito dopo l'inserimento dell'ultimo articolo nel carrello. è in quel momento che il cliente si sente spaesato nel vedere il prodotto appena acquistato non più disponibile.

 

Share this post


Link to post
Share on other sites

Salve Ste_wd,

il problema é noto su Github e riguarda proprio shop che lavorano con piccole quantiá nei prodotti...é un problema in effetti é direi abbastanza comune negli e-commerce perché quante volte mettiamo  prodotti nel carrello eppoi li  lasciamo lí....dopo qualche giorno torniamo e naturalmente se ci troviamo il messaggio che il prodotto non é disponibile...e quindi bye bye cliente perché ovviamente abbandona.

Peró l'opzione re-desplay cart al login...non só in italiano come é scritta ( sono sempre su piattaforme inglesi). .l'ha attivata?La trova nella configurazione clienti  Perché in questo modo forse potrebbe aggiare il problema:-)..quando il cliente torna viene ridirezionato al carrello. 

 

ciao

 

 

Share this post


Link to post
Share on other sites

Oltre agli utili consigli ricevuti, potrei aggiungere la seguente implementazione per evitare che, appena dopo aver aggiunto l'ultimo prodotto nel carrello, l'utente veda nella pagina la dicitura "Prodotto esaurito".

Nota: è un'idea "rozza", con codice ottimizzabile  e non testata nei vari possibili scenari che uno shop online possa presentare.
In pratica un controllo provvede a nascondere all'utente che abbia appena inserito l'ultimo prodotto nel carrello, il messaggio "Prodotto non disponibile".

Sarà necessario modificare con un editor di testo il file product-add-to-cart.tpl che trovi in /themes/nome-del-tema-utilizzato/templates/catalog/_partials/  oppure  in /themes/classic/templates/catalog/_partials/  (dipende dai file che sono presenti o meno nella cartella del tema che stai utilizzando).

  1. Appena dopo il codice:
    {if !$configuration.is_catalog}

    aggiungere il seguente:

    {$in_cart = 0}
    {foreach from=$cart['products'] item='cart_product'}
      {if $cart_product['id_product'] == $product.id}
        {$in_cart = 1}
      {/if}
    {/foreach}
  2. Modificare il codice:
    {block name='product_availability'}
      <span id="product-availability">
        {if $product.show_availability && $product.availability_message}
          {if $product.availability == 'available'}
            <i class="material-icons rtl-no-flip product-available">&#xE5CA;</i>
          {elseif $product.availability == 'last_remaining_items'}
            <i class="material-icons product-last-items">&#xE002;</i>
          {else}
            <i class="material-icons product-unavailable">&#xE14B;</i>
          {/if}
          {$product.availability_message}
        {/if}
      </span>
    {/block}

    con il seguente:

    {block name='product_availability'}
      <span id="product-availability">
      {if $product.show_availability && $product.availability_message}
        {if $product.availability == 'available'}
          <i class="material-icons rtl-no-flip product-available">&#xE5CA;</i>
          {$product.availability_message}
        {elseif $product.availability == 'last_remaining_items'}
          <i class="material-icons product-last-items">&#xE002;</i>
          {$product.availability_message}
        {else}
          {if !$in_cart}
            <i class="material-icons product-unavailable">&#xE14B;</i>
          {/if}
        {/if}
        {if !$in_cart}
          {$product.availability_message}
        {/if}
      {/if}
      </span>
    {/block}

     

Share this post


Link to post
Share on other sites
On 11/9/2019 at 7:49 PM, ThemeBooster.com said:

Oltre agli utili consigli ricevuti, potrei aggiungere la seguente implementazione per evitare che, appena dopo aver aggiunto l'ultimo prodotto nel carrello, l'utente veda nella pagina la dicitura "Prodotto esaurito".

Nota: è un'idea "rozza", con codice ottimizzabile  e non testata nei vari possibili scenari che uno shop online possa presentare.
In pratica un controllo provvede a nascondere all'utente che abbia appena inserito l'ultimo prodotto nel carrello, il messaggio "Prodotto non disponibile".

Sarà necessario modificare con un editor di testo il file product-add-to-cart.tpl che trovi in /themes/nome-del-tema-utilizzato/templates/catalog/_partials/  oppure  in /themes/classic/templates/catalog/_partials/  (dipende dai file che sono presenti o meno nella cartella del tema che stai utilizzando).

  1. Appena dopo il codice:
    
    {if !$configuration.is_catalog}

    aggiungere il seguente:

    
    {$in_cart = 0}
    {foreach from=$cart['products'] item='cart_product'}
      {if $cart_product['id_product'] == $product.id}
        {$in_cart = 1}
      {/if}
    {/foreach}
  2. Modificare il codice:
    
    {block name='product_availability'}
      <span id="product-availability">
        {if $product.show_availability && $product.availability_message}
          {if $product.availability == 'available'}
            <i class="material-icons rtl-no-flip product-available">&#xE5CA;</i>
          {elseif $product.availability == 'last_remaining_items'}
            <i class="material-icons product-last-items">&#xE002;</i>
          {else}
            <i class="material-icons product-unavailable">&#xE14B;</i>
          {/if}
          {$product.availability_message}
        {/if}
      </span>
    {/block}

    con il seguente:

    
    {block name='product_availability'}
      <span id="product-availability">
      {if $product.show_availability && $product.availability_message}
        {if $product.availability == 'available'}
          <i class="material-icons rtl-no-flip product-available">&#xE5CA;</i>
          {$product.availability_message}
        {elseif $product.availability == 'last_remaining_items'}
          <i class="material-icons product-last-items">&#xE002;</i>
          {$product.availability_message}
        {else}
          {if !$in_cart}
            <i class="material-icons product-unavailable">&#xE14B;</i>
          {/if}
        {/if}
        {if !$in_cart}
          {$product.availability_message}
        {/if}
      {/if}
      </span>
    {/block}

     

 

Grazie mille per i preziosi consigli !

Non so se fattibile ma ci provo:

Un'ultima cosa: Sarebbe possibile al posto di "nascondere all'utente che abbia appena inserito l'ultimo prodotto nel carrello, il messaggio "Prodotto non disponibile"" far comparire all'utente che abbia appena inserito l'ultimo prodotto nel carrello, il messaggio "Hai già l'ultimo prodotto nel carrello" ?

Share this post


Link to post
Share on other sites
1 hour ago, Ste-WD said:

 far comparire all'utente che abbia appena inserito l'ultimo prodotto nel carrello, il messaggio "Hai già l'ultimo prodotto nel carrello" ?

{block name='product_availability'}
      <span id="product-availability">
        {if $product.show_availability && $product.availability_message}
          {if $product.availability == 'available'}
            <i class="material-icons rtl-no-flip product-available">&#xE5CA;</i>
			{$product.availability_message}
          {elseif $product.availability == 'last_remaining_items'}
            <i class="material-icons product-last-items">&#xE002;</i>
			{$product.availability_message}
          {else}
            {if !$in_cart}
			  <i class="material-icons product-unavailable">&#xE14B;</i>
            {/if}
          {/if}
		  {if !$in_cart}
            {$product.availability_message}
		  {/if}
		  {if $product.quantity == 0}
		    {l s='You already have the latest product in the cart!' d='Shop.Theme.Global'}
		  {/if}
        {/if}
      </span>
    {/block}

Note: il codice suggerito andrebbe testato approfonditamente, soprattutto per i prodotti con combinazioni.
Inoltre, nel caso tu stessi utilizzando una Prestashop 1.7.6.x, il valore d='Shop.Theme.Global' andrebbe sostituito con d='Shop.Nomedeltuotema'

Share this post


Link to post
Share on other sites

Se dal tuo utilizzo, dovesse risultare perfettamente funzionante, potresti editare il titolo della richiesta in modo da aggiungere la dicitura [RISOLTO].
In questo modo, questa discussione potrà essere maggiormente utile a tutti.

Grazie in anticipo.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

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