PickupToDeliveryService
in package
Table of Contents
Properties
- $container : mixed
- $entityManager : mixed
- $repository : mixed
- $stripeApi : StripeApi
Methods
- __construct() : mixed
- calculateDeliveryPrices() : mixed
- Calcule les prix de livraison pour un SaleProduct ou un array de SaleProducts (RDV) Retourne false si aucun prix valide n'est trouvé
- calculateRdvDeliveryPrices() : mixed
- Calcule les prix pour un RDV contenant plusieurs produits
- canOfferDelivery() : bool
- Vérifie si une livraison peut être proposée (au moins un prix > 0)
- createDeliveryPaymentLinks() : array<string|int, mixed>
- createEmailSentRequest() : PickupToDeliveryRequest
- Crée une nouvelle demande de livraison lors de l'envoi de l'email.
- finalizeFreeDeliveryForSaleProducts() : void
- Finalise le flux de livraison gratuite lorsqu'un client confirme via tracking.
- getRepo() : PickupToDeliveryRequestRepository
- hasEmailBeenSent() : bool
- Vérifie si un email a déjà été envoyé pour un groupe de produits.
- prepareDeliveryOfferForRdv() : array<string|int, mixed>
- Prépare une offre de livraison pour un RDV (Génère les liens et sauvegarde en base).
- processDeliveryOfferForRdv() : array<string|int, mixed>
- Traite l'envoi de l'offre de livraison pour un RDV complet.
- processStripeWebhook() : bool
- updateSaleProductsShippingMethod() : void
- Met à jour la méthode de livraison pour une liste de SaleProducts Utilise la logique complexe de SaleService (VIR, CHRONOPOST, etc.)
- addBusinessDays() : DateTime
- Helper pour ajouter des jours ouvrés
- createDeliveryPaymentLinksForRdv() : array<string|int, mixed>
- Crée les liens de paiement Stripe pour un RDV complet (regroupant plusieurs produits).
- generateTrackingConfirmationUrl() : string|null
- Génère l'URL attendue par tracking.menzzo.fr pour la confirmation de livraison gratuite.
- getProductData() : array<string|int, mixed>
- Helper pour créer des données de produit Stripe
- getSaleProductDeliveryPrices() : mixed
- Récupère les prix de livraison pour un SaleProduct spécifique avec logique de fallback Retourne false si aucun prix valide n'est trouvé
- getStripeApiKey() : string|null
- Récupère la clé API Stripe par ID de vente
- getValidPrice() : float
- Convertit une valeur en prix valide (> 0) ou retourne 0
- resolveSubjectForSale() : string
- Helper pour traduire le sujet
- shouldUseTrackingConfirmation() : bool
- Determine si l'on doit bypass Stripe pour proposer la confirmation Tracking.
Properties
$container
private
mixed
$container
$entityManager
private
mixed
$entityManager
$repository
private
mixed
$repository
$stripeApi
private
StripeApi
$stripeApi
Methods
__construct()
public
__construct(ContainerInterface $container, EntityManagerInterface $entityManager, StripeApi $stripeApi) : mixed
Parameters
- $container : ContainerInterface
- $entityManager : EntityManagerInterface
- $stripeApi : StripeApi
calculateDeliveryPrices()
Calcule les prix de livraison pour un SaleProduct ou un array de SaleProducts (RDV) Retourne false si aucun prix valide n'est trouvé
public
calculateDeliveryPrices(mixed $saleProducts) : mixed
Parameters
- $saleProducts : mixed
calculateRdvDeliveryPrices()
Calcule les prix pour un RDV contenant plusieurs produits
public
calculateRdvDeliveryPrices(array<string|int, mixed> $saleProductIds, int $storeId) : mixed
Parameters
- $saleProductIds : array<string|int, mixed>
- $storeId : int
canOfferDelivery()
Vérifie si une livraison peut être proposée (au moins un prix > 0)
public
canOfferDelivery(mixed $saleProducts) : bool
Parameters
- $saleProducts : mixed
Return values
boolcreateDeliveryPaymentLinks()
public
createDeliveryPaymentLinks(SaleProduct $saleProduct) : array<string|int, mixed>
Parameters
- $saleProduct : SaleProduct
Return values
array<string|int, mixed>createEmailSentRequest()
Crée une nouvelle demande de livraison lors de l'envoi de l'email.
public
createEmailSentRequest(array<string|int, mixed> $technicalSaleProductIds) : PickupToDeliveryRequest
Lie les SaleProducts à la demande via la relation ManyToOne.
Parameters
- $technicalSaleProductIds : array<string|int, mixed>
-
Tableau des IDs techniques (mz_sale_product.id)
Return values
PickupToDeliveryRequestfinalizeFreeDeliveryForSaleProducts()
Finalise le flux de livraison gratuite lorsqu'un client confirme via tracking.
public
finalizeFreeDeliveryForSaleProducts(array<string|int, SaleProduct> $saleProducts[, int|null $rdvId = null ]) : void
Parameters
- $saleProducts : array<string|int, SaleProduct>
- $rdvId : int|null = null
getRepo()
public
getRepo() : PickupToDeliveryRequestRepository
Return values
PickupToDeliveryRequestRepositoryhasEmailBeenSent()
Vérifie si un email a déjà été envoyé pour un groupe de produits.
public
hasEmailBeenSent(array<string|int, mixed> $technicalSaleProductIds) : bool
Utilise le Repository ORM au lieu de l'ancienne logique JSON.
Parameters
- $technicalSaleProductIds : array<string|int, mixed>
-
Tableau des IDs techniques (mz_sale_product.id)
Return values
boolprepareDeliveryOfferForRdv()
Prépare une offre de livraison pour un RDV (Génère les liens et sauvegarde en base).
public
prepareDeliveryOfferForRdv(int $rdvId) : array<string|int, mixed>
N'envoie PAS l'email, car cela est fait par la commande cron.
Parameters
- $rdvId : int
Return values
array<string|int, mixed> —Tableau contenant les liens ou vide si échec
processDeliveryOfferForRdv()
Traite l'envoi de l'offre de livraison pour un RDV complet.
public
processDeliveryOfferForRdv(int $rdvId) : array<string|int, mixed>
Stocke les IDs techniques (mz_sale_product.id) dans mz_pickup_delivery_request.
Parameters
- $rdvId : int
Return values
array<string|int, mixed>processStripeWebhook()
public
processStripeWebhook(array<string|int, mixed> $webhookData) : bool
Parameters
- $webhookData : array<string|int, mixed>
Return values
boolupdateSaleProductsShippingMethod()
Met à jour la méthode de livraison pour une liste de SaleProducts Utilise la logique complexe de SaleService (VIR, CHRONOPOST, etc.)
public
updateSaleProductsShippingMethod(array<string|int, mixed> $saleProducts) : void
Parameters
- $saleProducts : array<string|int, mixed>
addBusinessDays()
Helper pour ajouter des jours ouvrés
private
addBusinessDays(DateTime $date, int $days) : DateTime
Parameters
- $date : DateTime
- $days : int
Return values
DateTimecreateDeliveryPaymentLinksForRdv()
Crée les liens de paiement Stripe pour un RDV complet (regroupant plusieurs produits).
private
createDeliveryPaymentLinksForRdv(SaleProduct $primaryProduct, array<string|int, mixed> $allProducts[, int|null $rdvId = null ]) : array<string|int, mixed>
Utilise StripeApi pour les appels API.
Parameters
- $primaryProduct : SaleProduct
-
Le produit principal utilisé pour lier le paiement
- $allProducts : array<string|int, mixed>
-
Le tableau de tous les SaleProducts du RDV
- $rdvId : int|null = null
Tags
Return values
array<string|int, mixed> —Tableau contenant les URLs et IDs des liens de paiement
generateTrackingConfirmationUrl()
Génère l'URL attendue par tracking.menzzo.fr pour la confirmation de livraison gratuite.
private
generateTrackingConfirmationUrl(Sale $sale[, int|null $rdvId = null ]) : string|null
Parameters
- $sale : Sale
- $rdvId : int|null = null
Return values
string|nullgetProductData()
Helper pour créer des données de produit Stripe
private
getProductData(string $deliveryType) : array<string|int, mixed>
Parameters
- $deliveryType : string
Return values
array<string|int, mixed>getSaleProductDeliveryPrices()
Récupère les prix de livraison pour un SaleProduct spécifique avec logique de fallback Retourne false si aucun prix valide n'est trouvé
private
getSaleProductDeliveryPrices(SaleProduct $saleProduct) : mixed
Parameters
- $saleProduct : SaleProduct
getStripeApiKey()
Récupère la clé API Stripe par ID de vente
private
getStripeApiKey(mixed $sale) : string|null
Utiliser plutôt StripeApi->setApiKey()
Parameters
- $sale : mixed
Return values
string|nullgetValidPrice()
Convertit une valeur en prix valide (> 0) ou retourne 0
private
getValidPrice(mixed $value) : float
Parameters
- $value : mixed
Return values
floatresolveSubjectForSale()
Helper pour traduire le sujet
private
resolveSubjectForSale(mixed $sale) : string
Parameters
- $sale : mixed
Return values
stringshouldUseTrackingConfirmation()
Determine si l'on doit bypass Stripe pour proposer la confirmation Tracking.
private
shouldUseTrackingConfirmation(array<string|int, mixed> $saleProducts, array<string|int, mixed> $realPrices) : bool
Parameters
- $saleProducts : array<string|int, mixed>
- $realPrices : array<string|int, mixed>