Nous ne répondons seulement qu'aux sujets dont l'auteur a complété sa signature [Lire]


Paypal standard, articles séparés, problème si pas de retour

Ce forum est destiné uniquement aux modules de paiements.

Paypal standard, articles séparés, problème si pas de retour

Messagepar afipc » 06 Oct 2010, 11:37

Bonjour,

Etant utilisateur d'OSCommerce, j'ai eu envie d'essayer la version 1.4.8 FR d'OpenCart. J'observe quelques problèmes, que j'ai déjà expérimentés et corrigés avec OSCommerce.

Tout d'abord avec le module Paypal standard intégré, quand on arrive sur le paiement, le panier n'est pas décrit complètement, on a juste un seul article qui représente le total, avec comme nom celui de la boutique. Pas très pratique quand on reçoit un paiement. Ceci n'est pas grave quand le client clique bien sur "retour à la boutique" car la commande est enregistrée correctement et on a le détail.

Par contre, si le client ferme la page et ne revient pas sur la boutique, le paiement est ok, mais la commande n'est pas enregistrée, le panier pas vidé. Dans ce cas là il est utile d'avoir la description complète des articles commandés dans l'email de paypal, pour éviter d'avoir a téléphoner au client pour lui demander ce qu'il a commandé (pas terrible quand même...)

N'ayant pas trouvé d'info à ce sujet sur ce forum, j'en ai par contre trouvé sur celui anglais :
http://forum.opencart.com/viewtopic.php?f=119&t=8568&start=0

on trouve un code du fichier pp_standard.php qui semble fonctionner correctement avec la 1.4.8 (après un bref test de ma part), sur le dernier post de la 2ème page.

