addAutomaticPromotions example


    public function testAutomaticPromotionHasEmptyCode(): void
    {
        $definition = new CartPromotionsDataDefinition();
        $definition->addAutomaticPromotions([new PromotionEntity()]);

        /** @var PromotionCodeTuple[] $tuples */
        $tuples = $definition->getPromotionCodeTuples();

        static::assertEquals('', $tuples[0]->getCode());
    }

    /** * This test verifies that promotions with code get the * correct code within its tuple object. * We add 1 promotion with code, and verify the single tuple * that will be generated. * * @group promotions */
// now get the codes from our configuration             // and also from our line items (that already exist)             // and merge them both into a flat list             $extensionCodes = $cartExtension->getCodes();
            $cartCodes = $original->getLineItems()->filterType(PromotionProcessor::LINE_ITEM_TYPE)->getReferenceIds();
            $allCodes = array_unique(array_merge(array_values($cartCodes)$extensionCodes));

            $allPromotions = $this->searchPromotionsByCodes($data$allCodes$context);

            if (!$behavior->hasPermission(self::SKIP_AUTOMATIC_PROMOTIONS)) {
                // add auto promotions                 $allPromotions->addAutomaticPromotions($this->searchPromotionsAuto($data$context));
            }

            // check if max allowed redemption of promotion have been reached or not             // if max redemption has been reached promotion will not be added             $allPromotions = $this->getEligiblePromotionsWithDiscounts($allPromotions$context->getCustomer());

            $discountLineItems = [];
            $foundCodes = [];

            /** @var PromotionCodeTuple $tuple */
            foreach ($allPromotions->getPromotionCodeTuples() as $tuple) {
                
Home | Imprint | This part of the site doesn't use cookies.