Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu]CMSMS 2.2.7 - E-commerce -Module CART2/PRODUCTS - Ajout Panier
#1

Citation :----------------------------------------------

Cms Version: 2.2.7

Installed Modules:

AceEditor2: 1.05
AdminSearch: 1.0.4
BoxPacker: 1.2.6
CGEcommerceBase: 1.8.6
CGExtensions: 1.60
CGMyOrders: 1.2.4
CGPaymentGatewayBase: 1.6.2
CGSimpleSmarty: 2.1.8
CGSmartImage: 1.22.2
CGSnapshot: 1.3
CMSContentManager: 1.1.6
CMSMailer: 6.2.14
Captcha: 0.5.5
Cart2: 1.4.2
CmsJobManager: 0.1.2
DesignManager: 1.1.4
FRTaxes: 1.3
FileManager: 1.6.5
FilePicker: 1.0.2
FormBuilder: 0.8.1.6
FrontEndUsers: 2.9
GiftBaskets: 1.5.2
JMFilePicker: 1.0.1
JQueryTools: 1.4.0.3
MenuManager: 1.50.3
MicroTiny: 2.2.2
ModuleManager: 2.1.3
Navigator: 1.0.8
News: 2.51.3
Orders: 1.23.2
Products: 2.28.3
ProductsByVendor: 1.2.6
Promotions: 1.3.1.1
Search: 1.51.3
Showtime2: 3.5.4
SitemapMgr: 1.5.3
TinyMCE: 3.2-beta5
Uploads: 1.25.8

Config Information:

php_memory_limit:
max_upload_size: 128000000
url_rewriting: none
page_extension:
query_var: page
auto_alias_content: true
locale:
set_names: true
timezone: Europe/Paris
permissive_smarty: true

Php Information:

phpversion: 7.0.27
md5_function: On (Vrai)
json_function: On (Vrai)
gd_version: 2
tempnam_function: On (Vrai)
magic_quotes_runtime: Off (Faux)
E_ALL: 32759
E_STRICT: 2048
E_DEPRECATED: 8192
test_file_timedifference: Aucune différence de date du système trouvée
test_db_timedifference: Aucune différence de date du système trouvée
create_dir_and_file: 1
memory_limit: 512M
max_execution_time: 300
register_globals: Off (Faux)
output_buffering: 4096
disable_functions: _dyuweyrj4, _dyuweyrj4r, dl
open_basedir:
test_remote_url: Valable
file_uploads: On (Vrai)
post_max_size: 130M
upload_max_filesize: 128M
session_save_path: /tmp (0700)
session_use_cookies: On (Vrai)
xml_function: On (Vrai)
xmlreader_class: On (Vrai)
check_ini_set: On (Vrai)
curl: On

Performance Information:

allow_browser_cache: Off (Faux)
browser_cache_expiry: 60
php_opcache: On (Vrai)
smarty_cache: Off (Faux)
smarty_compilecheck: Off (Faux)
auto_clear_cache_age: On (Vrai)
Server Information:

Server Software: Apache
Server Api: fpm-fcgi
Server Os: Linux 4.14.19-ovh-vps-grsec-zfs-classid On x86_64
Server Db Type: MySQL (mysqli)
Server Db Version: 5.6.34
Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté

Permission Information:

tmp: /home/hyunkellzb/www/tmp (0705)
tmp_cache: /home/hyunkellzb/www/tmp/cache (0705)
templates_c: /home/hyunkellzb/www/tmp/templates_c (0705)
modules: /home/hyunkellzb/www/modules (0705)
uploads: /home/hyunkellzb/www/uploads (0705)
Masque de création de fichier (umask) : /home/hyunkellzb/www/tmp/cache (0705)
config_file: 0444
----------------------------------------------

Bonjour à tous,

je fais de nouveau appel à vos lumières concernant les modules CART2 et PRODUCTS.

Je suis actuellement entrain de créer un site E-boutique assez conséquent et un petit problème se pose à moi :
- L'ajout au panier "par lot".

