제품 유형에 따라 다른 결제 방법


11

제품 유형마다 다른 결제 방법을 사용할 수 있습니까?

이것은 나의 시나리오이며 내가 지금까지 알아 낸 것입니다.

버스 여행 패스 판매를 위해 Drupal Commerce 사이트에 두 가지 제품 유형이 있습니다. 한 가지 유형은 버스 티켓의 날짜 및 시간 (맞춤 광고 항목)을 선택하는 버스 패스를 예약하는 것입니다. 다른 유형은 버스 지불을 선택하고 추가 투어를 추가하고 (맞춤 광고 항목도 포함) 페이팔로 지불 할 수있는 실제 지불입니다.

예약 결제 유형에 대해 맞춤형 결제 방법 예제 결제 모듈을 사용하고 실제 결제에 Drupal Commerce Paypal 모듈을 사용하고 있습니다.

필요한 것은 한 제품 유형에 대해 사용자 정의 예약 지불 방법을 사용하고 다른 제품 유형에 대해서는 페이팔 지불 방법을 사용하는 것입니다.

제품 유형에 대한 조건을 추가하려고했지만이를 수행 할 수 없었습니다. 특정 제품에는 조건을 추가 할 수 있지만 제품 유형에는 조건을 추가 할 수 없습니다. 이것은 이상적입니다 : https://skitch.com/ipwa/eywxa/add-a-new-condition-chasquibus

내가 지금 한 것은 각 지불 제품 유형에 대한 페이팔 규칙을 복제하고 해당 제품 SKU를 조건으로 선택하는 것입니다. 사용자에게 결제 제품이 둘 이상인 경우 주문시 추가 결제 제품마다 중복 페이팔 결제 방법을 사용할 수 있으므로 이상적이지 않습니다. 각 지불 방법 규칙이 있으므로 이것이 의미가 있다고 생각합니다.

내 솔루션은 지불 방법 규칙에서 제품 유형에 대한 조건을 갖거나 '특정 제품을 포함하는 주문'조건에서 4 개의 지불 제품 SKU를 가질 수 있습니다.

답변:


10

제품 type은 commerce_product엔터티 의 속성 이므로 기본 제공 "데이터 비교"조건을 사용하여 테스트 할 수 있습니다.

"데이터 비교"유형의 새 조건을 추가하고 데이터 선택기를 다음과 같이 만드십시오.

스크린 샷 1

계속하면 다음과 같은 화면이 나타납니다.

스크린 샷 2

보시다시피 선택할 수있는 제품 유형의 드롭 다운 목록이 나타납니다. 방금 테스트하여 치료를합니다.

어떤 이유로 든 작동하지 않으면 사용자 정의 모듈에서 자체 규칙 조건을 구현하는 것이 매우 쉽습니다.

function MYMODULE_rules_condition_info() {
  return array(
    'commerce_product_is_type' => array(
      'label' => t('Product is a certain type'), 
      'parameter' => array(
        'product' => array(
          'label' => t('Product'),
          'type' => 'commerce_product',
        ),
        'type' => array(
          'label' => t('Product Type (Machine Name)'),
          'type' => 'text'
        )
      ), 
      'group' => t('Commerce Product'),
      'callbacks' => array(
        'execute' => 'MYMODULE_commerce_product_is_type',
      )
    ),
  );
}


function MYMODULE_commerce_product_is_type($product, $type) {
  return $product->type == $type;
}

와, 고마워, 지금은 갈 길이야 답변이 질문에 정확하게 답변하지는 않지만 (상품 유형 규칙 조건을 제공하기 위해 Commerce에 문제를 제기해야 할 수도 있음) 문제를 해결합니다. 더 많은 사람들이 대답 할 수 있도록 현상금을 열어 두겠습니다. 그러나 현상금을 얻는 것처럼 보입니다. 스크린 샷 btw에 감사드립니다. 많은 도움이됩니다.
— ipwa

@ipwa 너무 까다 롭지 않은 것으로 밝혀졌습니다. 답변을 업데이트했습니다.
— Clive

이전 답변을 삭제하지 않고 다른 답변으로 추가했습니다. commerce-product : type을 데이터 비교 조건의 데이터 선택기로 사용하려고하면 "데이터 선택기 commerce-product : type for parameter data is invalid."라는 오류가 발생합니다.
— ipwa

@ipwa 무슨 뜻인가요? 코드가 있거나 첫 번째 코드입니까? 나는 당신이 그 일을 의미 경우에 대답 코드 등을 넣어 한
— 클라이브

나는 SKUS 제품을 OR과 함께 사용하는 것에 대한 귀하의 답변을 통해 OR을 이해하고 사용하는 방법을 많이 이해할 수있었습니다. 현재 그것을 사용하고, 내 자신의 조건을 구현하기 위해 사용자 정의 모듈을 사용해보십시오. 답변을 통해 규칙에 대해 많은 것을 배웠습니다.
— ipwa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.