Криворукие разрабы не удосужились даже придумать в корзине статус preorder Потому еще небольшая доработка от меня
в override/classes создаем файл Cart.php
заводим класс
class Cart extends CartCore{}
Копируем из файла
/classes/Cart.php функцию
public function getProducts($refresh = false, $id_product = false, $id_country = null)
и
почти в самом конце, после
PHP:
$row['features'] = Product::getFeaturesStatic((int)$row['id_product']);
нужно добавить
PHP:
if (Module::isInstalled('preorder')) {
include_once _PS_MODULE_DIR_.'preorder/classes/preorderclasses.php';
}
$id_product = $row['id_product'];
$product_pre = new Product($id_product);
$id_attr = $row['id_product_attribute'];
$has_attr = $product_pre->hasAttributes();
if ($has_attr > 0 && $id_attr == 0) {
$id_attr = Product::getDefaultAttribute($id_product);
}
$preorder_obj = new PreOrderProduct();
$existing_preorder_product = $preorder_obj->getExistingActivePreOrderProduct($id_product, $id_attr);
$remaining_qty = $existing_preorder_product['maxquantity'] - $existing_preorder_product['prebooked_quantity'];
if ($existing_preorder_product['is_preorder'] == 1 ) {
$row['pre_order'] = 1;
}else{
$row['pre_order'] = 0;
}
теперь в корзине или в шаблоне оформления заказа
shopping-cart-product-line.tpl
можно использовать проверку
там где у вас
{l s='In Stock'}
оборачиваем это дело так
PHP:
{if isset($product.pre_order) && $product.pre_order == 1}
{l s='Pre order'}
{else}
{l s='In Stock'}
{/if}