Aide - Recherche - Membres - Calendrier
Version complète : Vente croisée
Forum osCommerce-fr > Oscommerce 2.3 > Contributions OsC2.3
Garrigue
Bonjour la communauté,

Question :
Quelqu'un aurait-il installé dans la version Oscommerce 2.3 une contribution de Vente croisée
(mise en relation d'un produit avec d'autres) qui fonctionne.

Merci


chti_poupon
Cette contrib ici est la mise à jour de Xsell bien souvent cité ici..
Une Belle Journée !
Chti Poupon
Garrigue
Je vais essayer ça, je reviens vous dire comment cela se passe...

Merci !
Garrigue
Si cela arrive à d'autres dans la requête Sql, remplacer l'expression "TYPE=MyISAM" par "ENGINE=MyISAM"...

SQL
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Cross Sell', 'MAX_DISPLAY_XSELL', '6', 'Maximum number of products to display in the \'Cross Sell\' box', '3', '16', now());

DROP TABLE IF EXISTS products_xsell;
CREATE TABLE products_xsell (
ID int(10) NOT NULL auto_increment,
products_id int(10) unsigned NOT NULL default '1',
xsell_id int(10) unsigned NOT NULL default '1',
sort_order int(10) unsigned NOT NULL default '1',
PRIMARY KEY (ID)
) TYPE=MyISAM;

alter table products_xsell add index idx_products_id (products_id);
alter table products_xsell add index idx_xsell_id (xsell_id);


Sinon vous aurez ce message :
SQL

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 7 [font="Verdana"]
[/font]

Garrigue
Alors, ça à l'air de fonctionner côté administration mais côté boutique en ligne j'ai ce message d'erreur :

Citation
Warning: include(includes/languages/french/modules/boxes/bm_featured.php) [function.include]: failed to open stream: No such file or directory in Z:\xampp\htdocs\catalog\includes\classes\osc_template.php on line 86

Warning: include() [function.include]: Failed opening 'includes/languages/french/modules/boxes/bm_featured.php' for inclusion (include_path='.;\xampp\php\PEAR') in Z:\xampp\htdocs\catalog\includes\classes\osc_template.php on line 86


Dans la contribution on ne change pas le fichier osc_template.php ni le bm_featured.php.

Si quelqu'un y voit clair... ninja.gif
Garrigue
Je fais mes propres questions/réponses.

Donc je confirme, cette contribution fonctionne bien, l'erreur que j'avais venais du fait qu'il me manquait un fichier (bm_featured.php) version française dans le répertoire catalog\includes\languages\french\modules\boxes d'une autre contribution.

Merci au créateur…

Garrigue
Je reviens sur le sujet car j'ai un problème sur cette contribution sur le bouton "Acheter maintenant"
Quand je clic sur ce fameux bouton je tombe sur une page qui me dit « Produit non trouvé ».
(sur certains produits bizarrement ça fonctionne, enfin sur un seul...).

Je cherche depuis 3jours et là je cale.

Voici les éléments :

Chemin au survole de la souris sur le bouton "Acheter maintenant"
/localhost/catalog/product_info.php?action=buy_now&products_id=34

Chemin de la page qui m'indique que le produit n'est pas trouvé.
/localhost/catalog/product_info.php

Cela dit quand je copie dans la barre d'adresse du navigateur le lien du survole de la souris
je tombe aussi sur "Produit non trouvé".

Vraiment je ne comprends pas
Si quelqu'un y voit clair... ça serait bien !

chti_poupon
Avant tout, Va vérifier dans ta base s'il existe bien un produit dont products_id vaut 34
Garrigue
Le produit existe bien car si tu cliques sur l'image produit il s'affiche bien.

Ce sera plus clair si tu as le lien. (Clic sur le produit BambouCom/BC, image puis bouton)

http://www.tonsite.com/catalog/product_inf...cfb6f3641658986

Le site est en test...
chti_poupon
Bonjour
Tu as dû trouver la solution, ou je n'ai pas compris le problème, car le fonctionnement me paraît normal:
Ajouter au panier depuis la liste catégories: RAS, avec passage par la fiche produit s'il y a un attribut
Ajouter au panier depuis la page produit: RAS
Merci de formuler plus en détail si je n'ai rien compris
Chti poupon
Garrigue
Non c'est dans la partie : Nous vous recommandons aussi

Si tu clic sur l'image du produit BambouCom/BC, on tombe bien sur la fiche du produit en question.

Si tu clic sur le bouton "Acheter maintenant" du même produit on tombe sur la page : Produit non trouvé

Bonbec
Bonjour,

