Mitgliedschaft: Erinnerungen und eigenes Verlaengerungs-Produkt
Die Erinnerungsmails vor Ablauf der Mitgliedschaft beschrieben noch den abgeschafften SEPA-Einzug und verlinkten auf die Hauptdomain, wo /user/membership nicht existiert. Das Produkt fuer die Verlaengerung war zudem dasselbe wie bei der Registrierung und sprach deshalb vom Neuabschluss. - Erinnerungen: nur noch Stufen 31/33/34/35, SEPA-Stufen 32/36/37 samt :price und :pay_date entfallen; Button verlinkt auf my.mivita.care; fehlt ein Text zum Status, wird die Mail geloggt statt roh versendet. - Alle Erinnerungstexte (de/en/es/fr) erklaeren jetzt, dass ohne Zahlung der Account pausiert und offene Provisionen ausgezahlt werden. - Eigenes Produkt fuer die Verlaengerung (identifier show_renewal) als Kopie des Mitgliedschafts-Produkts inkl. Preisen, Kategorien und Uebersetzungen fuer en/es/fr; die Mitgliedschaftsseite faellt ohne dieses Produkt auf das bisherige zurueck. - Mitgliedschaftsseite auf ein Paket reduziert: Upgrade-, Wechsel- und Abo-Optionen entfernt, Texte auf die manuelle Verlaengerung umgestellt. - Alte Cron-Weboberflaeche entfernt, der Versand laeuft ueber den Scheduler (payments:check-accounts). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0bdb6eabc6
commit
30fb031d12
30 changed files with 810 additions and 1223 deletions
|
|
@ -4,8 +4,10 @@ namespace App\Models;
|
|||
|
||||
use App\Services\Util;
|
||||
use Cviebrock\EloquentSluggable\Sluggable;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* App\Models\Product
|
||||
|
|
@ -33,12 +35,12 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @property int|null $pos
|
||||
* @property int $active
|
||||
* @property int|null $amount
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @property \Illuminate\Support\Carbon|null $deleted_at
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductAttribute[] $attributes
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductCategory[] $categories
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $images
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property Carbon|null $deleted_at
|
||||
* @property-read Collection|ProductAttribute[] $attributes
|
||||
* @property-read Collection|ProductCategory[] $categories
|
||||
* @property-read Collection|ProductImage[] $images
|
||||
* @property-write mixed $price_vk
|
||||
*
|
||||
* @method static bool|null forceDelete()
|
||||
|
|
@ -93,7 +95,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWeight($value)
|
||||
*
|
||||
* @property int|null $points
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $imagesActive
|
||||
* @property-read Collection|ProductImage[] $imagesActive
|
||||
* @property-read int|null $images_active_count
|
||||
*
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePoints($value)
|
||||
|
|
@ -112,7 +114,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereContentsTotal($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUnit($value)
|
||||
*
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CountryPrice[] $country_prices
|
||||
* @property-read Collection|CountryPrice[] $country_prices
|
||||
* @property-read int|null $country_prices_count
|
||||
* @property int|null $wp_number
|
||||
*
|
||||
|
|
@ -123,11 +125,11 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShippingAddon($value)
|
||||
*
|
||||
* @property-read int|null $ingredients_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients
|
||||
* @property-read Collection|ProductIngredient[] $product_ingredients
|
||||
* @property-read int|null $product_ingredients_count
|
||||
* @property bool|null $no_commission
|
||||
* @property array|null $show_on
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ingredient[] $p_ingredients
|
||||
* @property-read Collection|Ingredient[] $p_ingredients
|
||||
* @property-read int|null $p_ingredients_count
|
||||
*
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Product whereNoCommission($value)
|
||||
|
|
@ -146,20 +148,20 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|Product whereBuyingRestrictionAmount($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Product whereNoFreeShipping($value)
|
||||
*
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ProductBuying> $product_buyings
|
||||
* @property-read Collection<int, ProductBuying> $product_buyings
|
||||
* @property-read int|null $product_buyings_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ProductBuying> $product_buyings
|
||||
* @property-read Collection<int, ProductBuying> $product_buyings
|
||||
* @property bool|null $sponsor_buying_points
|
||||
* @property int|null $sponsor_buying_points_amount
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ProductBuying> $product_buyings
|
||||
* @property-read Collection<int, ProductBuying> $product_buyings
|
||||
*
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Product whereSponsorBuyingPoints($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Product whereSponsorBuyingPointsAmount($value)
|
||||
*
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ProductBuying> $product_buyings
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TransProduct> $translations
|
||||
* @property-read Collection<int, ProductBuying> $product_buyings
|
||||
* @property-read Collection<int, TransProduct> $translations
|
||||
* @property-read int|null $translations_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ProductCategory> $product_categories
|
||||
* @property-read Collection<int, ProductCategory> $product_categories
|
||||
* @property-read int|null $product_categories_count
|
||||
*
|
||||
* @mixin \Eloquent
|
||||
|
|
@ -169,6 +171,7 @@ class Product extends Model
|
|||
/*identifiers
|
||||
show_upgrade # in membership payment can upgrade this package to show order
|
||||
show_order # in membership payment show always
|
||||
show_renewal # eigenes Produkt fuer die Mitgliedschafts-Verlaengerung (Inhalt/Text statt Registrierung)
|
||||
upgrade # need upgrade_to_id set user->payment_order_id to the package in the payment api
|
||||
*/
|
||||
|
||||
|
|
@ -245,6 +248,7 @@ class Product extends Model
|
|||
'' => '-',
|
||||
'show_upgrade' => 'Kann geupdatet werden',
|
||||
'show_order' => 'Wird immer als Option angezeigt',
|
||||
'show_renewal' => 'Wird bei der Mitgliedschafts-Verlängerung angezeigt',
|
||||
'upgrade_product' => 'Produkt upgrade zur Produkt ID',
|
||||
'upgrade_member' => 'Berater upgrade zur Karriere ID',
|
||||
'proportional_voucher' => 'Anteiliger Gutschein Berater',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue