[php] 프로그래밍 방식으로 Magento에서 사용자 지정 옵션을 얻는 방법



Answers

Order / Invoice / Shipment / Creditmemo의 관리 패널 에서 나중에 선택한 사용자 정의 옵션을보고 싶은 사용자는 / app / design / adminhtml / [default] / default / template / sales / order / view / items / renderer / default.phtml
/app/design/adminhtml/[default]/default/template/sales/order/invoice/view/items/renderer/default.phtml / app / design / adminhtml / [default] / default / template / sales / order / shipment /view/items/renderer/default.phtml /app/design/adminhtml/[default]/default/template/sales/order/creditmemo/view/items/renderer/default.phtml 추신 : configurated.phtml을 변경하지 않았습니다. 송장 / 선적 / 신용 메모 파일

<?php echo $_item->getSku(); ?></div> <?php echo $_item->getSku(); ?></div> 그리고 행의 닫기 태그가되기 전에 </td> (주의 : 각 파일마다 다릅니다)

코드를 입력하세요:

        <?php  
    //---------start:---------------          
    // if ($allOptions = $_item->_getData('product_options')) {             // only for order item
    if ($allOptions = $_item->getOrderItem()->getData('product_options')) { // for invoice, shipping, creditmemo
        $options = unserialize($allOptions);

        if (isset($options['options'])) { 
            foreach ($options['options'] as $optionValues) {
                if ($optionValues['value']) {
                    echo '&nbsp;<strong><i>'. $optionValues['label'].'</i></strong>: ';

                    $_printValue = isset($optionValues['print_value']) ? $optionValues['print_value'] : strip_tags($optionValues['value']);
                    $values = explode(', ', $_printValue);
                    foreach ($values as $value) {
                        if (is_array($value))
                          foreach ($value as $_value) 
                              echo $_value;
                        else echo $value; 
                    }
                    echo '<br />';
                }
            }    
        }
    }
    //---------end:---------------                  
    ?>        

또한 코드에는 order.phtml 파일에서만 작동하는 줄 (문장 인 경우)이 있고 인보이스 / 배송 / 신용 카드 파일에서 문장이 작동하는 경우 두 번째 줄이 있습니다. 코드를 게시하는 위치에 따라 올바른 문장이 주석 처리되었는지 확인하십시오.

이 코드가 도움이되기를 바랍니다. 지식 탐구 덕분에 코드가 제게 도움이 되었어요 :-) jazkat

Question

체크 아웃 할 때 코드를 통해 선택한 모든 사용자 지정 옵션을 가져올 수 있어야하는 몇 가지 제품이 있습니다.

어떤 도움을 많이 주시면 감사하겠습니다!




    $quote=$observer->getEvent()->getQuote();
    $quoteid=$quote->getId();
    $session= Mage::getSingleton('checkout/session');
    $getotal = Mage::helper('checkout')->getQuote()->getGrandTotal();

    foreach($session->getQuote()->getAllItems() as $item)
        {

         $sellcheck = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getissellbool();
         $options = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getProductOptionsCollection();
         foreach ($options as $o) 
             { 
                $title = $o->getTitle();
                $values = $o->getValues();
                foreach($values as $v)
                  {
                     $mydata = $v->getPrice();
                     echo 'options price: ' . $mydata;                      
                        }

               } 

          }

장 Y 구니에서 제품 사용자 정의 옵션에 액세스하려면이 코드를 활용할 수 있습니다.




체크 아웃 페이지에 표시 할 수있는 것처럼 해결할 수도 있습니다.

 $items = Mage::getModel('checkout/cart')->getQuote()->getAllVisibleItems();
 foreach($items as $product) {
     $options = $product->getProduct()->getTypeInstance(true)->getOrderOptions($product->getProduct());
     if ($options)
     {
        if (isset($options['options']))
        {
           $result = $options['options'];
        }
        if(count($result)>0){
           foreach($result as $key =>$value){
                $resultoption =  $value['value'];
           }
        }
    }



Links



Tags

php php   magento