Si tu copies le lien du bouton "acheter maintenant" dans la barre d'adresse, tu as ceci :
hhttp://www.xxxxxx.com/catalog/product_info.php?action=buy_now&products_id=34&osCsid=c9946182410ea5d1b1f6f7fb896533eb
(j'ai modifié avant /catalog pour éviter que le lien ne soit actif).
Et effectivement tu tombes sur "produit non trouvé".

Supprime le &osCsid=c9946182410ea5d1b1f6f7fb896533eb et ton lien fonctionne.
Tu as un problème avec ton osCsid.
Je crois avoir identifié le problème : il y a un "s" en trop, il me semble que cela devrait être &osCid=c9946182410ea5d1b1f6f7fb896533eb parce que là çà trouve le produit.
Garrigue
Ce n'est pas un problème de s sur le osCsid, d'ailleurs sur d'autres produits le lien fonctionne avec le s
De plus j'ai le même problème en local où on n'utilise pas le osCsid

J'ai bien ce lien au survole de la souris sur le bouton :
HTML
[url="http://www.xxxxx.com/catalog/product_info.php?action=by_now&products_id=34&osCsid=812ff1570fc1aa0a55619302d644b11f"]http://www.xxxxx.com/catalog/product_info.php?action=by_now&products_id=34&osCsid=812ff1570fc1aa0a55619302d644b11f[/url]


Sur la page du Produit non trouvé j'ai ce lien dans la barre d'adresse :
HTML
[url="http://www.xxxxx.com/catalog/product_info.php?osCsid=812ff1570fc1aa0a55619302d644b11f"]http://www.xxxxx.com/catalog/product_info.php?osCsid=812ff1570fc1aa0a55619302d644b11f[/url]


Il suffit d'ajouter products_id=34& entre le ? et osCsid et cela fonctionne. On observe qu'on perd entre deux le action=by_now&
dans le lien.

A mon sens ce qu'il faut arriver à trouver et comprendre c'est pourquoi je perds dans le lien products_id=34& qui fait le lien sur la bonne page...
Gnidhal
C'est alors la construction du lien qui est mal faite.
Dans osC il y a une fonction tep_get_all_get_params qui reconstruit la chaîne get pour le lien de sortie à partir des paramètres passés en get en entrant.
La fonction permet de dégager du lien de sortie tout paramètre non désiré par un array.
tep_get_all_get_params() reprend donc tous les paramètres get passés à la page pour les ajouter au lien
tep_get_all_get_params(array('action','products_id') ) fait la même chose en supprimant les paramètres action et products_id

A toi de voir comment a été fabriqué le lien sur le bouton d'achat...
Garrigue
Ok mais le code me semble bon :

Code
$text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $xsell['products_image'], $xsell['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . $xsell['products_name'] .'</a>
' . $xsell_price. '
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=buy_now&product_to_buy_id=' . $xsell['products_id'], 'NONSSL') . '">' . tep_draw_button( IMAGE_BUTTON_BUY_NOW, 'cart', tep_href_link( basename( $PHP_SELF ), tep_get_all_get_params(array('action', 'products_id')) . 'action=buy_now&products_id=' . $xsell['products_id']));


Je suis persuadé que le problème vient d'autre part car sur le 1er produit créé sur mon site le lien fonctionne :

HTML
[/b][url="http://www.axocom.com/catalog/product_info.php?products_id=34&osCsid=19815f870383b3166ed5ce55e1a49116%20[/html"]http://www.axocom.com/catalog/product_info.php?products_id=34&osCsid=19815f870383b3166ed5ce55e1a49116 [/url] [b]


Cliquez sur le bonton Achetez maintenant du VisuelCom Tissus.
Ce produit est dans la base de donnée le premier de la liste de la table products. Si par exemple je supprime ce produit et bien le lien fonctionnera sur le produit suivant de la liste.

pour info : pas de code HTML dans les block [ code ] (exemple <strong> </strong> )
FoxP2
Citation (Garrigue @ 6 Mar 2012, 09:39) *
Ok mais le code me semble bon :

Code
$text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $xsell['products_image'], $xsell['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . $xsell['products_name'] .'</a>
' . $xsell_price. '
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=buy_now&product_to_buy_id=' . $xsell['products_id'], 'NONSSL') . '">' . tep_draw_button( IMAGE_BUTTON_BUY_NOW, 'cart', tep_href_link( basename( $PHP_SELF ), tep_get_all_get_params(array('action', 'products_id')) . 'action=buy_now&products_id=' . $xsell['products_id']));


ton code est complet ? car ta balise <a href > n'est pas fermée :

Code
<a href="' . tep_href_link(FILENAME_PRODUCT_INFO,
tep_get_all_get_params(array('action')) .
'action=buy_now&product_to_buy_id=' . $xsell['products_id'],
'NONSSL') . '">' . tep_draw_button( IMAGE_BUTTON_BUY_NOW, 'cart',
tep_href_link( basename( $PHP_SELF ),
tep_get_all_get_params(array('action', 'products_id')) .
'action=buy_now&products_id=' . $xsell['products_id']));

Garrigue
Oui le code est complet pour la partie lien, effectivement mieux vaut fermer la balise <a href>.

Fait avec .'</a>'; en fin de code. Mais cela ne change rien... wacko.gif Le mystère s'assombrie !
Garrigue
[Résolu]

Bon en fait, j'ai été sur le forum du créateur (Mort-lemur), et après plusieurs échanges,
il a finit par trouver et donc à revu son code au niveau du fichier application_top.php.

Il faut remplacer :
Code
//BOF F: XSell
                  case 'buy_now' : if (isset($HTTP_GET_VARS['product_to_buy_id'])) {
                  if (tep_has_product_attributes($HTTP_GET_VARS['product_to_buy_id'])) {
                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['product_to_buy_id']));
                  } else {
                  $cart->add_cart($HTTP_GET_VARS['product_to_buy_id'], $cart->get_quantity($HTTP_GET_VARS['product_to_buy_id'])+1);
                  }
                  } elseif (isset($HTTP_GET_VARS['products_id'])) {
// EOF: XSell
                  if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                  } else {
                  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                  }
                  }tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));


Par :

Code
// BOF: XSell
                 case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) {                                                      
                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));                                                      
                 }
                 tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                 break;
// EOF: XSell
                 if (isset($HTTP_GET_VARS['products_id'])) {                                                      
                 tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));                                                      
                 }
                 tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                 break;


Les échanges sont ici :
HTML
[url="http://forums.oscommerce.com/topic/34799-contribution-cross-sell-x-sell-admin/page__st__520"]http://forums.oscommerce.com/topic/34799-contribution-cross-sell-x-sell-admin/page__st__520[/url]


Merci à tous !

Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2014 Invision Power Services, Inc.