ver. 0.294: Remove all 12 legacy autoload/shop/ classes (~2363 lines)

Complete Domain-Driven Architecture migration:
- Phase 1-4: Transport, ProductSet, Coupon, Shop, Search, Basket,
  ProductCustomField, Category, ProductAttribute, Promotion
- Phase 5: Order (~562 lines) + Product (~952 lines)
- ~20 Product methods migrated to ProductRepository
- Apilo sync migrated to OrderAdminService
- Production hotfixes: stale Redis cache (prices 0.00), unqualified
  Product:: refs in LayoutEngine, object->array template conversion
- AttributeRepository::getAttributeValueById() Redis cache added

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-18 02:05:39 +01:00
parent 22530df501
commit 69e78ca248
74 changed files with 2176 additions and 2669 deletions

View File

@@ -10,7 +10,7 @@ if ( $attribute_details['type'] == 0 )
<? foreach ( $this -> attribute['values'] as $value ):?>
<div class="fradio">
<input type="radio" id="<?= $this -> attribute['id'];?>-<?= $value['id'];?>" <? if ( $value['is_default'] ):?>checked="checked"<? endif;?> require="true" value="<?= $this -> attribute['id'];?>-<?= $value['id'];?>" name="<?= \Shared\Helpers\Helpers::seo( $attribute_details['language']['name'] );?>">
<label for="<?= $this -> attribute['id'];?>-<?= $value['id'];?>" order="<?= $this -> order;?>"><?= \shop\ProductAttribute::get_value_name( $value['id'], $lang_id );?></label>
<label for="<?= $this -> attribute['id'];?>-<?= $value['id'];?>" order="<?= $this -> order;?>"><?= ( new \Domain\Attribute\AttributeRepository( $GLOBALS['mdb'] ) )->getAttributeValueById( $value['id'], $lang_id );?></label>
</div>
<? if ( $value['is_default'] ):?>
<script class="footer" type="text/javascript">

View File

@@ -1,6 +1,5 @@
<?php
use shop\Product;
$product_meta = Product::product_meta($this->product_id);
$product_meta = ( new \Domain\Product\ProductRepository( $GLOBALS['mdb'] ) )->productMeta( $this->product_id );
?>
<?php if (is_array($product_meta) && count($product_meta)): ?>

View File

@@ -5,15 +5,15 @@
{
if ( $this -> product['quantity'] > 0 or $this -> product['quantity'] == 0 and $this -> product['stock_0_buy'] )
{
if ( $this -> product -> language['warehouse_message_nonzero'] )
echo $this -> product -> language['warehouse_message_nonzero'];
if ( $this -> product['language']['warehouse_message_nonzero'] )
echo $this -> product['language']['warehouse_message_nonzero'];
else if ( $this -> settings['warehouse_message_nonzero_' . $this -> lang_id] )
echo $this -> settings['warehouse_message_nonzero_' . $this -> lang_id];
}
else
{
if ( $this -> product -> language['warehouse_message_zero'] )
echo $this -> product -> language['warehouse_message_zero'];
if ( $this -> product['language']['warehouse_message_zero'] )
echo $this -> product['language']['warehouse_message_zero'];
else if ( $this -> settings['warehouse_message_zero_' . $this -> lang_id] )
echo $this -> settings['warehouse_message_zero_' . $this -> lang_id];
}