私は Commerce Userpoints を使用して、購入に基づいてポイントを付与します。その後、顧客はそれらのリワードを将来の購入で割引に使用できます。
ユーザーが既に割引を適用している場合、チェックアウトペインをカスタマイズしたいと思います。 Commerce Userpoints Discountは、userpoints
というラインアイテムタイプを作成します。私の最初のアイデアは、現在の注文にuserpoints
タイプのラインアイテムが含まれているかどうかを確認することでしたが、その方法がわかりません。何か助けていただければ幸いです!
次の2つの方法のいずれかを使用して、オーダーの特定のタイプのラインアイテムを確認できます。
注文を受けて、配送品目を探しましょう。
// Load your order.
$order = commerce_order_load(/* Order ID */);
if (!empty($order->commerce_line_items)) {
// Iterate over the line items.
foreach ($order->commerce_line_items[LANGUAGE_NONE] as $line_item_data) {
$line_item = commerce_line_item_load($line_item_data['line_item_id']);
// Check the type.
if ($line_item->type == 'shipping') {
// Shipping line item found. Do the things.
}
}
}
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
// Iteration is a bit simpler here.
foreach ($order_wrapper->commerce_line_items as $line_item) {
// We have to access it using ->value().
if ($line_item->type->value() == 'shipping') {
// Shipping line item found. Do the things.
}
}