如何根据运费报价设置ubercart是否有条件?

时间:2012-10-16 17:08:29

标签: drupal ubercart ups drupal-rules

我正在使用Drupal 7和ubercart运费。我的客户希望运费成本高于平均报价,除非它是> = $ 50。然后他想收取50美元的单位。

我创造了一个费用为50美元的固定费率和一个地面报价。

我没有看到使用运费报价确定送货方式的情况。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

弄明白这一点。不漂亮,但它的工作原理。只需转到ups选项并使用php评估添加条件。请注意,您必须有两种付款方式才能使条件生效。粘贴此代码。

$method = array (
  'id' => 'ups',
  'module' => 'uc_ups',
  'title' => 'UPS',
  'operations' => array (
    'configure' => array (
      'title' => 'configure',
      'href' => 'admin/store/settings/quotes/settings/ups',
    ),
  ),
  'quote' => array (
    'type' => 'small_package',
    'callback' => 'uc_ups_quote',
    'accessorials' => array (
      '03' => 'UPS Ground',
    ),
  ),
  'ship' => array (
    'type' => 'small_package',
    'callback' => 'uc_ups_fulfill_order',
    'file' => 'uc_ups.ship.inc',
    'pkg_types' => array (
      '02' => 'Customer Supplied Package',
      '01' => 'UPS Letter',
      '03' => 'Tube',
      '04' => 'PAK',
      21 => 'UPS Express Box',
      24 => 'UPS 25KG Box',
      25 => 'UPS 10KG Box',
      30 => 'Pallet',
      '2a' => 'Small Express Box',
      '2b' => 'Medium Express Box',
      '2c' => 'Large Express Box',
    ),
  ),
  'cancel' => 'uc_ups_void_shipment',
  'enabled' => 1,
  'weight' => '0',
);

$details->postal_code = $order->delivery_postal_code;
$details->zone = $order->delivery_zone;
$details->country = $order->delivery_country;

$quote = uc_ups_quote($order->products, $details , $method);
return ($quote['03']['rate'] < 50);

该方法可针对其他类型的运输进行调整,此条件仅适用于地面。您可以修改它以自动选择ups / fedex之间最便宜的方法或类似的方法。

反正。希望这可以帮助其他人。