2013-02-19 89 views
0

我想在OpenCart中對實際購物車進行一些更改。 至於現在將產品添加到購物車信息時,將顯示方式如下:自定義購物車的「OpenCart」

Product1  Amount: 
Size: XL  2 

如果相同的產品一個新行被創建,但具有不同的尺寸,添加到購物車。 我的願望是讓車

Product1  S M L XL 
      1  2 

所以以下的設計,每個產品只能創建一個,單行,然後顯示在相應尺寸等級的正確的金額。 這是我到目前爲止的代碼:

<?php 
      $saveName = array(); 
      $sizesArray = array("S","M","L","XL"); 
      $x = 0; 
       if($products || $vouchers) { 
        foreach ($products as $product){ 
         foreach ($product['option'] as $option) { 
          $option['value']; 
          } 

        $saveName[$x] = $product['name'].'|'.$option['value'].'|'.$product['quantity']; 
        $seperateValues = explode("|",$saveName[$x]); 
        ?> 
        <tr> 
         <td class="image"><?php if ($product['thumb']) { ?> 
         <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" /></a> 
         <?php } ?></td> 
         <td class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></td> 

         <?php 
         foreach($sizesArray as $sizes){ 
          if($sizes == $seperateValues[1]){ 
           echo '<td>'.$seperateValues[0].' '.$seperateValues[2].'</td>'; 
           } 
          else{ 
           echo '<td>0</td>'; 
           } 
         } 
         ?> 

         <td class="total"><?php echo $product['total']; ?></td> 
         <td class="remove">Remove</td> 
        </tr> 


        <?php 
        $x++; 
        } 
        ?> 

的編碼格式下正確的類別數量,但我不能讓它產生只有一排爲每個產品。任何幫助都非常appriciated。

謝謝!

回答

0

修改模板不會完成這項工作,因爲Opencart內部以product_id:serialized_array_of_options格式將產品存儲在數組中,因此具有相同標識但具有不同選項組合的產品將分開存儲。你可以看到,在/system/library/cart.php,在方法的getProducts:

foreach ($this->session->data['cart'] as $key => $quantity) { 

    $product = explode(':', $key); 
    $product_id = $product[0]; 
    $stock = true; 

    // Options 
    if (isset($product[1])) { 
     $options = unserialize(base64_decode($product[1])); 
    } else { 
     $options = array(); 
    } 

所以來實現的,你想要什麼,你將不得不做出改變的方式車類存儲產品的會話。

+0

對於如何編輯代碼以獲得我需要的結果,您有什麼建議嗎? – JacobC 2013-02-19 20:35:58