mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-15 09:30:58 +00:00
[Variation] Remove documentation
This commit is contained in:
parent
e866f08039
commit
c97c316efb
15 changed files with 2 additions and 640 deletions
|
|
@ -1,56 +0,0 @@
|
||||||
Configuration reference
|
|
||||||
=======================
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
sylius_variation:
|
|
||||||
driver: ~ # The driver used for persistence layer. Currently only `doctrine/orm` is supported.
|
|
||||||
resources:
|
|
||||||
# `variation_name` can be any name, for example `product`, `ad`, or `blog_post`
|
|
||||||
variation_name:
|
|
||||||
variable: ~ # Required: The variable model class implementing `VariableInterface`
|
|
||||||
# of which variants can be created from
|
|
||||||
variant:
|
|
||||||
classes:
|
|
||||||
model: ~ # Required: The variant model class implementing `VariantInterface`
|
|
||||||
interface: ~
|
|
||||||
controller: Sylius\Bundle\ResourceBundle\Controller\ResourceController
|
|
||||||
repository: ~ # Required: The repository class for the variant
|
|
||||||
factory: Sylius\Component\Resource\Factory\Factory
|
|
||||||
form:
|
|
||||||
default: Sylius\Bundle\VariationBundle\Form\Type\VariantType
|
|
||||||
validation_groups:
|
|
||||||
default: [ sylius ]
|
|
||||||
option:
|
|
||||||
classes:
|
|
||||||
model: ~ # Required: The option model class implementing `OptionInterface`
|
|
||||||
interface: ~
|
|
||||||
repository: ~ # Required: The repository class for the option
|
|
||||||
controller: Sylius\Bundle\ResourceBundle\Controller\ResourceController
|
|
||||||
factory: Sylius\Component\Resource\Factory\Factory
|
|
||||||
form:
|
|
||||||
default: Sylius\Bundle\VariationBundle\Form\Type\OptionType
|
|
||||||
choice:
|
|
||||||
validation_groups:
|
|
||||||
default: [ sylius ]
|
|
||||||
translation:
|
|
||||||
classes:
|
|
||||||
model: Sylius\Component\Variation\Model\OptionTranslation
|
|
||||||
interface: Sylius\Component\Variation\Model\OptionTranslationInterface
|
|
||||||
controller: Sylius\Bundle\ResourceBundle\Controller\ResourceController
|
|
||||||
repository: ~ # Required: The repository class for the option
|
|
||||||
factory: Sylius\Component\Resource\Factory\Factory
|
|
||||||
form:
|
|
||||||
default: Sylius\Bundle\VariationBundle\Form\Type\OptionTranslationType
|
|
||||||
validation_groups:
|
|
||||||
default: [ sylius ]
|
|
||||||
fields:
|
|
||||||
default: [ presentation ]
|
|
||||||
option_value:
|
|
||||||
model: ~ # Required: The option value model class implementing `OptionValueInterface`
|
|
||||||
interface: ~
|
|
||||||
controller: Sylius\Bundle\ResourceBundle\Controller\ResourceController
|
|
||||||
repository: ~ # Required: The repository class for the option value
|
|
||||||
factory: Sylius\Component\Resource\Factory\Factory
|
|
||||||
form:
|
|
||||||
default: Sylius\Bundle\VariationBundle\Form\Type\OptionValueType
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
SyliusVariationBundle
|
|
||||||
=====================
|
|
||||||
|
|
||||||
This bundle allows you to manage and generate variations of any compatible object with a very flexible architecture.
|
|
||||||
|
|
||||||
Sylius uses this bundle internally for its product catalog to manage variations of the same product based on its options
|
|
||||||
and their values, but can be used with almost any object.
|
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
:numbered:
|
|
||||||
|
|
||||||
installation
|
|
||||||
configuration
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
We assume you're familiar with `Composer <http://packagist.org>`_, a dependency manager for PHP.
|
|
||||||
Use the following command to add the bundle to your `composer.json` and download the package.
|
|
||||||
|
|
||||||
If you have `Composer installed globally <http://getcomposer.org/doc/00-intro.md#globally>`_.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ composer require sylius/variation-bundle
|
|
||||||
|
|
||||||
Otherwise you have to download .phar file.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ curl -sS https://getcomposer.org/installer | php
|
|
||||||
$ php composer.phar require sylius/variation-bundle
|
|
||||||
|
|
||||||
Adding required bundles to the kernel
|
|
||||||
-------------------------------------
|
|
||||||
|
|
||||||
You need to enable the bundle inside the kernel.
|
|
||||||
|
|
||||||
If you're not using any other Sylius bundles, you will also need to add `SyliusResourceBundle` and its dependencies to kernel.
|
|
||||||
Don't worry, everything was automatically installed via Composer.
|
|
||||||
|
|
||||||
.. code-block:: php
|
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
// app/AppKernel.php
|
|
||||||
|
|
||||||
public function registerBundles()
|
|
||||||
{
|
|
||||||
$bundles = array(
|
|
||||||
new winzou\Bundle\StateMachineBundle\winzouStateMachineBundle(),
|
|
||||||
new FOS\RestBundle\FOSRestBundle(),
|
|
||||||
new JMS\SerializerBundle\JMSSerializerBundle($this),
|
|
||||||
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
|
||||||
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
|
|
||||||
new Sylius\Bundle\VariationBundle\SyliusVariationBundle(),
|
|
||||||
new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
|
|
||||||
|
|
||||||
// Other bundles...
|
|
||||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Please register the bundle before *DoctrineBundle*. This is important as we use listeners which have to be processed first.
|
|
||||||
|
|
||||||
Container configuration
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Put this configuration inside your ``app/config/config.yml``.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
sylius_variation:
|
|
||||||
driver: doctrine/orm # Configure the doctrine orm driver used in the documentation.
|
|
||||||
|
|
||||||
And configure doctrine extensions which are used by the bundle.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
stof_doctrine_extensions:
|
|
||||||
orm:
|
|
||||||
default:
|
|
||||||
timestampable: true
|
|
||||||
|
|
||||||
Updating database schema
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Run the following command.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ php app/console doctrine:schema:update --force
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
This should be done only in **dev** environment! We recommend using Doctrine migrations, to safely update your schema.
|
|
||||||
|
|
||||||
Congratulations! The bundle is now installed and ready to use.
|
|
||||||
|
|
@ -21,6 +21,5 @@ Symfony Bundles
|
||||||
SyliusTaxationBundle/index
|
SyliusTaxationBundle/index
|
||||||
SyliusTaxonomyBundle/index
|
SyliusTaxonomyBundle/index
|
||||||
SyliusThemeBundle/index
|
SyliusThemeBundle/index
|
||||||
SyliusVariationBundle/index
|
|
||||||
|
|
||||||
.. include:: /bundles/map.rst.inc
|
.. include:: /bundles/map.rst.inc
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,3 @@
|
||||||
* :doc:`/bundles/SyliusTaxationBundle/index`
|
* :doc:`/bundles/SyliusTaxationBundle/index`
|
||||||
* :doc:`/bundles/SyliusTaxonomyBundle/index`
|
* :doc:`/bundles/SyliusTaxonomyBundle/index`
|
||||||
* :doc:`/bundles/SyliusThemeBundle/index`
|
* :doc:`/bundles/SyliusThemeBundle/index`
|
||||||
* :doc:`/bundles/SyliusVariationBundle/index`
|
|
||||||
|
|
|
||||||
|
|
@ -125,8 +125,3 @@ Product options management
|
||||||
$product->setOptions($options);
|
$product->setOptions($options);
|
||||||
$product->hasOptions(); // Returns true.
|
$product->hasOptions(); // Returns true.
|
||||||
$product->getOptions(); // Returns an array containing all inserted options.
|
$product->getOptions(); // Returns an array containing all inserted options.
|
||||||
|
|
||||||
.. note::
|
|
||||||
Doesn't matter if you use **Option** objects from this component,
|
|
||||||
the :doc:`/components/Variation/index` or your custom.
|
|
||||||
Every model implementing the :ref:`component_variation_model_option-interface` is supported.
|
|
||||||
|
|
|
||||||
|
|
@ -54,12 +54,4 @@ to bind an attribute and a value to a specific product.
|
||||||
VariantInterface
|
VariantInterface
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This interface should be implemented by models binding
|
This interface should be implemented by models binding a product with a specific combination of attributes.
|
||||||
a product with a specific combination of attributes.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
This interface extends the :ref:`component_variation_model_variant-interface`.
|
|
||||||
|
|
||||||
For more information go to `Sylius API VariantInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API VariantInterface: http://api.sylius.org/Sylius/Component/Product/Model/VariantInterface.html
|
|
||||||
|
|
|
||||||
|
|
@ -100,8 +100,7 @@ and provides an additional property:
|
||||||
+-------------+---------------------------------------------------------+
|
+-------------+---------------------------------------------------------+
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
This model extends the :ref:`component_variation_model_variant`
|
This model implements the :ref:`component_product_model_variant-interface`.
|
||||||
and implements the :ref:`component_product_model_variant-interface`.
|
|
||||||
|
|
||||||
For more detailed information go to `Sylius API Variant`_.
|
For more detailed information go to `Sylius API Variant`_.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,222 +0,0 @@
|
||||||
Basic Usage
|
|
||||||
===========
|
|
||||||
|
|
||||||
VariableInterface
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Let's see how an exemplary class implementing the **VariableInterface** should look like.
|
|
||||||
|
|
||||||
.. code-block:: php
|
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
|
||||||
use Doctrine\Common\Collections\Collection;
|
|
||||||
use Sylius\Component\Variation\Model\OptionInterface;
|
|
||||||
use Sylius\Component\Variation\Model\VariableInterface;
|
|
||||||
use Sylius\Component\Variation\Model\VariantInterface;
|
|
||||||
|
|
||||||
class Clothing implements VariableInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Collection
|
|
||||||
*/
|
|
||||||
private $variants;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Collection
|
|
||||||
*/
|
|
||||||
private $options;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __construct($name)
|
|
||||||
{
|
|
||||||
$this->name = $name;
|
|
||||||
$this->variants = new ArrayCollection();
|
|
||||||
$this->options = new ArrayCollection();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function hasVariants()
|
|
||||||
{
|
|
||||||
return !$this->variants->isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getVariants()
|
|
||||||
{
|
|
||||||
return $this->variants;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setVariants(Collection $variants)
|
|
||||||
{
|
|
||||||
$this->variants = $variants;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function addVariant(VariantInterface $variant)
|
|
||||||
{
|
|
||||||
$this->variants->add($variant);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function removeVariant(VariantInterface $variant)
|
|
||||||
{
|
|
||||||
$this->variants->removeElement($variant);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function hasVariant(VariantInterface $variant)
|
|
||||||
{
|
|
||||||
return $this->variants->contains($variant);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function hasOptions()
|
|
||||||
{
|
|
||||||
return !$this->options->isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getOptions()
|
|
||||||
{
|
|
||||||
return $this->options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setOptions(Collection $options)
|
|
||||||
{
|
|
||||||
$this->options = $options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function addOption(OptionInterface $option)
|
|
||||||
{
|
|
||||||
$this->options->add($option);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function removeOption(OptionInterface $option)
|
|
||||||
{
|
|
||||||
$this->options->removeElement($option);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function hasOption(OptionInterface $option)
|
|
||||||
{
|
|
||||||
return $this->options->contains($option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.. _component_variation_generator_variant-generator:
|
|
||||||
|
|
||||||
VariantGenerator
|
|
||||||
----------------
|
|
||||||
|
|
||||||
A **VariantGenerator** is used to create all possible combinations of an object's options and to create ``Variant`` models from them.
|
|
||||||
|
|
||||||
**Example:**
|
|
||||||
|
|
||||||
If an object such as a T-shirt has 2 options - *Color* and *Size* - with 3 possible values per option,
|
|
||||||
then the generator will create 9 variants and assign them to the object.
|
|
||||||
|
|
||||||
The generator will ignore invalid variants or variants that already exist.
|
|
||||||
|
|
||||||
**T-Shirt Options**
|
|
||||||
|
|
||||||
+------------+----------+
|
|
||||||
| **Colors** | **Size** |
|
|
||||||
+------------+----------+
|
|
||||||
| Black | Small |
|
|
||||||
+------------+----------+
|
|
||||||
| White | Medium |
|
|
||||||
+------------+----------+
|
|
||||||
| Red | Large |
|
|
||||||
+------------+----------+
|
|
||||||
|
|
||||||
**Possible T-Shirt Variants**
|
|
||||||
|
|
||||||
These variants should be generated by the ``VariantGenerator`` from the options above:
|
|
||||||
|
|
||||||
1. Black, Small
|
|
||||||
2. Black, Medium
|
|
||||||
3. Black, Large
|
|
||||||
4. White, Small
|
|
||||||
5. White, Medium
|
|
||||||
6. White, Large
|
|
||||||
7. Red, Small
|
|
||||||
8. Red, Medium
|
|
||||||
9. Red, Large
|
|
||||||
|
|
||||||
.. code-block:: php
|
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Sylius\Component\Variation\Generator\VariantGenerator;
|
|
||||||
use Sylius\Component\Variation\Model\VariableInterface;
|
|
||||||
use Sylius\Component\Variation\SetBuilder\CartesianSetBuilder;
|
|
||||||
use Sylius\Component\Resource\Repository\InMemoryRepository;
|
|
||||||
|
|
||||||
$variantRepository = new InMemoryRepository();
|
|
||||||
|
|
||||||
$setBuilder = new CartesianSetBuilder();
|
|
||||||
|
|
||||||
$subject = new Clothing('T-Shirt');
|
|
||||||
|
|
||||||
$colors = new Option();
|
|
||||||
$colors->setValues(new ArrayCollection(array('White', 'Black', 'Red')));
|
|
||||||
$colors->setName('Color');
|
|
||||||
|
|
||||||
$sizes = new Option();
|
|
||||||
$sizes->setValues(new ArrayCollection(array('Small', 'Medium', 'Large')));
|
|
||||||
$sizes->setName('Size');
|
|
||||||
|
|
||||||
$variable->addOption($colors);
|
|
||||||
$variable->addOption($sizes);
|
|
||||||
|
|
||||||
$generator = new VariantGenerator($variantRepository, $setBuilder);
|
|
||||||
|
|
||||||
// Generate all possible variants if they don't exist yet.
|
|
||||||
$generator->generate($variable)
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The variant generator implements the :ref:`component_variation_generator_variant-generator-interface`.
|
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The variant generator's set builder should implement the :ref:`component_variation_set-builder_set-builder-interface`.
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
Variation
|
|
||||||
=========
|
|
||||||
|
|
||||||
Library for managing object variants and options. This functionality can be attached to any object to create different configurations.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 2
|
|
||||||
|
|
||||||
installation
|
|
||||||
basic_usage
|
|
||||||
models
|
|
||||||
interfaces
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
You can install the component in 2 different ways:
|
|
||||||
|
|
||||||
* :doc:`Install it via Composer </components/general/using_components>` (``sylius/variation`` on `Packagist`_);
|
|
||||||
* Use the official Git repository (https://github.com/Sylius/Variation).
|
|
||||||
|
|
||||||
.. include:: /components/require_autoload.rst.inc
|
|
||||||
|
|
||||||
.. _Packagist: https://packagist.org/packages/sylius/variation
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
Interfaces
|
|
||||||
==========
|
|
||||||
|
|
||||||
Model Interfaces
|
|
||||||
----------------
|
|
||||||
|
|
||||||
.. _component_variation_model_variable-interface:
|
|
||||||
|
|
||||||
VariableInterface
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
In order for the object class to manage variants and options it has to implement the ``VariableInterface``.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You will find more information about this interface in `Sylius API VariableInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API VariableInterface: http://api.sylius.org/Sylius/Component/Variation/Model/VariableInterface.html
|
|
||||||
|
|
||||||
.. _component_variation_model_variant-interface:
|
|
||||||
|
|
||||||
VariantInterface
|
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When an object class implements the ``VariantInterface`` it has a possibility to manage options.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This interface extends the :ref:`component_resource_model_timestampable-interface`.
|
|
||||||
|
|
||||||
You will find more information about this interface in `Sylius API VariantInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API VariantInterface: http://api.sylius.org/Sylius/Component/Variation/Model/VariantInterface.htm
|
|
||||||
|
|
||||||
.. _component_variation_model_option-interface:
|
|
||||||
|
|
||||||
OptionInterface
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
In order for an object class to represent the option type it has to implement the ``OptionInterface``.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This interface extends :ref:`component_resource_model_code-aware-interface`, :ref:`component_resource_model_timestampable-interface`
|
|
||||||
and the :ref:`component_variation_model_option-translation-interface`.
|
|
||||||
|
|
||||||
You will find more information about this interface in `Sylius API OptionInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API OptionInterface: http://api.sylius.org/Sylius/Component/Variation/Model/OptionInterface.html
|
|
||||||
|
|
||||||
.. _component_variation_model_option-translation-interface:
|
|
||||||
|
|
||||||
OptionTranslationInterface
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
In order to store the translation of an **Option** an object class needs to imlement this interface.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You will find more information about this interface in `Sylius API OptionTranslationInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API OptionTranslationInterface: http://api.sylius.org/Sylius/Component/Variation/Model/OptionTranslationInterface.html
|
|
||||||
|
|
||||||
.. _component_variation_model_option-value-interface:
|
|
||||||
|
|
||||||
OptionValueInterface
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
If you need to store a value of an **Option** you will have to create an object class that implements this interface.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This interface extends :ref:`component_resource_model_code-aware-interface`.
|
|
||||||
|
|
||||||
You will find more information about that interface in `Sylius API OptionValueInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API OptionValueInterface: http://api.sylius.org/Sylius/Component/Variation/Model/OptionValueInterface.html
|
|
||||||
|
|
||||||
Services Interfaces
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
.. _component_variation_set-builder_set-builder-interface:
|
|
||||||
|
|
||||||
SetBuilderInterface
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When you want a service to be able to Build a product set from one or more given sets it should implement the ``SetBuilderInterface``.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You will find more information about that interface in `Sylius API SetBuilderInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API SetBuilderInterface: http://api.sylius.org/Sylius/Component/Variation/SetBuilder/SetBuilderInterface.html
|
|
||||||
|
|
||||||
.. _component_variation_generator_variant-generator-interface:
|
|
||||||
|
|
||||||
VariantGeneratorInterface
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
This interface is used to create all possible (non-existing) variations of a given object based on its options.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You will find more information about that interface in `Sylius API VariantGeneratorInterface`_.
|
|
||||||
|
|
||||||
.. _Sylius API VariantGeneratorInterface: http://api.sylius.org/Sylius/Component/Variation/SetBuilder/VariantGeneratorInterface.html
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
||||||
Models
|
|
||||||
======
|
|
||||||
|
|
||||||
.. _component_variation_model_variant:
|
|
||||||
|
|
||||||
Variant
|
|
||||||
-------
|
|
||||||
|
|
||||||
Every variant is represented by **Variant** instance and has the following properties:
|
|
||||||
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| Property | Description |
|
|
||||||
+==============+=============================================+
|
|
||||||
| id | Unique id of the variant |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| presentation | Name displayed to user |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| object | Related product |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| options | Option values |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| createdAt | Date of creation |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| updatedAt | Date of the last update |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This model implements the :ref:`component_variation_model_variant-interface`.
|
|
||||||
You will find more information about this interface in `Sylius API Variant`_.
|
|
||||||
|
|
||||||
.. _Sylius API Variant: http://api.sylius.org/Sylius/Component/Variation/Model/Variant.html
|
|
||||||
|
|
||||||
.. _component_variation_model_option:
|
|
||||||
|
|
||||||
Option
|
|
||||||
------
|
|
||||||
|
|
||||||
Every variant option is represented by **Option** instance and has the following properties:
|
|
||||||
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| Property | Description |
|
|
||||||
+==============+=============================================+
|
|
||||||
| id | Unique id of the Option |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| code | Unique code of the Option |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| name | Internal name |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| presentation | Name displayed to user |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| values | Option values |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| createdAt | Date of creation |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| updatedAt | Date of the last update |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This model implements the :ref:`component_variation_model_option-interface`.
|
|
||||||
You will find more information about this interface in `Sylius API Option`_.
|
|
||||||
|
|
||||||
.. _Sylius API Option: http://api.sylius.org/Sylius/Component/Variation/Model/Option.html
|
|
||||||
|
|
||||||
.. _component_variation_model_option-translation:
|
|
||||||
|
|
||||||
OptionTranslation
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Every variant option has a corresponding translation stored as an **OptionTranslation** instance and has the following properties:
|
|
||||||
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| Property | Description |
|
|
||||||
+==============+=============================================+
|
|
||||||
| id | Unique id of the translation |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| presentation | Translated option name |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This model implements the :ref:`component_variation_model_option-translation-interface`.
|
|
||||||
You will find more information about this interface in `Sylius API OptionTranslation`_.
|
|
||||||
|
|
||||||
.. _Sylius API OptionTranslation: http://api.sylius.org/Sylius/Component/Variation/Model/OptionTranslation.html
|
|
||||||
|
|
||||||
.. _component_variation_model_option_value:
|
|
||||||
|
|
||||||
OptionValue
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Every variant option value is represented by **OptionValue** instance and has the following properties:
|
|
||||||
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| Property | Description |
|
|
||||||
+==============+=============================================+
|
|
||||||
| id | Unique id of the OptionValue |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| code | Unique code of the OptionValue |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| value | Option internal value |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
| option | An instance of Option |
|
|
||||||
+--------------+---------------------------------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This model implements the :ref:`component_variation_model_option-value-interface`.
|
|
||||||
You will find more information about this interface in `Sylius API OptionValue`_.
|
|
||||||
|
|
||||||
.. _Sylius API OptionValue: http://api.sylius.org/Sylius/Component/Variation/Model/OptionValue.html
|
|
||||||
|
|
@ -34,6 +34,5 @@ We recommend checking out :doc:`/components/general/index`, which will get you s
|
||||||
Taxation/index
|
Taxation/index
|
||||||
Taxonomy/index
|
Taxonomy/index
|
||||||
User/index
|
User/index
|
||||||
Variation/index
|
|
||||||
|
|
||||||
.. include:: /components/map.rst.inc
|
.. include:: /components/map.rst.inc
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,3 @@
|
||||||
* :doc:`/components/Taxation/index`
|
* :doc:`/components/Taxation/index`
|
||||||
* :doc:`/components/Taxonomy/index`
|
* :doc:`/components/Taxonomy/index`
|
||||||
* :doc:`/components/User/index`
|
* :doc:`/components/User/index`
|
||||||
* :doc:`/components/Variation/index`
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue