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


11

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

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

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

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

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

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

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

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

답변:


10

제품 typecommerce_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.