2012-07-12 4 views
4

나는 사용자 정의 속성을 정의하고 Opencart 관리 패널을 통해 제품에 지정했습니다. 체크 아웃시 이러한 특성을 검색하여 배송 비용을 조정하려고합니다.Opencart에서 사용자 정의 속성을 검색하는 방법은 무엇입니까?

현재 getQuote 기능의 catalog/model/shipping/ups.php 파일에서 작업하고 있습니다. 나는이와 긴밀한 받고 있어요 :

Array 
(
    [59] => Array 
     (
      [key] => 59 
      [product_id] => 59 
      [name] => My Product Name 
      [model] => ABC 
      [shipping] => 1 
      [image] => data/myproduct.jpg 
      [option] => Array 
       (
       ) 

      [download] => Array 
       (
       ) 

      [quantity] => 1 
      [minimum] => 1 
      [subtract] => 1 
      [stock] => 1 
      [price] => 29.99 
      [total] => 29.99 
      [reward] => 0 
      [points] => 0 
      [tax_class_id] => 0 
      [weight] => 3.75 
      [weight_class_id] => 5 
      [length] => 0.00 
      [width] => 0.00 
      [height] => 0.00 
      [length_class_id] => 3 
     ) 

) 

그러나, 사용자 정의 속성이 반환되지 않습니다 :

print_r($this->cart->getProducts()); 

나에게 다음과 같은 제품 데이터를 제공한다. 제품 ID를 속성 가져 오기 기능에 전달하는 좋은 방법이있을 것이라고 확신하지만 찾을 수 없습니다. Opencart 문서는 개발면에서 부족하고 Google에서는 전혀 도움이되지 않습니다.

는 일반적으로 나는 전체 디렉토리 구조 중 도대체 내가 무엇을 찾고 찾을 수 있지만, 쉘 접근이 특정 웹 호스트 :(에서 사용할 수 없습니다 grep을 것입니다.

편집

속성은 Opencart에 내장 된 새로운 기능이라고 생각합니다. 사용자 정의 필드와 같습니다.

어쨌든 관리자 측에서 카탈로그> 속성으로 이동하여 "배송 상자 유형"이라는 사용자 정의 속성을 생성했습니다. 특정 제품에 대해 속성을 설정할 수 있습니다. eenshot. 내 목표는 "배송 상자 유형"의 값을 검색하는 것입니다. 그 질문에 대답합니까 @ Cleverbot? 나는 그것을 잡기 위해 사용자 정의 db 쿼리를 할 수 있다고 확신하지만, theres는 속성을 가져 오는 내장 함수 여야합니까?

opencart product attributes

+0

전달하려는 속성 이름은 무엇입니까? – Cleverbot

+0

그리고 어떤 테이블 에서요? – Cleverbot

답변

6

여기에 속성을 확인하려면 카트에서 현재 제품을 통해 루프의 예입니다,

$this->load->model('catalog/product'); 

$attributes = $this->model_catalog_product->getProductAttributes(59); 

print_r($attributes); 

출력

Array 
(
    [0] => Array 
     (
      [attribute_group_id] => 9 
      [name] => Shipping Fields 
      [attribute] => Array 
       (
        [0] => Array 
         (
          [attribute_id] => 16 
          [name] => Shipping Box Type 
          [text] => SM2 
         ) 

       ) 

     ) 

) 

더 복용 주어진에 대한 속성을 PRODUCT_ID 검색 그들은 :

$this->load->model('catalog/product'); 

$cart_products = $this->cart->getProducts(); 

// get attributes for each product in the cart 
foreach($cart_products as $product) { 
    $attributes = $this->model_catalog_product->getProductAttributes($product['product_id']); 
    print_r($attributes); 
} 
2

이 Opencart에서 가장 직관적 인 기능이 아닙니다. 먼저 catalog> attributes> 속성 그룹으로 가야하고 속성의 제목이 될 그룹 이름을 만들어야합니다. 이를 위해 "배송 사양"이 될 수 있습니다.

그런 다음 카탈로그> 속성> 속성>으로 가서 "배송 사양"에서 "배송 상자 유형"이라는 새 속성을 만들어야합니다.

이제 카탈로그> 제품으로 이동하여 제품에 속성을 추가 할 준비가되었습니다.

캐치은 내가 생각하기를 바라는 바대로 표시되지 않는다는 것입니다. 제품 페이지의 설명 옆에있는 사양 탭 아래에 표시됩니다. "사양"을 카탈로그 /보기/* your_theme */products/products.tpl에서 원하는 제목으로 변경하거나 동일한 tpl 파일을 편집하여 데이터 출력이 수행되는 컨테이너/형식을 변경할 수 있습니다.

+0

감사합니다 @Cleverbot. 이것은 나를 위해 완전히 대답하지는 못했지만, 내가 찾고 있던 함수를 찾는데 도움이되었다 :'getProductAttributes'. 내가 사용하게 될 실제 코드가있는 답변을 게시 할 것입니다. – Banjer

+0

아, 함수 이름과 위치를 원한다고 본다. 글쎄, 네가 가지고있어 줘서 고마워. – Cleverbot

관련 문제