public function checkMailDeliverAvailable($productTypeId, &$objCartSession)
{
$available = false;
// カート内の情報を取得
$items = $objCartSession->getCartList($productTypeId);
if (count(array_keys($items))) {
$available = true;
foreach (array_keys($items) as $key) {
$item = & $items[$key];
$product = & $item['productsClass'];
if ($product['mail_deliver_enabled'] === MAIL_DELIVER_ENABLED) {
continue;
} else {
$available = false;
}
}
}
return $available;
}
このコードの
$items = $objCartSession->getCartList($productTypeId);
の$itemsの中身ですね。
このデータの中のmail_deliver_enabledをチェックしているので、そのデータがないのが原因と思いますので、
SC_CartSession_Ex.phpに
public function adjustSessionProductsClass(&$arrProductsClass)
{
$arrNecessaryItems = array(
'product_id' => true,
'product_class_id' => true,
'name' => true,
'price02' => true,
'point_rate' => true,
'main_list_image' => true,
'main_image' => true,
'product_code' => true,
'stock' => true,
'stock_unlimited' => true,
'sale_limit' => true,
'class_name1' => true,
'classcategory_name1' => true,
'class_name2' => true,
'classcategory_name2' => true,
'mail_deliver_enabled'=> true,
);
// 必要な項目以外を削除。
foreach ($arrProductsClass as $key => $value) {
if (!isset($arrNecessaryItems[$key])) {
unset($arrProductsClass[$key]);
}
}
}
上記のコードを追加するのが抜けていると思います。
たぶん取得はしていたのに、その部分で不必要と判断されて消された事が原因と予想されるので、一度試してみてください。