Code: Tout sélectionner
<?php
class ControllerPaymentPPStandard extends Controller {
///////Q: START ITEMIZED CODE /////////
   protected function index() {
       $this->data['button_confirm'] = $this->language->get('button_confirm');
      $this->data['button_back'] = $this->language->get('button_back');

      if (!$this->config->get('pp_standard_test')) {
          $this->data['action'] = 'https://www.paypal.com/cgi-bin/webscr';
        } else {
         $this->data['action'] = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
      }     
     
      $this->load->model('checkout/order');
     
      $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
     
      // Check for supported currency, otherwise convert to USD.
      $supported_currencies = array('AUD','CAD','EUR','GBP','JPY','USD','NZD','CHF','HKD','SGD','SEK','DKK','PLN','NOK','HUF','CZK','ILS','MXN');
      if (in_array($order_info['currency'], $supported_currencies)) {
         $currency = $order_info['currency'];
      } else {
         $currency = 'USD';
      }     

      $useItemized = 1; // set to 0 if you don't want itemized
      $useItemizedwCoupon = 0; // set to 0 if you don't want itemized when a coupon is in use.
     
      // Get All taxes, shipping fees, and order totals
      $total = 0;
      $taxes = $this->cart->getTaxes();
       
      $this->load->model('checkout/extension');
     
      $sort_order = array();
     
      $results = $this->model_checkout_extension->getExtensions('total');
     
      if (!isset($this->session->data['shipping_method'])) { $this->session->data['shipping_method']['cost'] = '0.00'; }
     
      foreach ($results as $key => $value) {
         $sort_order[$key] = $this->config->get($value['key'] . '_sort_order');
      }
     
      array_multisort($sort_order, SORT_ASC, $results);
     
      foreach ($results as $result) {
         $this->load->model('total/' . $result['key']);

         $this->{'model_total_' . $result['key']}->getTotal($total_data, $total, $taxes);
      }
      $total = $this->currency->format($total, $currency, FALSE, FALSE);
     
      $this->data['fields'] = array();
      $i=1;
        if ($useItemized && ($useItemizedwCoupon || !isset($this->session->data['coupon']))) {
         $this->data['fields']['cmd'] = '_cart';
         $this->data['fields']['upload'] = '1';
         $this->data['fields']['shipping_1'] = $this->currency->format($this->session->data['shipping_method']['cost'], $currency, FALSE, FALSE);
         $taxtotal = 0;
         foreach ($this->cart->getTaxes() as $key => $value) {
            $taxtotal += $this->currency->format($value, $currency, FALSE, FALSE);
         }
         $this->data['fields']['tax']=$taxtotal;
         $this->data['fields']['tax_cart']=$taxtotal;
         $pp_total = 0;
         foreach ($this->cart->getProducts() as $result) {
            $price = $this->currency->format($result['price'], $currency, FALSE, FALSE);
              $this->data['fields']['item_number_' . $i . '']=$result['model'];
                $this->data['fields']['item_name_' . $i . '']=$result['name'];
                $this->data['fields']['amount_' . $i . '']=$price;
               $this->data['fields']['quantity_' . $i . '']=$result['quantity'];
              $this->data['fields']['weight_' . $i . '']=$result['weight'];
              $pp_total += ($price * $result['quantity']);
                if (!empty($result['option'])) {
                    $x=0;
                    foreach ($result['option'] as $res) {
                        $this->data['fields']['on' . $x . '_' . $i . '']=$res['name'];
                        $this->data['fields']['os' . $x . '_' . $i . '']=$res['value'];
                        $x++;
                    }
                }
                $i++;
            }
            // Cumulative total of what Paypal thinks it is
         $pp_total += $this->currency->format($this->session->data['shipping_method']['cost'], $currency, FALSE, FALSE);
         $pp_total += $taxtotal;
         
         // If Total is more or less than product + shipping + tax. Then there must be an order total
         // module like 'low order fee' affecting the price. Take that difference as either
         // a discount or an additional handling fee.
         if ($pp_total > $total) {
            $this->data['fields']['discount_amount_cart'] = ($pp_total - $total);
         } else {
            $this->data['fields']['shipping_2'] = number_format(($total - $pp_total), 2, '.', '');
         }
      } else { //non-itemized
         $this->data['fields']['cmd'] = '_xclick';
         $this->data['fields']['item_name'] = html_entity_decode($this->config->get('config_store'), ENT_QUOTES, 'UTF-8');           
         $this->data['fields']['amount'] = $this->currency->format($order_info['total'], $currency, FALSE, FALSE);
      }
   
      $this->data['fields']['business'] = $this->config->get('pp_standard_email');
      $this->data['fields']['currency_code'] = $currency;
      $this->data['fields']['first_name'] = html_entity_decode($order_info['payment_firstname'], ENT_QUOTES, 'UTF-8');   
      $this->data['fields']['last_name'] = html_entity_decode($order_info['payment_lastname'], ENT_QUOTES, 'UTF-8');   
      $this->data['fields']['address1'] = html_entity_decode($order_info['payment_address_1'], ENT_QUOTES, 'UTF-8');   
      $this->data['fields']['address2'] = html_entity_decode($order_info['payment_address_2'], ENT_QUOTES, 'UTF-8');   
      $this->data['fields']['city'] = html_entity_decode($order_info['payment_city'], ENT_QUOTES, 'UTF-8');   
      $this->data['fields']['zip'] = html_entity_decode($order_info['payment_postcode'], ENT_QUOTES, 'UTF-8');   
           
      $this->data['fields']['country'] = $order_info['payment_iso_code_2'];
     
      $this->data['fields']['notify_url'] = HTTPS_SERVER . 'index.php?route=payment/pp_standard/callback';
      $this->data['fields']['email'] = $order_info['email'];
      $this->data['fields']['invoice'] = $this->session->data['order_id'] . ' - ' . html_entity_decode($order_info['payment_firstname'], ENT_QUOTES, 'UTF-8') . ' ' . html_entity_decode($order_info['payment_lastname'], ENT_QUOTES, 'UTF-8');
      $this->data['fields']['lc'] = $order_info['payment_iso_code_2'];
      $this->data['fields']['rm'] = '2';

      if (!$this->config->get('pp_standard_transaction')) {
         $this->data['fields']['paymentaction'] = 'authorization';
      } else {
         $this->data['fields']['paymentaction'] = 'sale';
      }
     
      $this->data['fields']['return'] = HTTPS_SERVER . 'index.php?route=checkout/success';
      $this->data['fields']['cancel_return'] = HTTPS_SERVER . 'index.php?route=checkout/payment';
     
      $this->load->library('encryption');
     
      $encryption = new Encryption($this->config->get('config_encryption'));
     
      $this->data['fields']['custom'] = $encryption->encrypt($this->session->data['order_id']);

      //bug fix
      //$this->data['back'] = HTTPS_SERVER . 'index.php?route=checkout/payment';
      if ($this->request->get['route'] != 'checkout/guest_step_3') {
         $this->data['back'] = HTTPS_SERVER . 'index.php?route=checkout/payment';
      } else {
         $this->data['back'] = HTTPS_SERVER . 'index.php?route=checkout/guest_step_2';
      }     
     
      $this->id       = 'payment';
      //$this->template = $this->config->get('config_template') . 'payment/pp_standard.tpl';
      //Q: pre-1.3.3 Backwards compatibility check
      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/pp_standard.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/payment/pp_standard.tpl';
      } elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/payment/pp_standard.tpl')) {
            $this->template = $this->config->get('config_template') . '/payment/pp_standard.tpl';
        } else {
            $this->template = 'default/template/payment/pp_standard.tpl';
        }
     
      $this->render();   
   }