Petite explication :
Mes produits ne sont achetable que par lot (par 5, par 7, par 12 ...) j'ai donc créer un champ personnalisé nommé achatminimum. Chaque article possède un prix à l'unité (le prix totale par lot n'est pas indiqué dans la fiche produits car les lots peuvent changer chaque jour).

Dans ma boutique, je souhaiterai donc, lors de l'ajout au panier, ajouter la quantité de produit défini dans le champ achatminimum.

J'ai d'abord pensé à faire un truc tout bête :
Code :
[== HTML ==]
<input class="qte" type="number" min="{$entry->fields.achatminimum->value}" step="{$entry->fields.achatminimum->value}"  name="{$quantityname}" value="{$entry->fields.achatminimum->value}" size="2" maxlength="2"/>

En soit, ça fonctionne, mais ça ne convient malheureusement pas à mon client. Il souhaite que dans le input, par défaut, ne soit pas afficher l'achatminimum, mais bel et bien les quantités de lots souhaités !

1 x 1 lot de 10
2 x 1 lot de 10
3 x 1 lot de 10 ...

Et là, je sèche depuis un petit moment.

je n'arrive malheureusement pas à "faire le liens" des différentes variables avec ces deux modules. (et je reconnais ne pas encore être un pro du php).


PS : Je n'ai malheureusement pas encore le droit de poster l'url de mon site


Si quelqu'un à une idée, je suis preneur !


En vous remerciant par avance.
#2

Bonjour,

chaque produit a plusieurs quantités par lots possibles ?
Et avec les attributs de produits ?
#3

Bonjour, je vous remercie pour votre aide

Chaque produits ne possède qu'une seule quantité par lot, mais qui peut changer chaque jours (via import CSV).
Exemple :
Lundi : 12 par lot
Mardi: 15 par lot
Mercredi : 8 par lot
...

Concernant les attributs de produits, sauf incompréhension de ma part :
Mon produits possède la référence (SKU) : GMA3GJ.
Si je lui créer des attributs (options) je dois lui indiquer une autre référence pour les distinguer.

Et ce n'est malheureusement pas possible. Mon client possède une base de données d'environs 5000 articles, tous avec des SKU défini par leurs fournisseurs qui ne peuvent absolument pas être modifié.
#4

Et en forçant un <select> avec les multiples de la quantité ?
Code :
<option value="12">1 x lot de 12</option>
<option value="24">2 x lot de 12</option>

Le tout généré par Smarty et tenant compte du champ qui contient les quantités de chaque lot ?

[edit]
Le select est pour le champ de quantité bien sûr
#5

L'idée n'est pas mauvaise en effet, je n'y avais pas pensé :

Code :
[== HTML ==]
<select name="{$quantityname}">
    <option value="{$entry->fields.achatminimum->value*1}">1</option>
    <option value="{$entry->fields.achatminimum->value*2}">2</option>
    <option value="{$entry->fields.achatminimum->value*3}">3</option>
    <option value="{$entry->fields.achatminimum->value*4}">4</option>
    <option value="{$entry->fields.achatminimum->value*5}">5</option>
</select>

le soucis est si un client souhaite 117 lot, ça m'oblige à créer une liste déroulante assez conséquente !

A réfléchir, mais ça me donne pas mal de chemin de réflexion (peut être du datalist)
#6

Mais avec une boucle {for} pour générer tout cela, ce ne serait pas possible ? Certaines quantités de lots ne sont pas commandables ?
#7

Oui, c'est vrai que je peux générer chaque ligne comme ça.
Ce qui m'embête le plus c'est que le client devra obligatoirement faire son choix dans une liste déroulante qui risque d'être très grande.

PS : C'est un site de vente en gros, donc les quantités peuvent être très grande
#8

Il y a sûrement plusieurs options d'un points de vue UX pour gérer ça plus facilement pour le client, il faut juste que derrière la bonne quantité soit transmise à l'ajout au panier - quitte à entrer un champ de saisie de la quantité de lots et faire la multiplication en JS par ex
#9

Je cherche actuellement dans cette voie, je vais bien finir par trouver quelques choses.

Je regarde dans les fichiers du module voir si il n'y a pas une option que je n'aurai pas vu.
#10

Bonjour à tous,

Petite avancée après plusieurs heures de recherches :

Lors de l'ajout au panier, pour multiplier le prix unitaire par un champs personnalisé il faut entrer le code suivant :

Code :
[== Smarty ==]
{Cart2 sku=$entry->sku price="{($entry->price * {$entry->fields.achatminimum->value})}"}
PS : Ce code correspond au bouton "add to cart" du module Cart2.

Le champ personnalisé étant achatminimum dans mon cas.

Pour le moment, tout ça à l'air de fonctionner correctement, je mettrai le sujet en résolu d'ici quelques heures si je n'ai pas de mauvaise surprise !



Edit : Tout fonctionne correctement ! Je passe en résolu.
#11

Merci pour le retour d'infos - je suis surpris qu'on puisse ainsi définir le prix dans le formulaire, mais si cela fonctionne pour toi tant mieux.

Attention cependant à ce qui seraient tentés d'analyser ce code et de modifier dans leur navigateur le prix du produit avant ajout au panier Wink Je ferai un test sur un prochain e-commerce

A bientôt,
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 4 visiteur(s)