Logidav Docs

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

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
bool

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
PickupToDeliveryRequest

finalizeFreeDeliveryForSaleProducts()

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

hasEmailBeenSent()

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
bool

prepareDeliveryOfferForRdv()

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
bool

updateSaleProductsShippingMethod()

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
DateTime

createDeliveryPaymentLinksForRdv()

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
throws
Exception
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|null

getProductData()

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|null

getValidPrice()

Convertit une valeur en prix valide (> 0) ou retourne 0

private getValidPrice(mixed $value) : float
Parameters
$value : mixed
Return values
float

resolveSubjectForSale()

Helper pour traduire le sujet

private resolveSubjectForSale(mixed $sale) : string
Parameters
$sale : mixed
Return values
string

shouldUseTrackingConfirmation()

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>
Return values
bool

        
On this page

Search results