2013-11-03 4 views
0

Magento SOAP API로 일부 작업을하고 있으며 유효한 주문 목록을 만들려고합니다. 나는 목록을 가지고 있지만 구성 가능한 제품과 간단한 이미지를 보여 주며 아래 그림과 같이 복제 할 수 있습니다. item list배열을 가져 오는 것을 필터링하는 중 PHP

동일한 제품의 첫 번째 제품은 구성 가능한 제품이고 두 번째 제품은 간단한 제품입니다. 내가해야 할 일은 간단한 제품을 걸러 내서 목록에 표시되지 않거나 저장되지 않도록하는 것입니다. 이것은 간단하게 들리지만 해결 방법을 고민하기 위해 고생하고있는 한 가지 문제가 있습니다. 위 이미지에서 Nokia와 같은 제품은 표준 단순 제품이며 구성 가능한 속성이없고 표시해야합니다.

그래서 기본적으로 구성 가능한 제품과 관련된 간단한 제품을 제거해야하지만 다른 제품은 제거해야합니다. 여기

내 루프와 배열 푸시입니다 :

foreach($sales_order_info->items as $i){ 
       $nextItem = new item(); 
       $nextItem->set_order_id($i->order_id); 
       $nextItem->set_sku($i->sku); 
       $nextItem->set_name($i->name); 
       $nextItem->set_qty_ordered($i->qty_ordered); 
       $nextItem->set_price($i->price); 
       $nextItem->set_row_total($i->row_total); 

       array_push($this->items, $nextItem); 
      } 

정말 감사합니다

답변

1

는 구성 가능한 제품의 간단한 제품 필터링해야하는 경우 :

if ($product->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) {    
    if ($product->getParentItemId()) { 
         $parent_product_type = Mage::getModel('sales/order_item')->load($product->getParentItemId())->getProductType(); 
         //if Parent product type is configurable don't output its simple product 
         if ($parent_product_type == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) { 
          continue; 
         } 
        } 
} 

그렇지 않으면를 Magento API를 확장하고 나만의 맞춤 통화를 작성하려면 다음을 시도해보십시오.

$i->type 

를 다음 PHP (즉, 같은 이름을 가진 두 요소가있는 경우와 함께 배열을 필터링 :

두 번째 옵션은 (당신이 무엇을 호출,로드 방법을 잘 모르는)를 사용하려고하는 것입니다 수량이 == 단순한 유형을 제거하십시오)

또는 세 번째 옵션은 (무료 제품이없는 경우) 구성 가능에 속한 단순한 제품이 가격을 가지고 있기 때문에 가격이 0인지 확인하십시오. = 0.0000

if ($i->price==0.0000) { 
    continue; 
} 
+0

이 코드는 필자가 필요로하는 것처럼 보이지만 자그마한 자체 코드를 수정 한 것처럼 코드를 작성했습니다. SOAP api 호출을 사용하여이 작업을 수행하는 방법을 보여 주시겠습니까? 덕분에 –

+0

가능한 솔루션을 사용하여 내 대답을 업데이트, 사용자 지정 호출 내 자신의 확장을 작성하는 것이 좋습니다 –

+0

감사 세르게이! 나는 네가하는 말을 이해하고 네가 네가 그것을 구현하는 방법을 알게된다. 최선의 방법은 배열을 필터링하는 것입니다 무엇을 해결하기 위해 고군분투 .. 당신이 날 어떻게 그것을 할 수있는 지침을 줄 수 있습니까? 감사합니다 –

관련 문제