diff --git a/VERSIONS_HOTLINE/37288 b/VERSIONS_HOTLINE/37288
new file mode 100644
index 0000000000000000000000000000000000000000..9425e79c1d9abbcf34226f57bf3aec34d4ab13a3
--- /dev/null
+++ b/VERSIONS_HOTLINE/37288
@@ -0,0 +1 @@
+ - ticket #37288 : Affinement de la localisation des exemplaires grace à la cote récupérée depuis le webservice
\ No newline at end of file
diff --git a/library/Class/Exemplaire.php b/library/Class/Exemplaire.php
index 697b53c3c031d2e2a9fb0891230ab6668b535293..618854ad9b72a58672fe5373b44d6e7bb08edb72 100644
--- a/library/Class/Exemplaire.php
+++ b/library/Class/Exemplaire.php
@@ -79,6 +79,16 @@ class Class_Exemplaire extends Storm_Model_Abstract {
   }
 
 
+  public function getBestCote() {
+    if($this->_sigb_exemplaire &&
+       ($sigb_cote = $this->_sigb_exemplaire->getCote()) &&
+       (strlen($sigb_cote) > strlen($this->getCote())))
+      return $sigb_cote;
+
+    return $this->getCote();
+  }
+
+
   public function getLibelleSite() {
     if (null === ($site = Class_CodifAnnexe::findFirstBy(['code' => (string)$this->getAnnexe()])))
       return '';
diff --git a/library/Class/Localisation.php b/library/Class/Localisation.php
index 3bfc0130b59ebfa1ed5ea8f4abae14748d775c2e..e6ef278ee1ece6f1d67815d466503dd3e4e875e8 100644
--- a/library/Class/Localisation.php
+++ b/library/Class/Localisation.php
@@ -236,6 +236,7 @@ class Class_Localisation extends Storm_Model_Abstract {
       return null;
 
     $quality += $cote_quality;
+
     return [$quality => $this];
   }
 
@@ -244,18 +245,20 @@ class Class_Localisation extends Storm_Model_Abstract {
     if(!$this->hasCoteDebut() && !$this->hasCoteFin())
       return 0;
 
-    if($this->hasCoteFin() && ($item->getCote() > $this->getCoteFin()))
+    $item_cote = $item->getBestCote();
+
+    if($this->hasCoteFin() && ($item_cote > $this->getCoteFin()))
       return -1;
 
-    if($this->hasCoteDebut() && ($item->getCote() < $this->getCoteDebut()))
+    if($this->hasCoteDebut() && ($item_cote < $this->getCoteDebut()))
       return -1;
 
     $cote_quality = 0;
 
-    if($this->hasCoteDebut() && ($item->getCote() >= $this->getCoteDebut()))
+    if($this->hasCoteDebut() && ($item_cote >= $this->getCoteDebut()))
       $cote_quality++;
 
-    if($this->hasCoteFin() && ($item->getCote() <= $this->getCoteFin()))
+    if($this->hasCoteFin() && ($item_cote <= $this->getCoteFin()))
       $cote_quality++;
 
     return $cote_quality;
diff --git a/tests/library/Class/LocalisationTest.php b/tests/library/Class/LocalisationTest.php
index 73c9007c820b08969a95edf6d9e08f5af135bcff..261a037d12322a44e90be943fa87458183065585 100644
--- a/tests/library/Class/LocalisationTest.php
+++ b/tests/library/Class/LocalisationTest.php
@@ -35,6 +35,13 @@ class LocalisationTest extends Storm_Test_ModelTestCase {
                     'section' => 'A',
                     'type_doc' => 1]);
 
+    $this->fixture('Class_Localisation',
+                   ['id' => 55,
+                    'id_bib' => 1,
+                    'libelle' => 'Polar',
+                    'cote_debut' => 'ROM AAA',
+                    'cote_fin' => 'ROM ZZZ']);
+
     $this->fixture('Class_Localisation',
                    ['id' => 2,
                     'id_bib' => 1,
@@ -171,6 +178,25 @@ class LocalisationTest extends Storm_Test_ModelTestCase {
                         Class_Localisation::getItemLocalisation($item)['libelle']);
   }
 
-}
 
-?>
\ No newline at end of file
+  /** @test */
+  public function romanByCoteFromSigbLocalisationShouldBePolar() {
+    $item = $this->fixture('Class_Exemplaire',
+                           ['id' => 4,
+                            'id_bib' => 1,
+                            'cote' => 'ROM',
+                            'section' => '1',
+                            'type_doc' => 1,
+                            'annexe' => 1,
+                            'notice' => $this->fixture('Class_Notice',
+                                                       ['id' => 2,
+                                                        'type_doc' => 1])]);
+
+    $item->setSigbExemplaire(Storm_Test_ObjectWrapper::mock()
+                             ->whenCalled('getCote')
+                             ->answers('ROM POL'));
+
+    $this->assertEquals('Polar',
+                        Class_Localisation::getItemLocalisation($item)['libelle']);
+  }
+}