2017-03-03 2 views
0

J'essaie de créer une calculatrice personnalisée qui calcule les coûts d'expédition en fonction d'une adresse de livraison. Pour l'instant, je vais coder en dur les différents frais selon un préfixe de code postal ... par exemple.Calculatrice d'expédition personnalisée Sylius qui prend en compte la destination

  • SK1 = 4
  • SK2 = 4
  • SK3 = 4
  • SK4 = 4
  • M1 = 6
  • M2 = 6
  • M3 = 6
  • M4 = 6
  • Tout le reste = 10

Je suis très nouveau sur sylius et php, donc toute aide est appréciée. Je suis le tutoriel here.

Le talon de code que j'ai est la suivante:

<?php 
/** 
* Created by IntelliJ IDEA. 
* User: camerona 
* Date: 03/03/2017 
* Time: 08:09 
*/ 

namespace AppBundle\Shipping; 

use Sylius\Component\Shipping\Calculator\CalculatorInterface; 
use Sylius\Component\Shipping\Model\ShippingSubjectInterface; 

class PostCodeCalculator implements CalculatorInterface 
{ 
    public function calculate(ShippingSubjectInterface $subject, array $configuration) 
    { 
     return $this->postCodeService->getShippingCostForPostCode($subject->getShippingAddress()); 
    } 

    public function getType() 
    { 
     // TODO: Implement getType() method. 
    } 
} 

Est-il possible dans sylius où je peux avoir accès à l'adresse de livraison d'une commande? Le ShippingSubjectInterface permet uniquement l'accès au volume, poids, articles et shippables.

Merci d'avance.

Répondre

0
/** @var $subject Shipment */ 
$postCode = $subject->getOrder()->getShippingAddress()->getPostCode(); 

J'ai reçu l'adresse du sujet.