///////Q: END ITEMIZED CODE /////////   
   public function callback() {
      $this->load->library('encryption');
   
      $encryption = new Encryption($this->config->get('config_encryption'));
     
      if (isset($this->request->post['custom'])) {
         $order_id = $encryption->decrypt($this->request->post['custom']);
      } else {
         $order_id = 0;
      }

      $this->load->model('checkout/order');
           
      $order_info = $this->model_checkout_order->getOrder($order_id);
     
      if ($order_info) {
         $request = 'cmd=_notify-validate';
     
         foreach ($this->request->post as $key => $value) {
            //$request .= '&' . $key . '=' . urlencode(stripslashes($value));
            $request .= '&' . $key . '=' . urlencode(htmlspecialchars_decode(stripslashes($value), ENT_QUOTES));
         }
           
         if (extension_loaded('curl')) {
            if (!$this->config->get('pp_standard_test')) {
               $ch = curl_init('https://www.paypal.com/cgi-bin/webscr');
            } else {
               $ch = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
            }

            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     
            $response = curl_exec($ch);
     
            if (strcmp($response, 'VERIFIED') == 0) {
               $this->model_checkout_order->confirm($order_id, $this->config->get('pp_standard_order_status_id'));
            } else {
               $this->model_checkout_order->confirm($order_id, $this->config->get('config_order_status_id'));
               mail($this->config->get('config_email'), 'ATTN: Unverified Paypal Order', "Order ID: $order_id needs manual review");
            }
               
            curl_close($ch);
         } else {
            $header  = 'POST /cgi-bin/webscr HTTP/1.0' . "\r\n";
            $header .= 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
            $header .= 'Content-Length: ' . strlen(utf8_decode($request)) . "\r\n\r\n";
            $header .= 'Connection: close'  ."\r\n\r\n";
           
            if (!$this->config->get('pp_standard_test')) {
               $fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 30);
            } else {
               $fp = fsockopen('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
            }
         
            if ($fp) {
               fputs($fp, $header . $request);
           
               while (!feof($fp)) {
                  $response = fgets($fp, 1024);
               
                  if (strcmp($response, 'VERIFIED') == 0) {
                     $this->model_checkout_order->confirm($order_id, $this->config->get('pp_standard_order_status_id'));
                  } else {
                     $this->model_checkout_order->confirm($order_id, $this->config->get('config_order_status_id'));
                     mail($this->config->get('config_email'), 'ATTN: Unverified Paypal Order', "Order ID: $order_id needs manual review");
                  }
               }
           
               fclose($fp);
            }
         }
      } else {
         mail($this->config->get('config_email'), 'ATTN: NO PAYPAL IPN ORDER ID', "PAYPAL IPN RETURNED BUT NO MATCHING ORDER ID");
      }
   }
}
?>


il faut aussi télécharger la dernière version du correctif qui se situe un peu plus haut dans la 2ème page, pour avoir le fichier .tpl correspondant.
http://forum.opencart.com/download/file.php?id=2569

Avec cela on résous donc le problème et le panier chez paypal est identique à celui de la boutique, les articles sont séparés.

Par contre pour le 2ème souci, à savoir quand le client ne retourne pas sur la boutique après le paiement, on ne trouve aucune trace de la commande dans l'administration d'OpenCart. Dans ce cas là comment faire? existe-t-il une extension, un module pour enregistrer la commande avant le paiement?

Dans OSCommerce, il y a une contribution "OrderCheck" très pratique : elle enregistre la commande avant paiement, pas dans la section commande normale, mais dans une autre. Cependant la commande est identique à une "vraie", on a le descriptif complet, etc. Comme ça si un client ne reviens pas sur la boutique après paiement, on a le descriptif dans l'email de paypal, on va dans l'admin et on déplace la commande dans la section normale, elle est bien associée au client, on la trouve dans son historique. La seule chose qui reste, c'est le panier du client qui n'est pas vidé, mais ça reste un détail.

http://www.oscommerce.com/community/contributions,1168

Existe-t-il un équivalent pour OpenCart? si ce n'est pas le cas, je pense que ça vaudrait le coup de l'adapter, d'autant plus que paypal n'est pas le seul moyen de paiement ou il y aura le problème quand les clients ne revienne pas sur la boutique. Cela dit c'est une "moitié" de problème si j'ose dire, car quand le client paye avec son compte paypal au lieu d'une CB, une option du compte paypal du marchand permet de rediriger automatiquement le client vers la boutique, au bout de quelques secondes. (il peut néanmoins y avoir le problème si le client n'attend pas et ferme direct la fenêtre...) Mais cette option n'est pas disponible quand le client paye en CB.

Je n'ai pas les connaissances nécessaires en programmation pour l'adapter moi-même, voilà pourquoi je vous fait part de tout ça :)
Version 1.4.8
afipc
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 2
Inscription: 06 Oct 2010, 11:09

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar LeorLindel » 10 Oct 2010, 10:53

afipc a écrit:Tout d'abord avec le module Paypal standard intégré, quand on arrive sur le paiement, le panier n'est pas décrit complètement, on a juste un seul article qui représente le total, avec comme nom celui de la boutique. Pas très pratique quand on reçoit un paiement. Ceci n'est pas grave quand le client clique bien sur "retour à la boutique" car la commande est enregistrée correctement et on a le détail.

Par contre, si le client ferme la page et ne revient pas sur la boutique, le paiement est ok, mais la commande n'est pas enregistrée, le panier pas vidé. Dans ce cas là il est utile d'avoir la description complète des articles commandés dans l'email de paypal, pour éviter d'avoir a téléphoner au client pour lui demander ce qu'il a commandé (pas terrible quand même...)

Ce problème est résolu sur la version 1.4.9 et suivante. Le détail est visible chez PayPal dans la zone de texte destinée initialement au nom de la boutique.
afipc a écrit:Par contre pour le 2ème souci, à savoir quand le client ne retourne pas sur la boutique après le paiement, on ne trouve aucune trace de la commande dans l'administration d'OpenCart. Dans ce cas là comment faire? existe-t-il une extension, un module pour enregistrer la commande avant le paiement?

