uc_shipping.rules.inc in Ubercart 7.3
Rules hooks for uc_shipping.module.
File
shipping/uc_shipping/uc_shipping.rules.incView source
<?php
/**
* @file
* Rules hooks for uc_shipping.module.
*/
/**
* Implements hook_rules_data_info().
*/
function uc_shipping_rules_data_info() {
$address_info = uc_address_property_info();
$entities['uc_shipment'] = array(
'label' => t('Ubercart shipment object'),
'group' => t('Ubercart'),
'wrap' => TRUE,
'property info' => array(
'sid' => array(
'type' => 'integer',
'label' => t('Shipment ID'),
),
'order_id' => array(
'type' => 'integer',
'label' => t('Order ID'),
),
'origin' => array(
'type' => 'struct',
'label' => t('Origin address'),
'description' => t('The origin location for the shipment.'),
'getter callback' => 'uc_shipping_address_property_get',
'setter callback' => 'uc_shipping_address_property_set',
'setter permission' => 'fulfill orders',
'property info' => $address_info,
),
'destination' => array(
'type' => 'struct',
'label' => t('Destination address'),
'description' => t('The destination location for the shipment.'),
'getter callback' => 'uc_shipping_address_property_get',
'setter callback' => 'uc_shipping_address_property_set',
'setter permission' => 'fulfill orders',
'property info' => $address_info,
),
'shipping_method' => array(
'type' => 'text',
'label' => t('Shipping method'),
'description' => t('The transportation method used to ship.'),
),
'accessorials' => array(
'type' => 'text',
'label' => t('Accessorials'),
'description' => t('Shipping options and special instructions.'),
),
'carrier' => array(
'type' => 'text',
'label' => t('Carrier'),
'description' => t('The company making the delivery.'),
),
'transaction_id' => array(
'type' => 'text',
'label' => t('Transaction ID'),
'description' => t("The carrier's shipment identifier."),
),
'tracking_number' => array(
'type' => 'text',
'label' => t('Tracking number'),
'description' => t('The number used by the carrier to locate the shipment while it is in transit.'),
),
'ship_date' => array(
'type' => 'date',
'label' => t('Ship date'),
'description' => t('The time the shipment was sent out.'),
),
'expected_delivery' => array(
'type' => 'date',
'label' => t('Expected delivery'),
'description' => t('The time the shipment is expected to be delivered'),
),
'cost' => array(
'type' => 'decimal',
'label' => t('Cost'),
'description' => t('The cost of the shipment.'),
),
'packages' => array(
'type' => 'list<struct>',
'label' => t('Packages'),
'description' => t('The physical items being shipped.'),
'property info' => array(
'package_id' => array(
'type' => 'integer',
'label' => t('Package ID'),
),
'shipping_type' => array(
'type' => 'text',
'label' => t('Shipping type'),
'description' => t('The basic type of shipment, e.g.: small package, freight, etc.'),
),
'pkg_type' => array(
'type' => 'text',
'label' => t('Package type'),
'description' => t('The type of packaging.'),
),
'length' => array(
'type' => 'decimal',
'label' => t('Length'),
'description' => t('The package length.'),
),
'width' => array(
'type' => 'decimal',
'label' => t('Width'),
'description' => t('The package width.'),
),
'height' => array(
'type' => 'decimal',
'label' => t('Height'),
'description' => t('The package height.'),
),
'value' => array(
'type' => 'decimal',
'label' => t('Value'),
'description' => t('The monetary value of the package contents.'),
),
'tracking_number' => array(
'type' => 'text',
'label' => t('Tracking number'),
'description' => t('The number used by the carrier to locate the shipment while it is in transit.'),
),
'description' => array(
'type' => 'text',
'label' => t('Description'),
'description' => t('The package description'),
),
'weight' => array(
'type' => 'decimal',
'label' => t('Weight'),
'description' => t('The physical weight of the package.'),
),
'products' => array(
'type' => 'list<uc_order_product>',
'label' => t('Products'),
'description' => t('The package contents.'),
),
'label_image' => array(
'type' => 'file',
'label' => t('Label image'),
'description' => t('An image of the shipping label.'),
),
),
),
),
);
return $entities;
}
/**
* Entity metadata callback to get origin or destination address of an shipment.
*/
function uc_shipping_address_property_get($shipment, array $options, $name, $entity_type) {
switch ($name) {
case 'origin':
$type = 'o_';
break;
case 'destination':
$type = 'd_';
break;
default:
return NULL;
}
$address = new UcAddress();
foreach ($address as $field => $value) {
$address->{$field} = $shipment->{$type . $field};
}
return $address;
}
/**
* Entity metadata callback to set origin or destination address of an order.
*/
function uc_shipping_address_property_set($shipment, $name, $address) {
switch ($name) {
case 'origin':
$type = 'o_';
break;
case 'destination':
$type = 'd_';
break;
default:
return;
}
foreach ($address as $field => $value) {
$shipment->{$type . $field} = $value;
}
}
/**
* Implements hook_rules_event_info().
*/
function uc_shipping_rules_event_info() {
$events['uc_shipment_save'] = array(
'label' => t('A shipment is saved'),
'group' => t('Fulfillment'),
'variables' => array(
'order' => array(
'type' => 'uc_order',
'label' => t('Order'),
),
'shipment' => array(
'type' => 'uc_shipment',
'label' => t('Shipment'),
),
),
);
return $events;
}
Functions
Name | Description |
---|---|
uc_shipping_address_property_get | Entity metadata callback to get origin or destination address of an shipment. |
uc_shipping_address_property_set | Entity metadata callback to set origin or destination address of an order. |
uc_shipping_rules_data_info | Implements hook_rules_data_info(). |
uc_shipping_rules_event_info | Implements hook_rules_event_info(). |