ver. 0.292: ShopProduct + ShopPaymentMethod + ShopPromotion + ShopStatuses + ShopTransport frontend migration to Domain
Full migration of front\factory\ — entire directory removed (all 20 classes migrated). ProductRepository +20 frontend methods, PromotionRepository +5 applyType methods, TransportRepository +4 cached methods, PaymentMethodRepository +cached frontend methods. Fix: broken transports_list() in ajax.php replaced with forPaymentMethod(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,10 +8,12 @@ class ShopBasketController
|
||||
];
|
||||
|
||||
private $orderRepository;
|
||||
private $paymentMethodRepository;
|
||||
|
||||
public function __construct( \Domain\Order\OrderRepository $orderRepository )
|
||||
public function __construct( \Domain\Order\OrderRepository $orderRepository, \Domain\PaymentMethod\PaymentMethodRepository $paymentMethodRepository )
|
||||
{
|
||||
$this->orderRepository = $orderRepository;
|
||||
$this->paymentMethodRepository = $paymentMethodRepository;
|
||||
}
|
||||
|
||||
public function basketMessageSave()
|
||||
@@ -146,7 +148,7 @@ class ShopBasketController
|
||||
$values['attributes'] = $attributes;
|
||||
}
|
||||
|
||||
$values['wp'] = \front\factory\ShopProduct::product_wp( $values[ 'product-id' ] );
|
||||
$values['wp'] = ( new \Domain\Product\ProductRepository( $GLOBALS['mdb'] ) )->getWeightCached( (int)$values[ 'product-id' ] );
|
||||
|
||||
$attributes_implode = '';
|
||||
if ( is_array( $attributes ) and count( $attributes ) > 0 )
|
||||
@@ -247,8 +249,8 @@ class ShopBasketController
|
||||
|
||||
echo json_encode( [
|
||||
'result' => 'ok',
|
||||
'payment_methods' => \front\view\ShopPaymentMethod::basket_payment_methods(
|
||||
\front\factory\ShopPaymentMethod::payment_methods_by_transport( \Shared\Helpers\Helpers::get( 'transport_method_id' ) ),
|
||||
'payment_methods' => \front\Views\ShopPaymentMethod::basketPaymentMethods(
|
||||
$this->paymentMethodRepository->paymentMethodsByTransport( (int)\Shared\Helpers\Helpers::get( 'transport_method_id' ) ),
|
||||
\Shared\Helpers\Helpers::get( 'payment_method_id' )
|
||||
)
|
||||
] );
|
||||
@@ -271,8 +273,8 @@ class ShopBasketController
|
||||
'lang_id' => $lang_id,
|
||||
'client' => \Shared\Helpers\Helpers::get_session( 'client' ),
|
||||
'basket' => \Shared\Helpers\Helpers::get_session( 'basket' ),
|
||||
'transport' => \front\factory\ShopTransport::transport( \Shared\Helpers\Helpers::get_session( 'basket-transport-method-id' ) ),
|
||||
'payment_method' => \front\factory\ShopPaymentMethod::payment_method( \Shared\Helpers\Helpers::get_session( 'basket-payment-method-id' ) ),
|
||||
'transport' => ( new \Domain\Transport\TransportRepository( $GLOBALS['mdb'] ) )->findActiveByIdCached( \Shared\Helpers\Helpers::get_session( 'basket-transport-method-id' ) ),
|
||||
'payment_method' => $this->paymentMethodRepository->paymentMethodCached( (int)\Shared\Helpers\Helpers::get_session( 'basket-payment-method-id' ) ),
|
||||
'addresses' => ( new \Domain\Client\ClientRepository( $GLOBALS['mdb'] ) )->clientAddresses( (int)$client['id'] ),
|
||||
'settings' => $settings,
|
||||
'coupon' => \Shared\Helpers\Helpers::get_session( 'coupon' ),
|
||||
@@ -368,7 +370,7 @@ class ShopBasketController
|
||||
'coupon' => $coupon,
|
||||
'transport_id' => \Shared\Helpers\Helpers::get_session( 'basket-transport-method-id' ),
|
||||
'transport_methods' => \Shared\Tpl\Tpl::view( 'shop-basket/basket-transport-methods', [
|
||||
'transports_methods' => \front\factory\ShopTransport::transport_methods( $basket, $coupon ),
|
||||
'transports_methods' => ( new \Domain\Transport\TransportRepository( $GLOBALS['mdb'] ) )->transportMethodsFront( $basket, $coupon ),
|
||||
'transport_id' => $basket_transport_method_id
|
||||
] ),
|
||||
'payment_method_id' => $payment_method_id,
|
||||
@@ -394,7 +396,7 @@ class ShopBasketController
|
||||
'basket_mini_value' => \Domain\Basket\BasketCalculator::summaryPrice( $basket, $coupon ),
|
||||
'products_count' => count( $basket ),
|
||||
'transport_methods' => \Shared\Tpl\Tpl::view( 'shop-basket/basket-transport-methods', [
|
||||
'transports_methods' => \front\factory\ShopTransport::transport_methods( $basket, $coupon ),
|
||||
'transports_methods' => ( new \Domain\Transport\TransportRepository( $GLOBALS['mdb'] ) )->transportMethodsFront( $basket, $coupon ),
|
||||
'transport_id' => $basket_transport_method_id
|
||||
] )
|
||||
] );
|
||||
|
||||
@@ -95,7 +95,7 @@ class ShopOrderController
|
||||
if ( is_array( $order['products'] ) && count( $order['products'] ) ):
|
||||
$summary_tmp = 0;
|
||||
foreach ( $order['products'] as $product ):
|
||||
$product_tmp = \front\factory\ShopProduct::product_details( $product['product_id'], $lang['id'] );
|
||||
$product_tmp = ( new \Domain\Product\ProductRepository( $GLOBALS['mdb'] ) )->productDetailsFrontCached( (int)$product['product_id'], $lang['id'] );
|
||||
$summary_tmp += \Shared\Helpers\Helpers::normalize_decimal( $product['price_netto'] + $product['price_netto'] * $product['vat'] / 100 ) * $product['quantity'];
|
||||
endforeach;
|
||||
$summary_tmp += $order['transport_cost'];
|
||||
|
||||
77
autoload/front/Controllers/ShopProductController.php
Normal file
77
autoload/front/Controllers/ShopProductController.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
namespace front\Controllers;
|
||||
|
||||
class ShopProductController
|
||||
{
|
||||
private $categoryRepository;
|
||||
|
||||
public function __construct( \Domain\Category\CategoryRepository $categoryRepository )
|
||||
{
|
||||
$this->categoryRepository = $categoryRepository;
|
||||
}
|
||||
|
||||
public function lazyLoadingProducts()
|
||||
{
|
||||
global $lang_id;
|
||||
|
||||
$output = '';
|
||||
$categoryId = (int)\Shared\Helpers\Helpers::get( 'category_id' );
|
||||
$products_ids = $this->categoryRepository->productsId(
|
||||
$categoryId,
|
||||
$this->categoryRepository->getCategorySort( $categoryId ),
|
||||
$lang_id,
|
||||
8,
|
||||
(int)\Shared\Helpers\Helpers::get( 'offset' )
|
||||
);
|
||||
|
||||
if ( is_array( $products_ids ) ): foreach ( $products_ids as $product_id ):
|
||||
$output .= \Shared\Tpl\Tpl::view( 'shop-product/product-mini', [
|
||||
'product' => \shop\Product::getFromCache( $product_id, $lang_id )
|
||||
] );
|
||||
endforeach;
|
||||
endif;
|
||||
|
||||
echo json_encode( [ 'html' => $output ] );
|
||||
exit;
|
||||
}
|
||||
|
||||
public function warehouseMessage()
|
||||
{
|
||||
global $lang_id;
|
||||
|
||||
$values = json_decode( \Shared\Helpers\Helpers::get( 'values' ), true );
|
||||
|
||||
$attributes = [];
|
||||
foreach ( $values as $key => $val )
|
||||
{
|
||||
if ( $key != 'product-id' and $key != 'quantity' )
|
||||
$attributes[] = $val;
|
||||
}
|
||||
|
||||
$result = \shop\Product::getWarehouseMessage( $values['product-id'], $attributes, $lang_id );
|
||||
echo json_encode( $result );
|
||||
exit;
|
||||
}
|
||||
|
||||
public function drawProductAttributes()
|
||||
{
|
||||
global $lang_id;
|
||||
|
||||
$combination = '';
|
||||
$selected_values = \Shared\Helpers\Helpers::get( 'selected_values' );
|
||||
|
||||
foreach ( $selected_values as $value )
|
||||
{
|
||||
$combination .= $value;
|
||||
if ( $value != end( $selected_values ) )
|
||||
$combination .= '|';
|
||||
}
|
||||
|
||||
$product_id = \Shared\Helpers\Helpers::get( 'product_id' );
|
||||
$product = \shop\Product::getFromCache( $product_id, $lang_id );
|
||||
$product_data = $product->getProductDataBySelectedAttributes( $combination );
|
||||
|
||||
echo json_encode( [ 'product_data' => $product_data ] );
|
||||
exit;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user