Dans OSCommerce, il y a une contribution "OrderCheck" très pratique : elle enregistre la commande avant paiement, pas dans la section commande normale, mais dans une autre. Cependant la commande est identique à une "vraie", on a le descriptif complet, etc. Comme ça si un client ne reviens pas sur la boutique après paiement, on a le descriptif dans l'email de paypal, on va dans l'admin et on déplace la commande dans la section normale, elle est bien associée au client, on la trouve dans son historique. La seule chose qui reste, c'est le panier du client qui n'est pas vidé, mais ça reste un détail.

Existe-t-il un équivalent pour OpenCart? si ce n'est pas le cas, je pense que ça vaudrait le coup de l'adapter, d'autant plus que paypal n'est pas le seul moyen de paiement ou il y aura le problème quand les clients ne revienne pas sur la boutique. Cela dit c'est une "moitié" de problème si j'ose dire, car quand le client paye avec son compte paypal au lieu d'une CB, une option du compte paypal du marchand permet de rediriger automatiquement le client vers la boutique, au bout de quelques secondes. (il peut néanmoins y avoir le problème si le client n'attend pas et ferme direct la fenêtre...) Mais cette option n'est pas disponible quand le client paye en CB.

Je vais tester le retour boutique non validé par le client sur la version 1.4.9 et ferai un retour sur ce post.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4229
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar snakeman » 15 Déc 2010, 17:30

Bonjour à tous,

