Phương thức thanh toán khác nhau cho các loại sản phẩm khác nhau


11

Có cách nào để có các phương thức thanh toán khác nhau có sẵn cho các loại sản phẩm khác nhau không?

Đây là kịch bản của tôi và những gì tôi đã tìm ra cho đến nay:

Tôi có hai loại sản phẩm trên trang web Drupal Commerce của mình, để bán vé xe buýt du lịch. Một loại chỉ là đặt vé xe buýt nơi bạn chọn ngày và giờ (chi tiết đơn hàng tùy chỉnh) cho vé buss của bạn. Loại khác dành cho thanh toán thực tế, trong đó bạn có thể chọn thẻ buss, thêm các chuyến tham quan bổ sung (với các chi tiết đơn hàng tùy chỉnh) và sau đó thanh toán bằng Paypal.

Tôi đang sử dụng phiên bản tùy chỉnh của mô-đun thanh toán mẫu, cho loại thanh toán đặt phòng và sử dụng mô-đun Paypal Drupal Commerce cho các khoản thanh toán thực tế.

Điều tôi cần là có sẵn phương thức thanh toán đặt phòng tùy chỉnh cho một loại sản phẩm và phương thức thanh toán paypal cho loại sản phẩm khác.

Tôi đã cố gắng thêm một điều kiện cho loại sản phẩm và không thể làm điều này. Chúng ta có thể thêm một điều kiện cho một sản phẩm cụ thể, nhưng không phải cho một loại sản phẩm. Điều này sẽ là lý tưởng: https://skitch.com/ipwa/eywxa/add-a-new-condition-chasquibus

Những gì tôi đã làm bây giờ là sao chép quy tắc Paypal cho từng loại sản phẩm thanh toán và chọn SKU sản phẩm đó làm điều kiện. Điều này không lý tưởng, vì nếu người dùng có nhiều sản phẩm thanh toán, chúng tôi sẽ nhận được phương thức thanh toán Paypal trùng lặp có sẵn cho mỗi sản phẩm thanh toán bổ sung trên đơn đặt hàng. Tôi đoán điều này có ý nghĩa vì chúng tôi có quy tắc phương thức thanh toán cho từng người.

Giải pháp của tôi sẽ có thể có một điều kiện cho loại sản phẩm theo quy tắc phương thức thanh toán hoặc có thể có bốn SKU sản phẩm thanh toán trong điều kiện 'Đơn hàng chứa một sản phẩm cụ thể'.

Câu trả lời:


10

Sản phẩm typelà một thuộc tính của commerce_productthực thể, vì vậy bạn có thể sử dụng điều kiện "So sánh dữ liệu" tích hợp để kiểm tra nó.

Chỉ cần thêm một điều kiện mới của loại "So sánh dữ liệu" và làm cho bộ chọn dữ liệu trông như thế này:

Ảnh chụp màn hình 1

Khi bạn tiếp tục, bạn sẽ nhận được một màn hình như thế này:

Ảnh chụp màn hình 2

Như bạn có thể thấy bạn có một danh sách các loại sản phẩm đẹp để lựa chọn. Tôi chỉ thử nghiệm điều đó và nó hoạt động một điều trị.

Nếu điều đó không hoạt động vì bất kỳ lý do gì, thì thật dễ dàng để thực hiện điều kiện quy tắc của riêng bạn trong một mô-đun tùy chỉnh:

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;
}

Wow, cảm ơn, đây có vẻ là cách để đi bây giờ. Mặc dù câu trả lời không trả lời chính xác câu hỏi (tôi có thể cần gửi một vấn đề cho Commerce để cung cấp điều kiện quy tắc loại sản phẩm), nhưng nó giải quyết được vấn đề của tôi. Tôi sẽ để tiền thưởng mở để cho nhiều người trả lời, nhưng có vẻ như bạn sẽ nhận được tiền thưởng. Cảm ơn vì ảnh chụp màn hình btw, giúp rất nhiều.
ipwa

@ipwa Hóa ra nó không quá khó, tôi đã cập nhật câu trả lời
Clive

Tôi ước rằng bạn đã không xóa câu trả lời trước đó của bạn và thay vào đó là câu trả lời khác. Khi tôi cố gắng sử dụng thương mại-sản phẩm: nhập làm bộ chọn Dữ liệu cho điều kiện so sánh Dữ liệu, tôi gặp lỗi này: "Bộ chọn dữ liệu thương mại-sản phẩm: loại cho dữ liệu tham số không hợp lệ."
ipwa

@ipwa Ý bạn là gì? Cái nào có mã hay cái đầu tiên? Tôi đã đặt lại mã trong câu trả lời trong trường hợp bạn muốn nói điều đó
Clive

Ý tôi là câu trả lời của bạn về việc sử dụng sản phẩm SKUS với OR, điều đó giúp tôi hiểu rất nhiều về OR và cách sử dụng nó. Hiện đang sử dụng điều đó, sẽ thử mô-đun tùy chỉnh để thực hiện điều kiện của riêng tôi. Cảm ơn đã học được rất nhiều về các quy tắc với câu trả lời của bạn.
ipwa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.