Je note le même second problème sur ma boutique.
Réception d'un paiement par PayPal mais aucune trace de la commande sur le panneau d'administration de la boutique :(

Utilisant la version Opencart 1.4.8 d'Open-cart france (merci au passage pour la contirbution :))
Je ne sais pas comment faire de mise à jour vers la version 1.4.9 sans tout casser :?:

Copier l'intégralité des fichiers de la 1.4.9 US + le language pack, devrait suffire ?
Opencart FR - 1.4.8
Hebergratuit.com
Module Paypal par défaut
Avatar de l’utilisateur
snakeman
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 2
Inscription: 15 Déc 2010, 17:25

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar LeorLindel » 15 Déc 2010, 18:55

Si ta boutique est en test, tu peux refaire une nouvelle installation de la v1.4.9 Fr mise ce jour au téléchargement sur le portail.

Si ta boutique est en production, tu peux transférer tous les fichiers sauf les deux fichiers config.php ainsi que tous les répertoires sauf le répertoire install et image. Il te faudra aussi ajouter dans la table country de ta base de données ce champ supplémentaire :
Code: Tout sélectionner
  `postcode_required` int(1) NOT NULL DEFAULT '0',

Pour cela le mieux est de supprimer la table en question et de la recréer en injectant cette requête :
Code: Tout sélectionner
CREATE TABLE `oc_country` (
  `country_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) COLLATE utf8_bin NOT NULL,
  `iso_code_2` varchar(2) COLLATE utf8_bin NOT NULL DEFAULT '',
  `iso_code_3` varchar(3) COLLATE utf8_bin NOT NULL DEFAULT '',
  `address_format` text COLLATE utf8_bin NOT NULL,
  `postcode_required` int(1) NOT NULL DEFAULT '0',
  `status` int(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`country_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=240 ;

--
-- Dumping data for table `oc_country`
--

INSERT INTO `oc_country` (`country_id`, `name`, `iso_code_2`, `iso_code_3`, `address_format`, `postcode_required`, `status`) VALUES
(1, 'Afghanistan', 'AF', 'AFG', '', 1, 1),
(2, 'Albania', 'AL', 'ALB', '', 0, 1),
(3, 'Algeria', 'DZ', 'DZA', '', 1, 1),
(4, 'American Samoa', 'AS', 'ASM', '', 0, 1),
(5, 'Andorra', 'AD', 'AND', '', 0, 1),
(6, 'Angola', 'AO', 'AGO', '', 0, 1),
(7, 'Anguilla', 'AI', 'AIA', '', 0, 1),
(8, 'Antarctica', 'AQ', 'ATA', '', 1, 1),
(9, 'Antigua and Barbuda', 'AG', 'ATG', '', 0, 1),
(10, 'Argentina', 'AR', 'ARG', '', 1, 1),
(11, 'Armenia', 'AM', 'ARM', '', 1, 1),
(12, 'Aruba', 'AW', 'ABW', '', 0, 1),
(13, 'Australia', 'AU', 'AUS', '', 1, 1),
(14, 'Austria', 'AT', 'AUT', '', 1, 1),
(15, 'Azerbaijan', 'AZ', 'AZE', '', 1, 1),
(16, 'Bahamas', 'BS', 'BHS', '', 0, 1),
(17, 'Bahrain', 'BH', 'BHR', '', 0, 1),
(18, 'Bangladesh', 'BD', 'BGD', '', 1, 1),
(19, 'Barbados', 'BB', 'BRB', '', 0, 1),
(20, 'Belarus', 'BY', 'BLR', '', 1, 1),
(21, 'Belgium', 'BE', 'BEL', '', 1, 1),
(22, 'Belize', 'BZ', 'BLZ', '', 0, 1),
(23, 'Benin', 'BJ', 'BEN', '', 0, 1),
(24, 'Bermuda', 'BM', 'BMU', '', 0, 1),
(25, 'Bhutan', 'BT', 'BTN', '', 0, 1),
(26, 'Bolivia', 'BO', 'BOL', '', 0, 1),
(27, 'Bosnia and Herzegowina', 'BA', 'BIH', '', 1, 1),
(28, 'Botswana', 'BW', 'BWA', '', 0, 1),
(29, 'Bouvet Island', 'BV', 'BVT', '', 1, 1),
(30, 'Brazil', 'BR', 'BRA', '', 1, 1),
(31, 'British Indian Ocean Territory', 'IO', 'IOT', '', 1, 1),
(32, 'Brunei Darussalam', 'BN', 'BRN', '', 0, 1),
(33, 'Bulgaria', 'BG', 'BGR', '', 1, 1),
(34, 'Burkina Faso', 'BF', 'BFA', '', 0, 1),
(35, 'Burundi', 'BI', 'BDI', '', 0, 1),
(36, 'Cambodia', 'KH', 'KHM', '', 0, 1),
(37, 'Cameroon', 'CM', 'CMR', '', 0, 1),
(38, 'Canada', 'CA', 'CAN', '', 1, 1),
(39, 'Cape Verde', 'CV', 'CPV', '', 0, 1),
(40, 'Cayman Islands', 'KY', 'CYM', '', 0, 1),
(41, 'Central African Republic', 'CF', 'CAF', '', 0, 1),
(42, 'Chad', 'TD', 'TCD', '', 0, 1),
(43, 'Chile', 'CL', 'CHL', '', 0, 1),
(44, 'China', 'CN', 'CHN', '', 1, 1),
(45, 'Christmas Island', 'CX', 'CXR', '', 1, 1),
(46, 'Cocos (Keeling) Islands', 'CC', 'CCK', '', 1, 1),
(47, 'Colombia', 'CO', 'COL', '', 0, 1),
(48, 'Comoros', 'KM', 'COM', '', 1, 1),
(49, 'Congo', 'CG', 'COG', '', 0, 1),
(50, 'Cook Islands', 'CK', 'COK', '', 0, 1),
(51, 'Costa Rica', 'CR', 'CRI', '', 0, 1),
(52, 'Cote D''Ivoire', 'CI', 'CIV', '', 1, 1),
(53, 'Croatia', 'HR', 'HRV', '', 1, 1),
(54, 'Cuba', 'CU', 'CUB', '', 1, 1),
(55, 'Cyprus', 'CY', 'CYP', '', 1, 1),
(56, 'Czech Republic', 'CZ', 'CZE', '', 1, 1),
(57, 'Denmark', 'DK', 'DNK', '', 1, 1),
(58, 'Djibouti', 'DJ', 'DJI', '', 0, 1),
(59, 'Dominica', 'DM', 'DMA', '', 0, 1),
(60, 'Dominican Republic', 'DO', 'DOM', '', 0, 1),
(61, 'East Timor', 'TP', 'TMP', '', 1, 1),
(62, 'Ecuador', 'EC', 'ECU', '', 0, 1),
(63, 'Egypt', 'EG', 'EGY', '', 0, 1),
(64, 'El Salvador', 'SV', 'SLV', '', 0, 1),
(65, 'Equatorial Guinea', 'GQ', 'GNQ', '', 0, 1),
(66, 'Eritrea', 'ER', 'ERI', '', 0, 1),
(67, 'Estonia', 'EE', 'EST', '', 1, 1),
(68, 'Ethiopia', 'ET', 'ETH', '', 0, 1),
(69, 'Falkland Islands (Malvinas)', 'FK', 'FLK', '', 1, 1),
(70, 'Faroe Islands', 'FO', 'FRO', '', 1, 1),
(71, 'Fiji', 'FJ', 'FJI', '', 0, 1),
(72, 'Finland', 'FI', 'FIN', '', 1, 1),
(73, 'France (R&eacute;gions, ne pas utiliser)', 'FR', 'FRA', '', 1, 1),
(74, 'France (D&eacute;partements)', 'FX', 'FXX', '', 1, 1),
(75, 'French Guiana', 'GF', 'GUF', '', 0, 1),
(76, 'French Polynesia', 'PF', 'PYF', '', 0, 1),
(77, 'French Southern Territories', 'TF', 'ATF', '', 1, 1),
(78, 'Gabon', 'GA', 'GAB', '', 0, 1),
(79, 'Gambia', 'GM', 'GMB', '', 0, 1),
(80, 'Georgia', 'GE', 'GEO', '', 1, 1),
(81, 'Germany', 'DE', 'DEU', '', 1, 1),
(82, 'Ghana', 'GH', 'GHA', '', 0, 1),
(83, 'Gibraltar', 'GI', 'GIB', '', 0, 1),
(84, 'Greece', 'GR', 'GRC', '', 1, 1),
(85, 'Greenland', 'GL', 'GRL', '', 1, 1),
(86, 'Grenada', 'GD', 'GRD', '', 0, 1),
(87, 'Guadeloupe', 'GP', 'GLP', '', 0, 1),
(88, 'Guam', 'GU', 'GUM', '', 0, 1),
(89, 'Guatemala', 'GT', 'GTM', '', 0, 1),
(90, 'Guinea', 'GN', 'GIN', '', 0, 1),
(91, 'Guinea-bissau', 'GW', 'GNB', '', 0, 1),
(92, 'Guyana', 'GY', 'GUY', '', 0, 1),
(93, 'Haiti', 'HT', 'HTI', '', 0, 1),
(94, 'Heard and Mc Donald Islands', 'HM', 'HMD', '', 1, 1),
(95, 'Honduras', 'HN', 'HND', '', 0, 1),
(96, 'Hong Kong', 'HK', 'HKG', '', 0, 1),
(97, 'Hungary', 'HU', 'HUN', '', 1, 1),
(98, 'Iceland', 'IS', 'ISL', '', 1, 1),
(99, 'India', 'IN', 'IND', '', 1, 1),
(100, 'Indonesia', 'ID', 'IDN', '', 1, 1),
(101, 'Iran (Islamic Republic of)', 'IR', 'IRN', '', 1, 1),
(102, 'Iraq', 'IQ', 'IRQ', '', 0, 1),
(103, 'Ireland', 'IE', 'IRL', '', 0, 1),
(104, 'Israel', 'IL', 'ISR', '', 1, 1),
(105, 'Italy', 'IT', 'ITA', '', 1, 1),
(106, 'Jamaica', 'JM', 'JAM', '', 0, 1),
(107, 'Japan', 'JP', 'JPN', '', 1, 1),
(108, 'Jordan', 'JO', 'JOR', '', 0, 1),
(109, 'Kazakhstan', 'KZ', 'KAZ', '', 1, 1),
(110, 'Kenya', 'KE', 'KEN', '', 0, 1),
(111, 'Kiribati', 'KI', 'KIR', '', 0, 1),
(112, 'North Korea', 'KP', 'PRK', '', 1, 1),
(113, 'Korea, Republic of', 'KR', 'KOR', '', 1, 1),
(114, 'Kuwait', 'KW', 'KWT', '', 0, 1),
(115, 'Kyrgyzstan', 'KG', 'KGZ', '', 1, 1),
(116, 'Lao People''s Democratic Republic', 'LA', 'LAO', '', 0, 1),
(117, 'Latvia', 'LV', 'LVA', '', 1, 1),
(118, 'Lebanon', 'LB', 'LBN', '', 0, 1),
(119, 'Lesotho', 'LS', 'LSO', '', 0, 1),
(120, 'Liberia', 'LR', 'LBR', '', 0, 1),
(121, 'Libyan Arab Jamahiriya', 'LY', 'LBY', '', 1, 1),
(122, 'Liechtenstein', 'LI', 'LIE', '', 1, 1),
(123, 'Lithuania', 'LT', 'LTU', '', 1, 1),
(124, 'Luxembourg', 'LU', 'LUX', '', 1, 1),
(125, 'Macau', 'MO', 'MAC', '', 0, 1),
(126, 'Macedonia', 'MK', 'MKD', '', 1, 1),
(127, 'Madagascar', 'MG', 'MDG', '', 0, 1),
(128, 'Malawi', 'MW', 'MWI', '', 1, 1),
(129, 'Malaysia', 'MY', 'MYS', '', 1, 1),
(130, 'Maldives', 'MV', 'MDV', '', 0, 1),
(131, 'Mali', 'ML', 'MLI', '', 0, 1),
(132, 'Malta', 'MT', 'MLT', '', 0, 1),
(133, 'Marshall Islands', 'MH', 'MHL', '', 1, 1),
(134, 'Martinique', 'MQ', 'MTQ', '', 1, 1),
(135, 'Mauritania', 'MR', 'MRT', '', 0, 1),
(136, 'Mauritius', 'MU', 'MUS', '', 0, 1),
(137, 'Mayotte', 'YT', 'MYT', '', 1, 1),
(138, 'Mexico', 'MX', 'MEX', '', 1, 1),
(139, 'Micronesia, Federated States of', 'FM', 'FSM', '', 1, 1),
(140, 'Moldova, Republic of', 'MD', 'MDA', '', 1, 1),
(141, 'Monaco', 'MC', 'MCO', '', 1, 1),
(142, 'Mongolia', 'MN', 'MNG', '', 1, 1),
(143, 'Montserrat', 'MS', 'MSR', '', 0, 1),
(144, 'Morocco', 'MA', 'MAR', '', 0, 1),
(145, 'Mozambique', 'MZ', 'MOZ', '', 0, 1),
(146, 'Myanmar', 'MM', 'MMR', '', 1, 1),
(147, 'Namibia', 'NA', 'NAM', '', 0, 1),
(148, 'Nauru', 'NR', 'NRU', '', 1, 1),
(149, 'Nepal', 'NP', 'NPL', '', 0, 1),
(150, 'Netherlands', 'NL', 'NLD', '', 1, 1),
(151, 'Netherlands Antilles', 'AN', 'ANT', '', 0, 1),
(152, 'New Caledonia', 'NC', 'NCL', '', 0, 1),
(153, 'New Zealand', 'NZ', 'NZL', '', 1, 1),
(154, 'Nicaragua', 'NI', 'NIC', '', 0, 1),
(155, 'Niger', 'NE', 'NER', '', 0, 1),
(156, 'Nigeria', 'NG', 'NGA', '', 0, 1),
(157, 'Niue', 'NU', 'NIU', '', 1, 1),
(158, 'Norfolk Island', 'NF', 'NFK', '', 0, 1),
(159, 'Northern Mariana Islands', 'MP', 'MNP', '', 0, 1),
(160, 'Norway', 'NO', 'NOR', '', 1, 1),
(161, 'Oman', 'OM', 'OMN', '', 0, 1),
(162, 'Pakistan', 'PK', 'PAK', '', 1, 1),
(163, 'Palau', 'PW', 'PLW', '', 1, 1),
(164, 'Panama', 'PA', 'PAN', '', 0, 1),
(165, 'Papua New Guinea', 'PG', 'PNG', '', 0, 1),
(166, 'Paraguay', 'PY', 'PRY', '', 0, 1),
(167, 'Peru', 'PE', 'PER', '', 0, 1),
(168, 'Philippines', 'PH', 'PHL', '', 1, 1),
(169, 'Pitcairn', 'PN', 'PCN', '', 1, 1),
(170, 'Poland', 'PL', 'POL', '', 1, 1),
(171, 'Portugal', 'PT', 'PRT', '', 1, 1),
(172, 'Puerto Rico', 'PR', 'PRI', '', 1, 1),
(173, 'Qatar', 'QA', 'QAT', '', 0, 1),
(174, 'Reunion', 'RE', 'REU', '', 1, 1),
(175, 'Romania', 'RO', 'ROM', '', 1, 1),
(176, 'Russian Federation', 'RU', 'RUS', '', 1, 1),
(177, 'Rwanda', 'RW', 'RWA', '', 0, 1),
(178, 'Saint Kitts and Nevis', 'KN', 'KNA', '', 1, 1),
(179, 'Saint Lucia', 'LC', 'LCA', '', 1, 1),
(180, 'Saint Vincent and the Grenadines', 'VC', 'VCT', '', 1, 1),
(181, 'Samoa', 'WS', 'WSM', '', 1, 1),
(182, 'San Marino', 'SM', 'SMR', '', 1, 1),
(183, 'Sao Tome and Principe', 'ST', 'STP', '', 1, 1),
(184, 'Saudi Arabia', 'SA', 'SAU', '', 1, 1),
(185, 'Senegal', 'SN', 'SEN', '', 0, 1),
(186, 'Seychelles', 'SC', 'SYC', '', 0, 1),
(187, 'Sierra Leone', 'SL', 'SLE', '', 0, 1),
(188, 'Singapore', 'SG', 'SGP', '', 1, 1),
(189, 'Slovak Republic', 'SK', 'SVK', '{firstname} {lastname}\r\n{company}\r\n{address_1}\r\n{address_2}\r\n{city} {postcode}\r\n{zone}\r\n{country}', 1, 1),
(190, 'Slovenia', 'SI', 'SVN', '', 1, 1),
(191, 'Solomon Islands', 'SB', 'SLB', '', 0, 1),
(192, 'Somalia', 'SO', 'SOM', '', 1, 1),
(193, 'South Africa', 'ZA', 'ZAF', '', 1, 1),
(194, 'South Georgia &amp; South Sandwich Islands', 'GS', 'SGS', '', 1, 1),
(195, 'Spain', 'ES', 'ESP', '', 1, 1),
(196, 'Sri Lanka', 'LK', 'LKA', '', 1, 1),
(197, 'St. Helena', 'SH', 'SHN', '', 1, 1),
(198, 'St. Pierre and Miquelon', 'PM', 'SPM', '', 1, 1),
(199, 'Sudan', 'SD', 'SDN', '', 1, 1),
(200, 'Suriname', 'SR', 'SUR', '', 0, 1),
(201, 'Svalbard and Jan Mayen Islands', 'SJ', 'SJM', '', 1, 1),
(202, 'Swaziland', 'SZ', 'SWZ', '', 0, 1),
(203, 'Sweden', 'SE', 'SWE', '', 1, 1),
(204, 'Switzerland', 'CH', 'CHE', '', 1, 1),
(205, 'Syrian Arab Republic', 'SY', 'SYR', '', 0, 1),
(206, 'Taiwan', 'TW', 'TWN', '', 1, 1),
(207, 'Tajikistan', 'TJ', 'TJK', '', 1, 1),
(208, 'Tanzania, United Republic of', 'TZ', 'TZA', '', 0, 1),
(209, 'Thailand', 'TH', 'THA', '', 1, 1),
(210, 'Togo', 'TG', 'TGO', '', 0, 1),
(211, 'Tokelau', 'TK', 'TKL', '', 1, 1),
(212, 'Tonga', 'TO', 'TON', '', 0, 1),
(213, 'Trinidad and Tobago', 'TT', 'TTO', '', 0, 1),
(214, 'Tunisia', 'TN', 'TUN', '', 0, 1),
(215, 'Turkey', 'TR', 'TUR', '', 1, 1),
(216, 'Turkmenistan', 'TM', 'TKM', '', 1, 1),
(217, 'Turks and Caicos Islands', 'TC', 'TCA', '', 0, 1),
(218, 'Tuvalu', 'TV', 'TUV', '', 0, 1),
(219, 'Uganda', 'UG', 'UGA', '', 0, 1),
(220, 'Ukraine', 'UA', 'UKR', '', 1, 1),
(221, 'United Arab Emirates', 'AE', 'ARE', '', 0, 1),
(222, 'United Kingdom', 'GB', 'GBR', '', 1, 1),
(223, 'United States', 'US', 'USA', '{firstname} {lastname}\r\n{company}\r\n{address_1}\r\n{address_2}\r\n{city}, {zone} {postcode}\r\n{country}', 1, 1),
(224, 'United States Minor Outlying Islands', 'UM', 'UMI', '', 1, 1),
(225, 'Uruguay', 'UY', 'URY', '', 1, 1),
(226, 'Uzbekistan', 'UZ', 'UZB', '', 1, 1),
(227, 'Vanuatu', 'VU', 'VUT', '', 0, 1),
(228, 'Vatican City State (Holy See)', 'VA', 'VAT', '', 1, 1),
(229, 'Venezuela', 'VE', 'VEN', '', 0, 1),
(230, 'Viet Nam', 'VN', 'VNM', '', 1, 1),
(231, 'Virgin Islands (British)', 'VG', 'VGB', '', 0, 1),
(232, 'Virgin Islands (U.S.)', 'VI', 'VIR', '', 1, 1),
(233, 'Wallis and Futuna Islands', 'WF', 'WLF', '', 0, 1),
(234, 'Western Sahara', 'EH', 'ESH', '', 1, 1),
(235, 'Yemen', 'YE', 'YEM', '', 0, 1),
(236, 'Yugoslavia', 'YU', 'YUG', '', 1, 1),
(237, 'Democratic Republic of Congo', 'CD', 'COD', '', 1, 1),
(238, 'Zambia', 'ZM', 'ZMB', '', 0, 1),
(239, 'Zimbabwe', 'ZW', 'ZWE', '', 0, 1);

Supprimer la table product_discount puis la recréer en injectant cette requête :
Code: Tout sélectionner
CREATE TABLE `oc_product_discount` (
  `product_discount_id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `customer_group_id` int(11) NOT NULL,
  `quantity` int(4) NOT NULL DEFAULT '0',
  `priority` int(5) NOT NULL DEFAULT '1',
  `price` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `date_start` date NOT NULL DEFAULT '0000-00-00',
  `date_end` date NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`product_discount_id`),
  KEY `product_id` (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=101 ;

Supprimer la table product_related puis la recréer en injectant cette requête :
Code: Tout sélectionner
CREATE TABLE `oc_product_related` (
  `product_id` int(11) NOT NULL,
  `related_id` int(11) NOT NULL,
  PRIMARY KEY (`product_id`,`related_id`),
  KEY `product_id` (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Supprimer la table product_special puis la recréer en injectant cette requête :
Code: Tout sélectionner
CREATE TABLE `oc_product_special` (
  `product_special_id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `customer_group_id` int(11) NOT NULL,
  `priority` int(5) NOT NULL DEFAULT '1',
  `price` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `date_start` date NOT NULL DEFAULT '0000-00-00',
  `date_end` date NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`product_special_id`),
  KEY `product_id` (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=252 ;

Injecter cette requête :
Code: Tout sélectionner
INSERT INTO `product_to_store` (`product_id`, `store_id`) VALUES
(44, 0),
(45, 0),

Supprimer la table review puis la recréer en injectant cette requête :
Code: Tout sélectionner
CREATE TABLE `oc_review` (
  `review_id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `customer_id` int(11) NOT NULL,
  `author` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `text` text COLLATE utf8_bin NOT NULL,
  `rating` int(1) NOT NULL,
  `status` int(1) NOT NULL DEFAULT '0',
  `date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`review_id`),
  KEY `product_id` (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=61 ;
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4229
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar snakeman » 15 Déc 2010, 20:00

Héhé, merci du tuyau, je teste ça tranquillou ce soir :)

Je testerai également en faisant une sauvegarde de la version 1.4.8 et en restaurant sur la version 1.4.9
Opencart FR - 1.4.8
Hebergratuit.com
Module Paypal par défaut
Avatar de l’utilisateur
snakeman
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 2
Inscription: 15 Déc 2010, 17:25

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar afipc » 16 Déc 2010, 17:58

LeorLindel a écrit:Je vais tester le retour boutique non validé par le client sur la version 1.4.9 et ferai un retour sur ce post.


Hello,
y'a t-il du nouveau concernant ce second problème avec la version 1.4.9?
Version 1.4.8
afipc
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 2
Inscription: 06 Oct 2010, 11:09

Re: Paypal standard, articles séparés, problème si pas de re

Messagepar LeorLindel » 16 Déc 2010, 18:08

Pas eu vraiment l'occasion de faire le test, mais tu peux tester par toi-même puisque la version 1.4.9 Fr est désormais accessible au téléchargement.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4229
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce


Retourner vers Paiements

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron